Desarrollo de varias plataformas con .NET FrameworkDeveloping for Multiple Platforms with the .NET Framework

Con .NET Framework y Visual Studio se pueden desarrollar aplicaciones destinadas a plataformas de Microsoft y de terceros.You can develop apps for both Microsoft and non-Microsoft platforms by using the .NET Framework and Visual Studio.

Opciones del desarrollo multiplataformaOptions for cross-platform development

Importante

Dado que los proyectos de biblioteca de clases Portable como destino solo un subconjunto muy específico de implementaciones de. NET, se desaconseja encarecidamente su uso en desarrollo de nuevas aplicaciones.Because Portable Class Library projects target only a very specific subset of .NET implementations, we strongly discourage their use in new application development. El sustituto recomendado es una biblioteca .NET Standard, que tiene como destino todas las implementaciones de .NET que admiten una versión específica de .NET Standard.The recommended replacement is a .NET Standard library, which targets all .NET implementations that support a specific version of the .NET Standard. Para más información, consulte .NET Standard.For more information, see .NET Standard.

Si va a desarrollar para varias plataformas, puede compartir código de origen o archivos binarios, y puede realizar llamadas entre código de .NET Framework y las API de Windows Runtime.To develop for multiple platforms, you can share source code or binaries, and you can make calls between .NET Framework code and Windows Runtime APIs.

Si desea...If you want to... Use...Use...
Compartir código de origen entre aplicaciones de Windows Phone 8.1 y Windows 8.1Share source code between Windows Phone 8.1 and Windows 8.1 apps Proyectos compartidos (plantilla aplicaciones universales en Visual Studio 2013, Update 2).Shared projects (Universal Apps template in Visual Studio 2013, Update 2).

-Actualmente no hay compatibilidad con Visual Basic.- Currently no Visual Basic support.
-Se puede separar código específico de plataforma mediante #if instrucciones.- You can separate platform-specific code by using #if statements.

Para obtener información detallada, vea:For details, see:

- Comience a codificar- Start coding
- Con Visual Studio para crear aplicaciones XAML universales (entrada de blog)- Using Visual Studio to build Universal XAML Apps (blog post)
- Con Visual Studio para crear aplicaciones de convergente XAML (vídeo)- Using Visual Studio to Build XAML Converged Apps (video)
Compartir archivos binarios entre aplicaciones destinadas a plataformas diferentesShare binaries between apps that target different platforms Proyectos de biblioteca de clases Portable para el código que es independiente de la plataforma.Portable Class Library projects for code that is platform-agnostic.

-En este enfoque se usa normalmente para código que implementa la lógica de negocios.- This approach is typically used for code that implements business logic.
-Puede usar Visual Basic o C#.- You can use Visual Basic or C#.
-Compatibilidad con API varía según la plataforma.- API support varies by platform.
-Los proyectos de biblioteca de clases portable destinadas a Windows 8.1 y Windows Phone 8.1 admiten Windows Runtime APIs y XAML.- Portable Class Library projects that target Windows 8.1 and Windows Phone 8.1 support Windows Runtime APIs and XAML. Estas características no están disponibles en versiones anteriores de la Biblioteca de clases portable.These features aren't available in older versions of the Portable Class Library.
-Si es necesario, puede abstraer el código específico de plataforma mediante interfaces o clases abstractas.- If needed, you can abstract out platform-specific code by using interfaces or abstract classes.

Para obtener información detallada, vea:For details, see:

- Biblioteca de clases Portable- Portable Class Library
- Cómo realizar trabajos de las bibliotecas de clase Portable para usted (entrada de blog)- How to Make Portable Class Libraries Work for You (blog post)
- Usar la biblioteca de clases Portable con MVVM- Using Portable Class Library with MVVM
- Recursos de aplicación para bibliotecas destinadas a varias plataformas- App Resources for Libraries That Target Multiple Platforms
- .NET portability Analyzer (extensión de Visual Studio)- .NET Portability Analyzer (Visual Studio extension)
Compartir código de origen entre aplicaciones de plataformas distintas de Windows Phone 8.1 y Windows 8.1Share source code between apps for platforms other than Windows 8.1 and Windows Phone 8.1 Agregar como vínculo característica.Add as link feature.

