SlideShare a Scribd company logo
1 of 20
Download to read offline
PORTABLE CLASS LIBRARIES
Librerías de clases portable….
por
Juan Carlos Ricalde Poveda
Xamarin Students Mexico
PORTABLE CLASS LIBRARIES
¿Que es cross-platform development?
PORTABLE CLASS LIBRARIES
Es el entorno sobre el que desarrollamos.
PORTABLE CLASS LIBRARIES
En un desarrollo las plataformas pueden ser diferentes:

-IOS

-Android

.Windows Phone

-etc.

PORTABLE CLASS LIBRARIES
¿Como podemos desarrollar para varias plataformas 

si son tan distintas?





PORTABLE CLASS LIBRARIES
Microsoft .NET
El camino a grandes ideas y soluciones:



Microsoft.NET un Framework que permite la integración rápida de
aplicaciones,
PORTABLE CLASS LIBRARIES
El camino a grandes ideas y soluciones:

Miguel de Icaza.

del Origen del Mono a Xamarin
PORTABLE CLASS LIBRARIES
¿Por qué es importante la historia de
.net y de Xamarin para entender
el desarrollo multiplataforma?
PORTABLE CLASS LIBRARIES
Xamarin Framework
PORTABLE CLASS LIBRARIES
Si podemos programar para cualquier plataforma
¿Para qué sirven las PCL?
Las PCL fueron creadas como parte de .Net en Visual Studio 2012



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.
PORTABLE CLASS LIBRARIES
PORTABLE CLASS LIBRARIES
Xamarin mejora el concepto de las PCL
PCL Support was added in Xamarin.Android 4.10.1, Xamarin.iOS 7.0.4 and Xamarin Studio 4.2. Portable Library
projects are automatically enabled in Xamarin Studio on OS X, and are built-in to Visual Studio 2013 and later.
PORTABLE CLASS LIBRARIES
Xamarin mejora el concepto de las PCL
PCL Support was added in Xamarin.Android 4.10.1, Xamarin.iOS 7.0.4 and Xamarin Studio 4.2. Portable Library
projects are automatically enabled in Xamarin Studio on OS X, and are built-in to Visual Studio 2013 and later.
PORTABLE CLASS LIBRARIES
Xamarin mejora el concepto de las PCL
PORTABLE CLASS LIBRARIES
Y como las uso…..
PORTABLE CLASS LIBRARIES
Benefits
• Centralized code sharing – write and test code in a single project that can be
consumed by other libraries or applications.
• Refactoring operations will affect all code loaded in the solution (the Portable Class
Library and the platform-specific projects).
• The PCL project can be easily referenced by other projects in a solution, or the
output assembly can be shared for others to reference in their solutions.
PORTABLE CLASS LIBRARIES
Disadvantages
• Because the same Portable Class Library is shared between multiple applications,
platform-specific libraries cannot be referenced (eg. Community.CsharpSqlite.WP7).
• The Portable Class Library subset may not include classes that would otherwise be
available in both MonoTouch and Mono for Android (such as DllImport or
System.IO.File).
PORTABLE CLASS LIBRARIES
Disadvantages
• Because the same Portable Class Library is shared between multiple applications,
platform-specific libraries cannot be referenced (eg. Community.CsharpSqlite.WP7).
• The Portable Class Library subset may not include classes that would otherwise be
available in both MonoTouch and Mono for Android (such as DllImport or
System.IO.File).
PORTABLE CLASS LIBRARIES
MEJORES PRACTICAS EN PCL
- Separación en Capas “libreria para tarjetas de credito”
- DRY No te repitas Don’t Repeat Yourself ejemplo uso de Modelos
- Tener organizado el proyecto
- Ahorro en desarrollo de código.
Patrones de diseño pueden ser usados ejemplos :
MVVM - Xamarin Form hace uso de este patron para lograr interfaces compartidas.
Service Locator - Para libraries que comparten procesos comunes.

Adapter Pattern - Para librerías que requieren de clases comunes para su consumo
GRACIAS….
Librerías de clases portable….
por
Juan Carlos Ricalde Poveda
Xamarin Students Mexico

More Related Content

What's hot

Entorno de desarrollo de java
Entorno de desarrollo de javaEntorno de desarrollo de java
Entorno de desarrollo de javaEwocito Flow
 
Programacion basica-en-java
Programacion basica-en-javaProgramacion basica-en-java
Programacion basica-en-javaDaniel Martinez
 
Mi lenguaje de Programacion de Preferencia
Mi lenguaje de Programacion de PreferenciaMi lenguaje de Programacion de Preferencia
Mi lenguaje de Programacion de PreferenciaGuy43cd
 
22 07-13 eclipse grupo 6
22 07-13 eclipse grupo 622 07-13 eclipse grupo 6
22 07-13 eclipse grupo 6Maga Lasic
 
Lenguaje java
Lenguaje javaLenguaje java
Lenguaje javabrantp
 
Mi primera-hora-con-eclipse
Mi primera-hora-con-eclipseMi primera-hora-con-eclipse
Mi primera-hora-con-eclipseariannalizeeth
 
Metodologia programación
Metodologia programaciónMetodologia programación
Metodologia programaciónmariajose1812
 
diapositivas melissa primero basico
diapositivas melissa primero basico diapositivas melissa primero basico
diapositivas melissa primero basico CHELI12311
 
Entornos de desarrollo integrado
Entornos de desarrollo integradoEntornos de desarrollo integrado
Entornos de desarrollo integradoJ'Jaime M'Martinez
 
Proyecto agenda
Proyecto agendaProyecto agenda
Proyecto agendajona5650
 
Jaime monsalve-elementos-de-programacion
Jaime monsalve-elementos-de-programacionJaime monsalve-elementos-de-programacion
Jaime monsalve-elementos-de-programaciongiovanni ascencio
 

What's hot (19)

Entorno de desarrollo de java
Entorno de desarrollo de javaEntorno de desarrollo de java
Entorno de desarrollo de java
 
Laboratorio de programación II
Laboratorio de programación IILaboratorio de programación II
Laboratorio de programación II
 
Programacion basica-en-java
Programacion basica-en-javaProgramacion basica-en-java
Programacion basica-en-java
 
tp informatica
tp informaticatp informatica
tp informatica
 
Mi lenguaje de Programacion de Preferencia
Mi lenguaje de Programacion de PreferenciaMi lenguaje de Programacion de Preferencia
Mi lenguaje de Programacion de Preferencia
 
Proyecto Mono
Proyecto MonoProyecto Mono
Proyecto Mono
 
22 07-13 eclipse grupo 6
22 07-13 eclipse grupo 622 07-13 eclipse grupo 6
22 07-13 eclipse grupo 6
 
Introduccion a Java
Introduccion a JavaIntroduccion a Java
Introduccion a Java
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a java
 
Lenguaje java
Lenguaje javaLenguaje java
Lenguaje java
 
Poc
PocPoc
Poc
 
Mi primera-hora-con-eclipse
Mi primera-hora-con-eclipseMi primera-hora-con-eclipse
Mi primera-hora-con-eclipse
 
Metodologia programación
Metodologia programaciónMetodologia programación
Metodologia programación
 
diapositivas melissa primero basico
diapositivas melissa primero basico diapositivas melissa primero basico
diapositivas melissa primero basico
 
Entornos de desarrollo integrado
Entornos de desarrollo integradoEntornos de desarrollo integrado
Entornos de desarrollo integrado
 
todo sobre java
todo sobre javatodo sobre java
todo sobre java
 
Proyecto agenda
Proyecto agendaProyecto agenda
Proyecto agenda
 
Jaime monsalve-elementos-de-programacion
Jaime monsalve-elementos-de-programacionJaime monsalve-elementos-de-programacion
Jaime monsalve-elementos-de-programacion
 
Sfd
SfdSfd
Sfd
 

Similar to PCL Portable class libraries

Tutorial de eclipse_denisse
Tutorial de eclipse_denisseTutorial de eclipse_denisse
Tutorial de eclipse_denissedenisse_98
 
Tarea, unidad 3, de tecnologia aplicada a la educacion
Tarea, unidad 3, de tecnologia aplicada a la educacionTarea, unidad 3, de tecnologia aplicada a la educacion
Tarea, unidad 3, de tecnologia aplicada a la educacionRosa del Carmen Trinidad Veras
 
