Bibliotecas de clases portables

El proyecto Biblioteca de clases portable permite escribir y compilar ensamblados administrados capaces de funcionar en varias plataformas .NET Framework. Puede crear clases que contengan el código que desea compartir entre diversos proyectos (por ejemplo, la lógica empresarial compartida) y después hacer referencia a esas clases desde diferentes tipos de objetos.

Con el proyecto Biblioteca de clases portable, puede compilar ensamblados portables que funcionen en las plataformas .NET Framework, Silverlight, Windows Phone 7 o Xbox 360 sin necesidad de realizar modificaciones. Sin el proyecto Biblioteca de clases portable, solo podrá usar como destino una única plataforma y tendrá que modificar manualmente la biblioteca de clases para usarla en otras plataformas. El proyecto Biblioteca de clases portable admite un subconjunto de ensamblados de estas plataformas y proporciona una plantilla de Visual Studio que permite compilar ensamblados para que se ejecuten sin modificaciones en esas plataformas.

Requisitos previos

Para crear un proyecto Biblioteca de clases portable, debe instalar estos componentes en el orden siguiente:

  1. Visual Studio 2010 Service Pack 1 (SP1)

  2. Portable Library Tools

Ensamblados

En un proyecto Biblioteca de clases portable, están disponibles los siguientes ensamblados:

  • mscorlib.dll

  • System.dll

  • System.Core.dll

  • System.Xml.dll

  • System.ComponentModel.Composition.dll

  • System.Net.dll

  • System.Runtime.Serialization.dll

  • System.ServiceModel.dll

  • System.Xml.Serialization.dll

  • System.Windows.dll (en Silverlight)

Sin embargo, no todos estos ensamblados se admiten en todas las plataformas. En un proyecto Biblioteca de clases portable, puede especificar las plataformas que desea usar como destino, ya que en el proyecto solo se establecerán referencias a los ensamblados compatibles con esas plataformas. Si intenta hacer referencia a un ensamblado que no es compatible con las plataformas que ha usado como destino, Visual Studio le avisará de dicha incompatibilidad. Los ensamblados básicos (mscorlib.dll, System.dll, System.Core.dll y System.Xml.dll) son compatibles con todas las plataformas.

En la tabla siguiente se muestran los ensamblados que se admiten en las plataformas disponibles.

Característica

Ensamblados

.NET Framework 4

Silverlight

Windows Phone 7

Xbox 360

Principal

mscorlib.dll, System.dll, System.Core.dll, System.Xml.dll

Managed Extensibility Framework (MEF)

System.ComponentModel.Composition.dll

No

No

Network Class Library (NCL)

System.Net.dll

No

Serialización

System.Runtime.Serialization.dll

No

Windows Communication Foundation (WCF)

System.ServiceModel.dll

No

Serialización XML

System.Xml.Serialization.dll

No

Compatibilidad con el modelo de vista

System.Windows.dll (en Silverlight)

No

No

Los proyectos Biblioteca de clases portable pueden destinarse a una combinación de plataformas. En la tabla siguiente se muestran las características admitidas en las combinaciones de plataformas.

Plataformas

Compatibilidad

Silverlight y Windows Phone 7

Con todo excepto MEF

.NET Framework 4 y Silverlight

Con todo excepto con compatibilidad con el modelo de vista

.NET Framework 4 y Windows Phone 7

Con todo excepto con compatibilidad con el modelo de vista y MEF

.NET Framework 4, Silverlight y Windows Phone 7

Con todo excepto con compatibilidad con el modelo de vista y MEF

Xbox 360 y cualquier otra plataforma

Solo los básicos

Encontrar miembros compatibles en la documentación de referencia

Puede consultar qué miembros se admiten en el proyecto Biblioteca de clases portable en los temas de referencia de Biblioteca de clases de .NET Framework. En la tabla de miembros de una clase, aparecerá el icono Biblioteca de clases portable siguiente junto a los miembros compatibles.

Compatible con la Biblioteca portable

También puede buscar en la sección Información de versión de un tema de referencia una nota que indique si un tipo o miembro se admite en el proyecto Biblioteca de clases portable.

Compatibilidad con el patrón de modelo de vista

Si elige como destino Silverlight y Windows Phone 7, puede implementar el patrón de modelo de vista en la solución. Las clases para implementar este patrón se encuentran en el ensamblado System.Windows.dll de Silverlight. No se admite el ensamblado System.Windows.dll cuando se crea un proyecto de Biblioteca de clases portable que tiene como destino .NET Framework 4 o Xbox 360.

Las clases de este ensamblado incluyen las siguientes:

.NET Framework 4 también contiene estas clases, pero se implementan en ensamblados distintos de System.Windows.dll. Para usar estas clases con un proyecto de Biblioteca de clases portable, debe hacer referencia a System.Windows.dll y no a los ensamblados enumerados en la documentación de .NET Framework 4.

