Desarrollo multiplataforma con la Biblioteca de clases portable

.NET Framework (current version)
 

El tipo de proyecto Biblioteca de clases portable de .NET Framework incluido en Visual Studio sirve para crear aplicaciones multiplataforma y bibliotecas para Microsoft de forma rápida y sencilla.

Las bibliotecas de clases portables reducen el tiempo y el coste empleados en desarrollar y probar código. Use este tipo de proyecto para escribir y compilar ensamblados de .NET Framework portables; a continuación, haga referencia a esos ensamblados desde aplicaciones diseñadas para varias plataformas como, por ejemplo, Windows y Windows Phone.

Puede cambiar de plataforma incluso después de haber creado un proyecto de Biblioteca de clases portable en Visual Studio y de haber empezado a desarrollarlo. Visual Studio compilará la biblioteca con los ensamblados nuevos, con lo que podrá identificar los cambios que necesita hacer en el código.

En este artículo se trata el desarrollo de aplicaciones en Visual Studio; no obstante, Microsoft también proporciona ensamblados de referencia de la Biblioteca de clases portable que pueden usarse para desarrollar aplicaciones y bibliotecas con otras herramientas como, por ejemplo, Xamarin. Estas aplicaciones y bibliotecas pueden usarse en cualquier runtime basado en .NET Framework en plataformas no pertenecientes a Microsoft. Para obtener más información acerca de los ensamblados de referencia, vea la entrada de blog clase biblioteca Portable (PCL) ahora disponible en todas las plataformas. Para descargar los ensamblados, consulte ensamblados de referencia de biblioteca Portable de Microsoft .NET en Microsoft Download Center. Para obtener más información acerca de cómo usar los ensamblados con Xamarin, consulte la entrada de blog PCL bibliotecas NuGet y .NET ahora habilitadas para Xamarin.

Visual Studio incluye plantillas que sirven para desarrollar con la Biblioteca de clases portable. En función de qué versión de Visual Studio se use, las plantillas y los menús disponibles pueden ser diferentes de los descritos en este artículo.

System_CAPS_ICON_warning.jpg Advertencia

Visual Studio 2013 Update 2 incluye actualizaciones para las plantillas de biblioteca de clases Portable. Si tiene una versión anterior de Visual Studio y Visual Studio 2013 instalado en el mismo equipo y, a continuación, instalar la actualización 2, los cambios a la .NET Framework de destino opciones se aplicarán a ambas versiones de Visual Studio.

En este tema:

Compatibilidad con Visual Studio
Crear un proyecto de biblioteca de clases Portable
Opciones de destino
Cambiar los destinos
Características admitidas
Tipos y miembros compatibles
Diferencias de API en la biblioteca de clases Portable
Uso de la biblioteca de clases portables

La compatibilidad de Visual Studio con la Biblioteca de clases portable depende de la versión de Visual Studio que se use. En algunos casos tendrá todo lo que necesita y en otros necesitará instalar elementos adicionales, tal como se muestra en la tabla siguiente.

SKU de Visual StudioCompatibilidad para crear una Biblioteca de clases portable
Visual Studio 2010, Professional, Premium o UltimateSí, al instalar el herramientas de biblioteca Portable.
Versiones de Visual Studio Express 2010No.
Visual Studio 2012 Professional, Premium o UltimateSí. Para compatibilidad con teléfonos, instale el Windows Phone SDK 8.0.
Versiones de Visual Studio Express 2012No.
Visual Studio 2013 Professional, Premium o UltimateSí. Para compatibilidad con Windows Phone 8.1, instale Visual Studio 2013 Update 2.
Visual Studio Express 2013 para WindowsSí, al instalar el versión más reciente de Visual Studio Express, que incluye Update 2 o agregar Visual Studio 2013 Update 2.