Lenguaje de Programación C
Lenguaje de Programación CLenguaje de Programación C
Lenguaje de Programación CMariana Ramírez
 
Ha2 cm40 eq2-netbeans
Ha2 cm40 eq2-netbeansHa2 cm40 eq2-netbeans
Ha2 cm40 eq2-netbeansAnel MG
 
Preserntacion programacion.net
Preserntacion programacion.netPreserntacion programacion.net
Preserntacion programacion.netDilson Cruz
 
Características de los 10 lenguajes de programación
 Características de los 10 lenguajes de programación Características de los 10 lenguajes de programación
Características de los 10 lenguajes de programaciónGabriel Solano
 
Herramientas de desarrollo para dispositivos móviles
Herramientas de desarrollo para dispositivos móvilesHerramientas de desarrollo para dispositivos móviles
Herramientas de desarrollo para dispositivos móvilesFernand Bernowly
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidadRaelyx Cordero
 
Microsoft .NET Propuesta
Microsoft .NET PropuestaMicrosoft .NET Propuesta
Microsoft .NET PropuestaMarcel Aponte
 
Apis Windows
Apis WindowsApis Windows
Apis Windowssgam_00
 
Apis Windows2
Apis Windows2Apis Windows2
Apis Windows2sgam_00
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...Adrian Diaz Cervera
 
plataformas de e-learning
plataformas de e-learningplataformas de e-learning
plataformas de e-learningyoslinroes
 
Desarrollo aplicaciones windows c#
Desarrollo aplicaciones windows c#Desarrollo aplicaciones windows c#
Desarrollo aplicaciones windows c#Roger Campos
 
Introducción a la programación visual
Introducción a la programación visualIntroducción a la programación visual
Introducción a la programación visualmiguelangelvillelli
 

Similar to PCL Portable class libraries (20)

Tutorial de eclipse_denisse
Tutorial de eclipse_denisseTutorial de eclipse_denisse
Tutorial de eclipse_denisse
 
Tarea, unidad 3, de tecnologia aplicada a la educacion
Tarea, unidad 3, de tecnologia aplicada a la educacionTarea, unidad 3, de tecnologia aplicada a la educacion
Tarea, unidad 3, de tecnologia aplicada a la educacion
 
Lenguaje de Programación C
Lenguaje de Programación CLenguaje de Programación C
Lenguaje de Programación C
 
Ha2 cm40 eq2-netbeans
Ha2 cm40 eq2-netbeansHa2 cm40 eq2-netbeans
Ha2 cm40 eq2-netbeans
 
Preserntacion programacion.net
Preserntacion programacion.netPreserntacion programacion.net
Preserntacion programacion.net
 
Características de los 10 lenguajes de programación
 Características de los 10 lenguajes de programación Características de los 10 lenguajes de programación
Características de los 10 lenguajes de programación
 
Visual basic 6.0
Visual basic 6.0Visual basic 6.0
Visual basic 6.0
 
Herramientas de desarrollo para dispositivos móviles
Herramientas de desarrollo para dispositivos móvilesHerramientas de desarrollo para dispositivos móviles
Herramientas de desarrollo para dispositivos móviles
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
Microsoft .NET Propuesta
Microsoft .NET PropuestaMicrosoft .NET Propuesta
Microsoft .NET Propuesta
 
Apis Windows
Apis WindowsApis Windows
Apis Windows
 
Api Web
Api WebApi Web
Api Web
 
Apis Windows2
Apis Windows2Apis Windows2
Apis Windows2
 
Net Beans
Net BeansNet Beans
Net Beans
 
Manual free cad
Manual free cadManual free cad
Manual free cad
 
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
plataformas de e-learning
plataformas de e-learningplataformas de e-learning
plataformas de e-learning
 
Desarrollo aplicaciones windows c#
Desarrollo aplicaciones windows c#Desarrollo aplicaciones windows c#
Desarrollo aplicaciones windows c#
 
Introducción a la programación visual
Introducción a la programación visualIntroducción a la programación visual
Introducción a la programación visual
 

