Informatica en Gnral.

Portable Class Library (PCL) vs Shared Projects [Xamarin.Forms]


Como desarrollador de Xamarin, la primera decisión que hay que tomar a la hora de crear un nuevo proyecto en Xamarin.Forms es si el código común debe mantenerse en una biblioteca de clases portátil (Portable Class Library  – PCL) o en un proyecto compartido (Shared Projects).

pclvssp1

Algunos desarrolladores hoy en dia aun no saben la diferencia que existe entre estas dos, por ello a continuación las tratare de dar a conocer para que no exista problema alguno en un futuro cuando tengan que tomar dicha eleccion.

Si indagamos en los ejemplos de Xamarin, la mayoria estan basados en PCL, y por lo tanto los recien llegados a esta tecnologia basan sus primeras aplicaciones en estos ejemplos, ademas existen razones muy limitadas para el uso de Shared Projects, puesto que los PCL son la opcion preferida en la mayoria de los escenarios.

Shared Projects

Permiten el compartir codigo, archivos (assets) y recursos a traves de multiples tipos de proyectos, mas especificamente los siguientes tipos:

Console | Windows Forms | Windows Presentation Foundation
Windows Store 8.1 | Windows Phone Phone 8.1 Apps
Windows Phone 8.0/8.1 Silverlight Apps

Por defecto cuando se crea una aplicacion para la Windows Store o una UWP (Universal Windows Platform) se usa Shared Projects, puesto que se puede escribir el mismo codigo para la Windows Store que para Windows Phone.

Un proyecto compartido no produce un assembly reutilizable, por lo que solo puede ser consumida dentro de la solucion, asi como no pueden tener dependencias de bibliotecas de terceros.

Portable Class Library (PCL)

Los PCL producen una biblioteca .dll reutilizable y pueden tener dependencias de bibliotecas de terceros.

Estas son algunos de los beneficios para el uso de PCL:

  • Más fácil de leer el código
  • Mayor portabilidad
  • Mejores implementaciones de código

Los PCLs cuando se combinan con Nugets son incomparables, los creadores de los Frameworks y de las librerias (Librarys) continuaran ofreciendo estos, por que saben que cuentan con una baja barrera de adopcion, la cual nos permiten brindar una experiencia u operabilidad excepcional a nuestros usuarios finales.

Cabe mencionar que ambos (PCL & SP) permiten el uso compartido de codigo, los recursos XAML y los assets.

Diferencias:

La diferencia entre SP y PCL es que este ultimo se compila y la unidad de reutilizacion es el assembly (.dlls), mientras que con el primero la unidad de reutilizacion es el codigo fuente y el codigo compartido se incorpora en cada assembly que hace referencia al Shared Project.

Importante: PCL no tiene acceso completo al Framework de .NET, SP si, lo cual puede llegar a ser un gran dolor de cabeza si optamos por PCL.

Entonces, ¿cuál utilizar?

Sinceramente todo depende del tipo de proyecto, por si se llegara a usar solamente PCL para todo es como si se usara un cañon para matar a una mosca, por que para realizar algunas tareas basicas existen demasiadas limitaciones

En lo personal me gusta mas usar PCL, puesto que las ventajas que tiene en cuestion de desarrollo se ven reflejadas en el contexto anterior, asi que puedo decir que es la mejor.

Si no están de acuerdo conmigo, estoy abierto a un intenso debate,  siéntanse libres de expresarme sus comentarios, ya sea a favor o en contra.

Para mayor información: developer.xamarin.com

#HappyCoding #Xamarin.Forms

Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s