Crear un proyecto Biblioteca de clases portable

Para crear un proyecto Biblioteca de clases portable, cree un nuevo proyecto en Visual Studio 2010 y seleccione la plantilla Portable Class Library en Visual C# o Visual Basic. Si no ve la plantilla, asegúrese de que ha instalado Portable Library Tools.

Seleccionar proyecto de Biblioteca portable

Seleccionar las plataformas de destino

De manera predeterminada, el proyecto Biblioteca de clases portable tiene como destino las siguientes plataformas:

  • .NET Framework 4

  • Silverlight 4

  • Silverlight para Windows Phone 7

En el proyecto solo se hace referencia a los ensamblados admitidos en estas plataformas. Para seleccionar las plataformas de destino, en el Explorador de soluciones, haga clic con el botón secundario en el nombre de proyecto Biblioteca de clases portable y seleccione Propiedades.

En la página de propiedades del proyecto se especifican las plataformas que se usan como destino actualmente.

Propiedades del proyecto

Agregar o quitar plataformas de destino, haga clic en Cambiar.

Cambiar destino

Al cambiar las plataformas de destino, los ensamblados a los que se hace referencia en el proyecto cambiarán para ajustarse al conjunto de ensamblados que son compatibles con su selección. Si en el proyecto se hace referencia a ensamblados que no se admiten en una de las plataformas seleccionadas, deberá quitar la referencia al ensamblado o cambiar las plataformas de destino. En el Explorador de soluciones, los ensamblados que no son compatibles se marcan con un signo de exclamación (!). En la ilustración siguiente se muestra una advertencia de los ensamblados no admitidos cuando se agrega la plataforma Xbox 360 a las plataformas de destino.

Advertencia

Usar Biblioteca de clases portable

Una vez compilado el proyecto Biblioteca de clases portable, basta con agregar una referencia a él en los demás proyectos que dependen del proyecto Biblioteca de clases portable. Puede hacer referencia al proyecto o a ensamblados específicos que contengan las clases a las que desea obtener acceso.

Crear una dependencia

Para ejecutar una aplicación Biblioteca de clases portable, es necesario instalar en el equipo una actualización de .NET Framework 4. Esta actualización se instala automáticamente con Visual Studio 2010 SP1, de modo que puede ejecutar la aplicación Biblioteca de clases portable sin realizar otras modificaciones en el equipo que usó para desarrollar la aplicación. Para ejecutar la aplicación en un equipo distinto, puede instalar la actualización manualmente.

Cuando implemente una aplicación .NET Framework 4 que haga referencia a un ensamblado Biblioteca de clases portable, debe especificar una dependencia en la actualización de .NET Framework 4. Al especificar esta dependencia, se asegura de que la actualización se instala con la aplicación.

  • Para crear una dependencia con la implementación ClickOnce: En el Explorador de soluciones, haga clic en el nodo del proyecto que desea publicar. (Este proyecto es el que hace referencia al proyecto Biblioteca de clases portable). En el menú Proyecto, haga clic en Propiedades y, a continuación, haga clic en la pestaña Publicar. En la página Publicar, haga clic en Requisitos previos. Seleccione la actualización de .NET Framework 4 como requisito previo.

  • Para crear una dependencia con un proyecto de instalación: En Explorador de soluciones, haga clic en el proyecto de instalación. En el menú Proyecto, haga clic en Propiedades y, a continuación, haga clic en Requisitos previos. Seleccione la actualización de .NET Framework 4 como requisito previo.

Para obtener más información sobre la implementación de aplicaciones .NET Framework, vea Guía de implementación de .NET Framework para desarrolladores.

Implementar con Silverlight

Cuando implemente un ensamblado Biblioteca de clases portable con una aplicación basada en Silverlight, deberá asegurarse de que la versión mínima del runtime necesaria para la aplicación está establecida en la versión 4.0.60129.0 u otra posterior. Puede establecer el valor del parámetro minRuntimeVersion incluyendo <param name="minRuntimeVersion" value="4.0.60129.0" /> en la página web que hospeda la aplicación basada en Silverlight.

<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="https://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" 
             style="text-decoration:none">
      <img src=https://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>

Diferencias entre las API de Biblioteca de clases portable

Para que los ensamblados Biblioteca de clases portable sean compatibles en todas las plataformas admitidas, algunos miembros se han modificado ligeramente en Biblioteca de clases portable. Para obtener información detallada sobre los miembros que se han modificado y el modo en que han cambiado, vea Diferencias de API de la biblioteca de clases portable.

Vea también

Otros recursos

Diferencias de API de la biblioteca de clases portable

Historial de cambios

Fecha

Historial

Motivo

Mayo de 2011

Información agregada sobre cómo admitir el patrón de modelo de vista y crear dependencias.

Mejora de la información.

Marzo de 2011

Se ha agregado un tema.

Mejora de la información.