Recently uploaded

Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 

Recently uploaded (6)

Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 

PCL Portable class libraries

  • 1. PORTABLE CLASS LIBRARIES Librerías de clases portable…. por Juan Carlos Ricalde Poveda Xamarin Students Mexico
  • 2. PORTABLE CLASS LIBRARIES ¿Que es cross-platform development?
  • 3. PORTABLE CLASS LIBRARIES Es el entorno sobre el que desarrollamos.
  • 4. PORTABLE CLASS LIBRARIES En un desarrollo las plataformas pueden ser diferentes:
 -IOS
 -Android
 .Windows Phone
 -etc.

  • 5. PORTABLE CLASS LIBRARIES ¿Como podemos desarrollar para varias plataformas 
 si son tan distintas?
 
 

  • 6. PORTABLE CLASS LIBRARIES Microsoft .NET El camino a grandes ideas y soluciones:
 
 Microsoft.NET un Framework que permite la integración rápida de aplicaciones,
  • 7. PORTABLE CLASS LIBRARIES El camino a grandes ideas y soluciones:
 Miguel de Icaza.
 del Origen del Mono a Xamarin
  • 8. PORTABLE CLASS LIBRARIES ¿Por qué es importante la historia de .net y de Xamarin para entender el desarrollo multiplataforma?
  • 10. PORTABLE CLASS LIBRARIES Si podemos programar para cualquier plataforma ¿Para qué sirven las PCL? Las PCL fueron creadas como parte de .Net en Visual Studio 2012
 
 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.
  • 12. PORTABLE CLASS LIBRARIES Xamarin mejora el concepto de las PCL PCL Support was added in Xamarin.Android 4.10.1, Xamarin.iOS 7.0.4 and Xamarin Studio 4.2. Portable Library projects are automatically enabled in Xamarin Studio on OS X, and are built-in to Visual Studio 2013 and later.
  • 13. PORTABLE CLASS LIBRARIES Xamarin mejora el concepto de las PCL PCL Support was added in Xamarin.Android 4.10.1, Xamarin.iOS 7.0.4 and Xamarin Studio 4.2. Portable Library projects are automatically enabled in Xamarin Studio on OS X, and are built-in to Visual Studio 2013 and later.
  • 14. PORTABLE CLASS LIBRARIES Xamarin mejora el concepto de las PCL
  • 15. PORTABLE CLASS LIBRARIES Y como las uso…..
  • 16. PORTABLE CLASS LIBRARIES Benefits • Centralized code sharing – write and test code in a single project that can be consumed by other libraries or applications. • Refactoring operations will affect all code loaded in the solution (the Portable Class Library and the platform-specific projects). • The PCL project can be easily referenced by other projects in a solution, or the output assembly can be shared for others to reference in their solutions.
  • 17. PORTABLE CLASS LIBRARIES Disadvantages • Because the same Portable Class Library is shared between multiple applications, platform-specific libraries cannot be referenced (eg. Community.CsharpSqlite.WP7). • The Portable Class Library subset may not include classes that would otherwise be available in both MonoTouch and Mono for Android (such as DllImport or System.IO.File).
  • 18. PORTABLE CLASS LIBRARIES Disadvantages • Because the same Portable Class Library is shared between multiple applications, platform-specific libraries cannot be referenced (eg. Community.CsharpSqlite.WP7). • The Portable Class Library subset may not include classes that would otherwise be available in both MonoTouch and Mono for Android (such as DllImport or System.IO.File).
  • 19. PORTABLE CLASS LIBRARIES MEJORES PRACTICAS EN PCL - Separación en Capas “libreria para tarjetas de credito” - DRY No te repitas Don’t Repeat Yourself ejemplo uso de Modelos - Tener organizado el proyecto - Ahorro en desarrollo de código. Patrones de diseño pueden ser usados ejemplos : MVVM - Xamarin Form hace uso de este patron para lograr interfaces compartidas. Service Locator - Para libraries que comparten procesos comunes.
 Adapter Pattern - Para librerías que requieren de clases comunes para su consumo
  • 20. GRACIAS…. Librerías de clases portable…. por Juan Carlos Ricalde Poveda Xamarin Students Mexico