Para crear una Biblioteca de clases portable, use una de las plantillas proporcionadas en Visual Studio. Cree un nuevo proyecto y en el nuevo proyecto cuadro de diálogo plantillas, seleccione el idioma de destino (C# o Visual Basic) y, a continuación, seleccione una de las plataformas de destino. En el paso siguiente puede seleccionar más plataformas.

En Visual Studio 2013 Update 2, puede elegir la biblioteca de clases (Portable) plantilla para su idioma y plataforma para crear una biblioteca de clases Portable. Verá esta plantilla para las plataformas siguientes:

  • Aplicaciones de la Tienda

  • Escritorio de Windows

  • Silverlight

Si desea crear una biblioteca destinada a Windows Phone 8.1 y Windows 8.1 en C#, puede elegir almacenar aplicacionesy, a continuación, elija biblioteca de clases (Portable para aplicaciones universales).

Biblioteca de clases portable para aplicaciones de la tienda

Esta plantilla selecciona automáticamente Windows 8.1 y Windows Phone 8.1 como destino. Si crea una biblioteca destinada solo a Windows Phone 8.1 o Windows 8.1, puede cambiar y agregar plataformas de destino posteriormente.

Si utiliza Visual Studio 2012 o Visual Studio 2013 sin Update 2, cree un nuevo proyecto y elija la biblioteca de clases Portable plantilla en Visual C# o Visual Basic.

Seleccione el proyecto de biblioteca Portable

El Agregar biblioteca de clases Portable aparece el cuadro de diálogo y podrá seleccionar plataformas adicionales. El cuadro de diálogo emitirá advertencias sobre compatibilidad en función de los destinos que seleccione.

Cambie el cuadro de diálogo de marcos de destino para VS2013
Cuadro de diálogo Agregar biblioteca de clases portable en Visual Studio 2013 Update 2

Con independencia de si usa Visual Studio 2012 o Visual Studio 2013, puede seleccionar las plataformas cuando cree un proyecto de Biblioteca de clases portable, o bien puede usar las propiedades del proyecto para modificar las plataformas de destino después de haber creado el proyecto.

Al crear un proyecto de Biblioteca de clases portable, se puede elegir el sistema operativo y la versión de .NET Framework de destino. Si utiliza Visual Studio 2013 y ha instalado la actualización 2 o posterior, puede elegir la biblioteca de clases (Portable para aplicaciones universales) plantilla para crear una biblioteca de clases Portable destinada a Windows 8.1 y Windows Phone 8.1. En la tabla siguiente se muestran los destinos disponibles en función de la versión de Visual Studio que se use.

Opción de destinoVisual Studio 2012Visual Studio 2013Visual Studio 2013 Update 2 o una versión posterior
.NET Framework-.NET framework 4 y versiones posteriores

-.NET framework 4.0.3 y versiones posteriores

-.NET framework 4.5
-.NET framework 4 y versiones posteriores

-.NET framework 4.0.3 y versiones posteriores

: .NET framework 4.5 y versiones posteriores

-.NET framework 4.5.1
-.NET framework 4

-.NET framework 4.0.3

-.NET framework 4.5

-.NET framework 4.5.1
Windows Phone-Windows Phone 7 y versiones posteriores

-Windows Phone 7.5 y versiones posteriores

-Windows Phone 8
-Windows Phone 8-Windows Phone Silverlight 8

-Windows Phone Silverlight 8.1

Para compatibilidad de Windows Runtime y XAML, elija:

-Windows Phone 8.1
Tienda Windows-.NET para aplicaciones de la tienda de Windows-Aplicaciones de la tienda Windows (Windows 8) y versiones posteriores

-Tienda de Windows (Windows 8.1)
-Windows 8

-Windows 8.1
-Silverlight-Silverlight 4 y versiones posteriores

-Silverlight 5
-Silverlight 5-Silverlight 5
Xbox-Xbox 360N/DN/D

Si se elige una plantilla de Biblioteca de clases portable, las plataformas predeterminadas se seleccionan automáticamente, pero estos valores predeterminados variarán en función de la versión de Visual Studio que esté instalada y de los destinos que se hayan seleccionado previamente. Las plataformas se pueden cambiar en el momento de crear la Biblioteca de clases portable o después de haber iniciado el desarrollo de una Biblioteca de clases portable.

Si desea cambiar los destinos después de haber creado el proyecto, en el Explorador de soluciones, abra el menú contextual del proyecto de biblioteca de clases Portable (no la solución) y, a continuación, elija propiedades. En la página de propiedades del proyecto, el biblioteca ficha muestra las plataformas que actualmente va dirigido el proyecto.

Propiedades del proyecto
Página de propiedades de la Biblioteca de clases portable en Visual Studio 2013 Update 2

Para agregar o quitar destinos, elija la cambio button y, a continuación, active y desactive las casillas correspondientes.

Al modificar los destinos, las API que tiene a su disposición para desarrollar el proyecto cambiarán para corresponderse con las opciones seleccionadas. Visual Studio notifica los errores y las advertencias que pueden producirse como resultado del cambio de destinos.

Si va a evaluar la portabilidad de los ensamblados antes de realizar cambios en Visual Studio, puede utilizar el analizador de portabilidad de .NET.

El menú de opciones varía en función de la versión de Visual Studio que se use.

Cambiar destino
Cuadro de diálogo para el cambio de destinos en Visual Studio 2012

En la tabla siguiente se muestran las características que se admiten en las plataformas y las versiones disponibles. En algunos casos Microsoft ha agregado compatibilidad con la versión de un paquete de NuGet, y así se ha indicado. Para obtener más información acerca de los paquetes de NuGet para .NET Framework, vea .NET Framework y versiones fuera de banda.

Característica.NET Framework.NET Framework.NET FrameworkTienda WindowsTienda WindowsTienda de Windows PhoneWindows Phone SilverlightWindows Phone SilverlightWindows Phone SilverlightSilverlightSilverlightXbox 360
44.0.34.588.18.17.588.145
Bibliotecas básicas
Compatibilidad con Async
Compresión
Anotaciones de datos
Palabra clave dynamic
HTTPClient
IQueryable
Language-Integrated Query (LINQ)
Managed Extensibility Network (MEF)
Network Class Library (NCL)
Serialización (contrato de datos, XML y JSON)
System.Numerics
Modelos de vista (MVVM)
Windows Communication Foundation (WCF)
API de Windows en tiempo de ejecución
Windows.UI.XAML
XLINQ

➊ Requiere Microsoft Async paquete
➋ Requiere Microsoft Compression paquete
➌ Requiere Microsoft HTTP Client Libraries paquete

System_CAPS_ICON_warning.jpg Advertencia

Puede encontrar errores al hacer referencia a la Microsoft Compression y Microsoft HTTP Client Libraries paquetes desde una biblioteca portable usada por una aplicación de Windows Phone Silverlight 8.1. Para obtener más información, consulte compatibilidad de plataformas y cambios para las aplicaciones de Windows Phone Silverlight 8.1.

Los tipos y miembros disponibles en los proyectos de Biblioteca de clases portable están limitados por varios factores de compatibilidad:

  • Deben compartirse en los destinos seleccionados.

  • Deben comportarse de manera similar en todos esos destinos.

  • No deben ser candidatos para desuso.

  • Deben tener sentido en un entorno portable, especialmente cuando los miembros auxiliares no son portátiles.

Por ejemplo, la Biblioteca de clases portable contiene tipos relacionados con la interfaz de usuario solo cuando el destino es Windows 8.1 y Windows Phone 8.1. También puede encontrar limitaciones si elige como destino plataformas (como Xbox, .NET Framework 4 y Windows Phone 7) que se publicaron antes de la introducción de la Biblioteca de clases portable. .NET Framework publica paquetes a través de NuGet que mejoran la compatibilidad de la Biblioteca de clases portable con algunas de estas plataformas antiguas. Para obtener más información y una lista de paquetes de NuGet, consulte .NET Framework y versiones fuera de banda.

Si un miembro es compatible con la Biblioteca de clases portable y con los destinos seleccionados, aparecerá en su proyecto en IntelliSense. Además, el icono de biblioteca de clases Portable compatible con la biblioteca Portable aparece en las tablas de miembros en el biblioteca de clases de .NET Framework junto a los miembros admitidos. Por ejemplo, la tabla de miembros siguiente muestra que el Chars propiedad en el cadena clase es compatible con la biblioteca de clases portables:

Icono de miembro compatible
Icono de la Biblioteca de clases portable

También puede buscar en el información de versión sección de un tema de referencia de una nota que indica que un tipo o miembro se admite en el proyecto de biblioteca de clases Portable:

Información de versión de la biblioteca Portable
Ejemplo de información de versiones

No obstante, recuerde que una API puede ser compatible con la Biblioteca de clases portable, pero si esa API se puede usar dependerá de los destinos que se seleccionen.

Para que los ensamblados de la Biblioteca de clases portable sean compatibles en todas las plataformas admitidas, algunos miembros se han modificado ligeramente en la Biblioteca de clases portable.

Después de compilar el proyecto de Biblioteca de clases portable, haga referencia a él desde otros proyectos. Puede hacer referencia al proyecto o a ensamblados específicos que contengan las clases a las que desea obtener acceso.

Para ejecutar una aplicación que haga referencia a un ensamblado de Biblioteca de clases portable, debe estar instalada en el equipo la versión requerida (o una versión posterior) de las plataformas de destino. Visual Studio contiene todos los marcos necesarios para poder ejecutar la aplicación sin modificaciones adicionales en el equipo que utilizó para desarrollar la aplicación.

Implementar una aplicación de la Tienda Windows o de Windows Phone

Cuando cree una aplicación de la Tienda Windows o de Windows Phone que haga referencia a un ensamblado de Biblioteca de clases portable, no necesitará realizar pasos adicionales, ya que el paquete de la aplicación incluye todo lo necesario para implementar la aplicación.

Implementar una aplicación de .NET Framework

Cuando implemente una aplicación de .NET Framework que haga referencia a un ensamblado de Biblioteca de clases portable, especifique una dependencia en la versión correcta de .NET Framework. Al especificar esta dependencia, se asegura de que la versión requerida se instala con la aplicación. Si el destino .NET Framework 4 o posterior, el equipo debe tener .NET Framework 4 con una actualizar, actualización 4.0.3 para .NET Framework 4 o .NET Framework 4.5 instalado.

  • Para crear una dependencia con implementación ClickOnce: en el Explorador de soluciones, elija el nodo de proyecto para el proyecto que desea publicar. (Este es el proyecto que hace referencia al proyecto de Biblioteca de clases portable). En la barra de menús, elija proyecto, propiedadesy, a continuación, elija la publicar ficha. En el publicar página, elija requisitos previos. Seleccione la versión requerida de .NET Framework (o la actualización de .NET Framework 4) como requisito previo.

  • Para crear una dependencia con un proyecto de instalación: en el Explorador de soluciones, elija el proyecto de instalación. En la barra de menús, elija proyecto, propiedades, requisitos previos. Seleccione la versión de .NET Framework necesaria como requisito previo.

Para obtener más información acerca de cómo implementar aplicaciones de .NET Framework, vea Deployment Guide for Developers.

Implementar una aplicación basada en Silverlight

Cuando implemente una aplicación basada en Silverlight que haga referencia a un ensamblado de Biblioteca de clases portable, deberá asegurarse de que la versión de runtime mínima necesaria para la aplicación coincide con la versión de destino. Si desea que el destino sea Silverlight 4, la versión debe ser 4.0.60129.0 o posterior. Al establecer la versión incluya <param name="minRuntimeVersion" value="4.0.60129.0" /> en la página web que hospeda la aplicación basada en Silverlight, como sigue:

<div id="silverlightControlHost">  
    <object data="data:application/x-silverlight-2,"   
           type="application/x-silverlight-2" width="100%" height="100%">  
    <param name="source" value="ClientBin/SilverlightApplication.xap"/>  
    <param name="onError" value="onSilverlightError" />  
    <param name="background" value="white" />  
    <param name="minRuntimeVersion" value="4.0.60129.0" />  
    <param name="autoUpgrade" value="true" />  
    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0"   
             style="text-decoration:none">  
      <img src=http://go.microsoft.com/fwlink/?LinkId=161376  
             alt="Get Microsoft Silverlight" style="border-style:none"/>  
    </a>  
  </object>  
   <iframe id="_sl_historyFrame"   
              style="visibility:hidden;height:0px;width:0px;border:0px">  
   </iframe>  
</div>  
  

Usar la biblioteca de clases Portable con MVVM
Recursos de la aplicación para las bibliotecas que tienen como destino varias plataformas
Analizador de portabilidad de .NET
Compatibilidad de .NET framework para aplicaciones de la tienda de Windows y en tiempo de ejecución de Windows
Implementación

Mostrar: