Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

Ya disponible .NET Core 1.0: la plataforma moderna para desarrollo multiplataforma y en la nube de Microsoft

Nota campusMVP: Este artículo se publicó originalmente en VariableNotFound, el blog personal del nuestro tutor José María Aguilar. Esta es una reproducción con su permiso.

Dot Net Core logo

Tras un desarrollo muy largo y convulso, ayer se presentaron las respectivas versiones 1.0 RTM de .NET Core, ASP.NET Core y Entity Framework Core, junto con actualizaciones de una serie de productos relacionados.

La verdad es que hace tan sólo unos años, presentar la nueva versión de ASP.NET en la conferencia Red Hat DevNation habría resultado una auténtica osadía y probablemente habría acabado con tomates volando hacia el escenario. Pero esto es agua pasada, y este simple gesto es una prueba más de que realmente las cosas han cambiado en Microsoft.

Con el lanzamiento de la versión 1.0 de la infraestructura .NET Core y el conjunto de frameworks basados en ella (ASP.NET, MVC, Entity Framework), iniciamos una nueva época en la que aquél sueño de desarrollar o ejecutar fácilmente aplicaciones .NET en cualquier plataforma es ya una realidad, y con todo el soporte y las bendiciones del gigante de Redmond. Escenarios antes impensables, como desarrollar desde Mac para desplegar en Linux, o crear nuestras aplicaciones en Windows y explotarlas desde un contenedor Docker, son ya posibles.
Estamos ante un reboot en toda regla: todos estos frameworks han sido construidos desde cero teniendo en mente conceptos actuales que ni siquiera existían cuando empezaron a gestarse las versiones iniciales de .NET o ASP.NET "clásicos": la nube, alto rendimiento, escalabilidad, APIs, múltiples dispositivos y plataformas, contenedores, microservicios etc. Y creados usando principios y buenas prácticas que tampoco eran los habituales antaño: inyección de dependencias, clases con responsabilidades limitadas, "sustituibilidad", "componibilidad", abstracciones basadas en interfaces, pruebas unitarias...

Resumiendo, ayer se lanzaron, entre otras cosas:

Con estas novedades ya tenemos entretenimiento para una temporada ;-)

Curso de ASP.NET Core MVC: Tu mejor opción para aprender online y en español.

¿Debo migrar ya a ASP.NET Core?

ASPNET_Core_Banner

Oficialmente, ASP.NET Core se encuentra ya en RTM, lo que quiere decir que está listo para ser utilizado para desarrollar y explotar aplicaciones reales. Las recomendaciones son:

  • No intentar portar a ASP.NET Core aplicaciones existentes, pues el esfuerzo necesario para ello es comparable a lo que supuso el salto de Web Forms a MVC. Si fuera necesario hacerlo, se recomienda afrontarlo más como una reescritura que como una migración.
  • Sí serían candidatas a darle la oportunidad a ASP.NET Core aquellas aplicaciones que vayan a desarrollarse desde cero, o bien cuando sean necesarias características exclusivas de este nuevo framework como el soporte multiplataforma (por ejemplo, si necesitamos desplegar sobre Docker).

Y ahora hago yo mi aportación personal al respecto: abstrayéndonos un poco del entusiasmo que despiertan estas novedades y de las ganas que sin duda todos tenemos de hincarle el diente en proyectos reales, hemos de ser conscientes de que estamos ante productos que acaban de salir del horno, aún incompletos en algunos aspectos, y que seguirán evolucionando durante los próximos meses. Aún su ecosistema y comunidad son relativamente pequeños, y al romper con las versiones anteriores hay puntos en los que partiremos desde cero.

Mi recomendación, por tanto, sería actuar con prudencia y estudiar detenidamente las necesidades que tenemos antes de embarcarnos en una aventura que puede ser costosa; simplemente evaluemos los entornos de explotación a los que nos dirigimos, dependencias externas (motores de bases de datos, componentes de terceros…), intención de reutilizar de código existente, las características que necesitamos y no están aún implementadas en Core, el tooling, y muchas otras cosas que nos podrían comprometer en el futuro. Eso sí, una vez la evaluación resulte positiva, seguro que disfrutamos con estos nuevos marcos de trabajo y las posibilidades que nos ofrecen :)

