.NET Core – Cuando Sí y cuando NO

En esta “primera edición oficial” del ASP.NET Community Standup LATAM – del cual les voy a hablar más adelante – comenté acerca de cuales son los escenarios en donde conviene arrancar con .NET Core y en los cuales hay que evaluar con mayor cuidado su implementación y tal vez optar por alguno de sus frameworks “hermanos”.

.NET Family

Voy aprovechar este post para resumir estos escenarios y les comparto documentación donde se explica en mayor detalle los motivos de cada uno.

¿Cuando deberíamos usar .NET Core?

Necesidades de “Cross Platform”

Si necesitamos que nuestras aplicaciones/servicios web corran en Linux, MacOS o Windows efectivamente la elección de .NET Core es acertada. Otra opción es el projecto Mono, pero este no goza de ser oficialmente soportado por Microsoft. Para aquellos que trabajen en Windows, Visual Studio es el IDE por excelencia, pero si estamos trabajando en Linux o MacOS (o Windows) podemos optar por Visual Studio Code que es free, open source y entre muchas otras cosas nos ofrece intellisense y debbuging.

Microservices

Es tal vez el escenario ideal en donde empezar a realizar nuestros primeros desarrollos con .NET Core. Una de las características de este tipo de arquitecturas es juntamente dividir una aplicación en pequeños servicios donde cada uno corre en su propio proceso y justamente podemos optar por trabajar en .NET Core en algunos de ellos (siempre y cuando no tengamos necesidades de librerías de terceros o frameworks aún no portados a .NET Core, tema que vamos hablar a continuación).

Sistemas con mejor performance

.NET Core fue escrito desde cero con el concepto principal de que sea modular lo cual mejoro muchísimo la perfomance respecto de su hermano .NET Framework. Un ejemplo claro es el siguiente ASP.NET Core – 2300% More Requests Served Per Second.

Herramientas de línea de comandos

Si bien no se trata de un factor determinante a la hora de elegir si voy o no a trabajar con .NET Core es un “chiche” que fue muy bien recibido por los desarrolladores. En todo este ecosistema de .NET Core tenemos disponible CLI que se trata de la nueva interfaz de línea de comando que incluye el nuevo comando “dotnet” el cual nos permite ejecutar diferentes tipos de comandos sin necesidad de un IDE.

Desarrollo de aplicaciones UWP

Las aplicaciones desarrolladas para Universal Windows Platforms están construidas sobre .NET Core.

¿Cuando no deberíamos usar .NET Core?

Migración de aplicaciones productivas

En muchos casos lo primero que se nos vinos a la cabeza cuando empezamos a jugar con .NET Core fue pensar “voy a migrar tal desarrollo en el que estoy trabajando”. En muchos casos esto no se justifica, ya que posiblemente estamos haciendo uso de librerías o frameworks de terceros que aún no fueron portados a .NET Core. Sin embrago si podríamos migrar a ASP.NET Core  pero con la condición de que corra bajo el CLR del tradicional .NET Framework.

Nuevas aplicaciones “monolíticas”

Si estamos encarando una nueva aplicación en la cual no tenemos demasiadas opciones a nivel infraestructura o arquitectura y en la que seguramente vamos directo a un esquema monolítico, es posible que no podamos escapar al uso de librerías de terceros que aún no hayan sido migradas a .NET Core.

Necesidades de frameworks o características full de librerías

Si bien muchas de las librerías que son habitué nuestras como EF o WCF ya fueron portadas a .NET Core, no todas sus características están disponibles en este último.  Por otro lado tenemos frameworks o “sub-frameworks” que no están disponibles en .NET Core, como es el caso de WPF, WebForms o WinForms.

Un sitio útil es el siguiente: CoreFX issues marked as port-to-core (en el mismo podemos ver el status de las librerías que están siendo portadas a .NET Core y las que están en carpeta).

Para finalizar les dejo algunos enlaces para que puedan ver a fondo estos temas y que fueron usados de referencia para este post:

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

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