Esta pagina se ve mejor con JavaScript habilitado

Validando ensamblados para desarrollo multiplataforma

 ·  ‚ėē 4 minutos lectura  ·  ‚úćÔłŹ Saturnino Pimentel
    ūüŹ∑ÔłŹ
  • #c#

Hoy est√° surgiendo la necesidad de llevar la l√≥gica de negocio a trav√©s de diferentes plataformas evitando reescribir c√≥digo para cada una de ellas, las ventajas que se pueden obtener de ello son bastante interesantes ya que hasta cierto punto¬†reducir√≠an los tiempos y el esfuerzo a la hora de desarrollar ¬†proyectos (todos sabemos que no existen balas de plata) y¬†es que pi√©nsenlo trabajar en un escenario¬†donde puedas realizar pruebas a la funcionalidad de tu l√≥gica de negocio y en caso de ser necesario solucionar los errores en un solo ensamblado en lugar de ir a trav√©s de cada uno de los proyectos reduce o al menos centraliza el esfuerzo que el proyecto requiere, pues bien con el lanzamiento en el √ļltimo evento de Microsoft de .Net Core podemos tener funcionalidad en una forma vertical entre las plataformas .Net.

.Net Core ¬ŅQu√© es eso?

En resumen es una nueva implementación del .Net Framework modular, Open Source y que a diferencia de proyectos como Mono es la versión de Microsoft y por tanto va en relación con el framework actual de las aplicaciones .Net. Una vista rápida de esto queda en laPA0ges/2015/03/PA0-1024x537.png)](/contePA01](https://saturninopimentel.com/images/2015/03/PA01.png)

Como podrás darte cuenta en la segunda imagen está actualmente disponible para aplicaciones del Store de Windows, ASP.Net 5 y aunque no aparecen las plataformas también tiene compatibilidad con Xamarin.

Si deseas conocer m√°s acerca del .Net Core te recomiendo el siguiente post¬†donde adem√°s de ver las caracter√≠sticas y componentes de .Net Core, te mencionan todo el trabajo y consideraciones que se tuvieron¬†que realizar para que el proyecto viera la luz (vaya que son escenarios que no me hab√≠a imaginado, pero que surgen con 1.8 billones de m√°quinas a tener en cuenta :S ), adem√°s podr√°s leer por que aparece la capa del Runtime Adaption Layer,el que ha llevado a la decisi√≥n de a√ļn mantener las ¬†implementaciones de algunas caracter√≠sticas fuera de este proyecto, lo cual era de esperarse ya que no todas ellas hacen sentido en todas las plataformas y se vuelve necesario dejar fuera cierta funcionalidad y por √ļltimo veras que la forma de obtener el .Net Core es a trav√©s de proyectos que se encuentran en¬†Nuget.

Una vez he dado esta corta descripción imaginemos el siguiente escenario, tenemos la lógica de negocios que hemos implementado en nuestra Windows Phone App y como hemos hecho un excelente trabajo deseamos utilizarla para nuestros proyectos en otras plataformas, pues bien antes de que comiences a agregar tu proyecto de PCL para posteriormente utilizarlo en Android, iOS o ASP.Net te recomiendo que utilices .Net Portability Analyzer.

.Net Portability Analyzer

.Net Portability Analyzer es una extensi√≥n de Visual Studio que nos permite conocer el porcentaje de c√≥digo que podemos reutilizar de nuestros ensamblados a trav√©s de diferentes plataformas por medio de configuraciones muy sencillas, para su instalaci√≥n solo necesitamos entrar en el men√ļ Tools -> Extensions and update y posteriorPA1](https://saturninopimentel.com/images/2015/03/PA1.png)

 

Una vez hemos descargado e instalado la extensi√≥n tendremos la opci√≥n de seleccionar las plataformas para las que deseamos analizar el ensamblado para esto es necesario¬†ir al men√ļ Tool->Options y seleccionar .Net Portability Analyzer esto nos mostrar√° un desplegado de las tecnolog√≠as para las que podePA4](https://saturninopimentel.com/images/2015/03/PA4.png)

Una vez tenemos configuradas las plataformas podemos realizar dos tipos de análisis:

Ambas opciones nos mostrar√°n el porcentaje de c√≥digo que es com√ļn para las plataformas y sugerencias en caso de existir alguna forma de adaptar nuestro c√≥digo, de lo contrario tendremos que modificar nuestro proyecto e incluir la funcionalidad para caPA5ges/2015/03/PA5-1024x556.png)](/images/2015/03/PA5.png)

Sin duda este tipo de ayuda nos será de vital importancia ya que podremos saber con antelación los cambios que necesitamos para mantener la funcionalidad dentro de nuestro ensamblado y en caso de no existir alguna opción disponible realizar las implementaciones necesarias en cada plataforma, por que como ya hemos dicho .Net Core es una parte del .Net Framework, por tanto algunas funciones no están disponibles en él.

compartir en

Saturnino Pimentel
Escrito por
Saturnino Pimentel
Software developer