Por último, os dejo algunos enlaces por si queréis ampliar información:

Nota campusMVP: Si tienes dudas sobre esta versión, qué incluye exactamente, si sustituye a la anterior o quedarán ambas, etc... por favor, lee este artículo que trata de resolver estas cuestiones.

José María Aguilar José María atesora una amplísima experiencia trabajando en el mundo del desarrollo de software (programador, analista, responsable de informática, consultor, director técnico), principalmente con tecnologías Microsoft. Actualmente trabaja como consultor y desarrollador independiente, ofreciendo servicios tecnológicos a empresas e instituciones.
Es un reconocido experto en desarrollo web en todo el mundo, y es autor del libro de Microsoft Press "SignalR Programming in Microsoft ASP.NET".
Escribe regularmente artículos sobre ASP.NET MVC y otros temas relacionados con el desarrollo de software en su blog.
Puedes seguirlo en Twitter en @jmaguilar. Ver todos los posts de José María Aguilar

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Comentarios (4) -

Roy Sillerico
Roy Sillerico

La pregunta clave, bueno si desarrollo un sitio web y quiero publicarlo en un entorno linux, como lo aria? en un apache? se tendria un IIS para linux? podrían aclararme las dudas al respecto. Saludos

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola:

Las aplicaciones ASP.NET Core se ejecutan sobre un host llamado Kestrel, que es un servidor web multiplataforma, y es una forma sencilla de albergar y  aplicaciones web que utilizan ASP.NET Core.

Sin embargo no conviene exponer Kestrel al exterior (/recursos/post/3-consejos-para-hacer-hosting-de-aplicaciones-ASPNET-5-(vNext)-con-Kestrel.aspx) pues no tiene las características avanzadas de un Apache, IIS o NGinx.

Por eso,  lo que se utiliza para servir las aplicaciones al exterior es un servidor web "completo" y empresarial como puedes er IIS o (en el caso de Linux) Apache, NGinx o cualquier otro servidor web que utilices (No hay un IIS para Linux, al menos de momento).

En la documentación oficial de .NET Core tienes un artículo que te detalla cómo hacer el despliegue en Linux on Nginx: docs.asp.net/.../linuxproduction.html

Saludos.

Responder

Roy Sillerico
Roy Sillerico

Gracias por la respuesta Jose.

Bueno tengo otra consulta un poco mas profunda, bueno en un contexto donde quiera pasar mis servicios a un Servidor Linux bajo el nuevo .net Core, Como tendría que hacer en el punto de la conexión a la BD, ya que actualmente me conecto desde EF a Oracle mediante el ODAC, pero bueno el ODAC se instala en el servidor Windows, aparte no se si este ODAC utilizado en el .net clásico también se podría utilizar en el nuevo .net core, aparte como instalaría o que tendría que hacer para también instalarlo en un servidor Linux? Creo que no me explique bien pero mmmmmm creo que se me entiende. Saludos.

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola de nuevo:

Tienes que tener en cuenta que .NET Core viene acompañado de Entity Framework Core, que actualmente está todavía muy verde y le faltan muchas cosas para equipararse a EF "tradicional".  Te recomiendo que leas este post que escribí hace unos meses he ido actualizando con la situación de .NET:

/recursos/post/El-panorama-de-NET-en-2016-plataforma-completa-o-NET-Core.aspx y

y en general los que tenemos sobre este tema:

/recursos/?tag=/Core Framework

pues son muy ilustrativos.

Continuando, entre las muchas cosas que le faltan está, ahora mismo, el soporte para Oracle. De hecho tienen un hilo abierto en GitHub sobre este asunto:

github.com/aspnet/EntityFramework/issues/4293

Sigue a la gente del equipo de Oracle para .NET en Twitter: https://twitter.com/oracledotnet y te enterarás de cuando saquen soporte, pero de momento no lo hay...

Saludos.

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.