-En este enfoque es adecuado para la lógica de aplicación que es común a ambas aplicaciones pero no portable, por algún motivo.- This approach is suitable for app logic that's common to both apps but not portable, for some reason. Se puede usar esta característica para código de Visual Basic o C#.You can use this feature for C# or Visual Basic code.
Por ejemplo, Windows Phone 8 y Windows 8 comparten las API de Windows Runtime, pero las Bibliotecas de clases portables no admiten Windows Runtime con esas plataformas.For example, Windows Phone 8 and Windows 8 share Windows Runtime APIs, but Portable Class Libraries do not support Windows Runtime for those platforms. Puede usar Add as link para compartir código común de Windows en tiempo de ejecución entre una aplicación de Windows Phone 8 y una aplicación de la Tienda Windows diseñada para Windows 8.You can use Add as link to share common Windows Runtime code between a Windows Phone 8 app and a Windows Store app that targets Windows 8.

Para obtener información detallada, vea:For details, see:

- Compartir código con agregar como vínculo- Share code with Add as Link
- Cómo: Agregar elementos existentes a un proyecto- How to: Add Existing Items to a Project
Escribir aplicaciones de la Tienda Windows con .NET Framework o llamar a las API de Windows Runtime desde código de .NET FrameworkWrite Windows Store apps using the .NET Framework or call Windows Runtime APIs from .NET Framework code Windows Runtime APIs desde el código de .NET Framework C# o Visual Basic y el uso de .NET Framework para crear aplicaciones de Windows Store.Windows Runtime APIs from your .NET Framework C# or Visual Basic code, and use the .NET Framework to create Windows Store apps. Tenga en cuenta las diferencias de API entre las dos plataformas.You should be aware of API differences between the two platforms. No obstante, hay clases que sirven para trabajar con esas diferencias.However, there are classes to help you work with those differences.

Para obtener información detallada, vea:For details, see:

- Compatibilidad de .NET framework para aplicaciones de Windows Store y en tiempo de ejecución de Windows- .NET Framework Support for Windows Store Apps and Windows Runtime
- Pasar un identificador URI para el tiempo de ejecución de Windows- Passing a URI to the Windows Runtime
- WindowsRuntimeStreamExtensions
- WindowsRuntimeSystemExtensions
Crear aplicaciones de .NET Framework para otras plataformas (diferentes de Microsoft)Build .NET Framework apps for non-Microsoft platforms Ensamblados de referencia de biblioteca de clases Portable en .NET Framework y una herramienta de terceros o de extensiones de Visual Studio como Xamarin.Portable Class Library reference assemblies in the .NET Framework, and a Visual Studio extension or third-party tool such as Xamarin.

Para obtener información detallada, vea:For details, see:

- Biblioteca de clases Portable ahora disponible en todas las plataformas.- Portable Class Library now available on all platforms. (entrada de blog)(blog post)
- Documentación de Xamarin- Xamarin documentation
Usar JavaScript y HTML para desarrollo multiplataformaUse JavaScript and HTML for cross-platform development Plantillas de aplicaciones universales en Visual Studio 2013, actualización 2 para desarrollar con Windows Runtime APIs para Windows 8.1 y Windows Phone 8.1.Universal App templates in Visual Studio 2013, Update 2 to develop against Windows Runtime APIs for Windows 8.1 and Windows Phone 8.1. Actualmente, no se puede usar JavaScript ni HTML con las API de .NET Framework para desarrollar aplicaciones multiplataforma.Currently, you can’t use JavaScript and HTML with .NET Framework APIs to develop cross-platform apps.

Para obtener información detallada, vea:For details, see:

- Plantillas de proyecto de JavaScript- JavaScript Project Templates
- Portar una aplicación de Windows Runtime mediante JavaScript para Windows Phone- Porting a Windows Runtime app using JavaScript to Windows Phone