The Little ASP.NET Core 2.0 Book

Hoy quiero dejaros un libro, escrito por  Nate Barbettini bajo licencia Creative Commons Attribution que se puede descargar y compartir de forma gratuita, para empezar programar con ASP.NET Core 2.0, el libro explica desde cero como empezar a desarrollar en el nuevo FW de Microsoft y esta muy bien organizado, incluye el código de ejemplo en GitHub con el contenido.

Enlace al libro y descarga

 

Tambien existe una version online, para leerlo directamente desde el navegador: https://nbarbettini.gitbooks.io/little-asp-net-core-book/content/

Agradecimientos al autor Nate Barbettini por compartir el libro con la comunidad.

Que los disfruteis!!

 

ASP.NET Core [ACTUALIZADO-2019]

aspnet-core-logo

ASP.NET Core, es el nuevo framework para desarrollo web de código abierto, modular, que puede ejecutarse en multi-plataforma Windows, Linux o Mac y ha sido escrito desde cero para hacerlo mucho más ligero, optimizado para la nube y también trabajar desde CLI (linea de comandos «dotnet») que explicaré en otro post.

En realidad, debajo del capó, es una gran colección de paquetes NuGet que se agregan al proyecto, están instalados en nuestro PC, con las diferentes versiones de .NET Core que vayamos actualizando y podemos encontrarlos dentro de la carpeta «C:\Program Files\dotnet».

ACTUALIZADO 5-ENE-2018 (NET CORE 2.0): En ASP.NET Core 2.0, los proyectos creados desde Visual Studio 2017 o desde linea de comandos CLI con «dotnet new mvc», incluyen una sola referencia al paquete Microsoft.AspNetCore.All, un «metapaquete» que hace referencia a todos los otros paquetes de ASP.NET Core que necesita para un proyecto típico. De esta forma, nos ahorramos tener cientos de referencias de paquetes en el archivo de proyecto.

ACTUALIZADO 1-AGO-2018 (NET CORE 2.1): Recomendado Migración a NET Core 2.1 de todos los proyectos, dejo enlaces oficiales con la explicación, ya que, Microsoft dejará de dar soporte a .NET Core 2.0 a partir del próximo 1 de Septiembre de 2018.

Noticia: net-core-2-0-will-reach-end-of-life-on-september-1-2018/

Como realizar la migración: https://docs.microsoft.com/es-es/aspnet/core/migration/20_21?view=aspnetcore-2.1

ACTUALIZADO 1-JUN-2019 (NET CORE 2.2): Recomendado Migración a NET Core 2.2 de todos los proyectos, para estar alineados con la nueva versión y realizar la migración visitar: https://docs.microsoft.com/es-es/aspnet/core/migration/21-to-22?view=aspnetcore-2.2

ACTUALIZADO 1-JUL-2019 (NET CORE 3.0): Recomendado comenzar a planificar la migración de aplicaciones a NET Core 3.0 de todos los proyectos. Para ver los pasos y realizar la migración visitar: https://docs.microsoft.com/es-es/aspnet/core/migration/22-to-30?view=aspnetcore-2.2

ACTUALIZADO 1-SEP-2019 (NET CORE 3.0): Novedades de NET Core 3.0 preliminar antes del lanzamiento definitivo en la DotNetConf 2019: https://docs.microsoft.com/es-es/dotnet/core/whats-new/dotnet-core-3-0

¿Deberia migrar mis aplicaciones .NET?

La respuesta es complicada y siempre dependerá de las necesidades y el escenario actual que tengamos, primero debemos auditar para decidir si vale la pena, mejor construir de nuevo la aplicación o dockerizarla.

Dejo esta respuesta, que me gusto bastante:

«Ever since ASP.NET Core came out, a big deal has been made that it runs on Linux and we can finally deploy ASP.NET inside Docker containers. While there’s no doubt that it’s a huge step forward for the platform; there’s one thing that is often overlooked… This is only good news for green field projects and apps that can be ported to ASP.NET Core.

The majority of existing ASP.NET apps will never be ported to ASP.NET Core. There are many reasons an app can’t be ported:

  • Too many dependencies on System.Web
  • WebForms!
  • Third party dependencies that haven’t been ported to .NET Core
  • It runs perfectly fine in .NET 4.6 and earlier and doesn’t make financial sense to port it

This is why Windows containers are so important. They let us bake our existing applications into Docker images and deploy them with the same tools as the rest of the Docker ecosystem.»

¿Evolución o Revolución?

La respuesta rotunda es revolución, la forma de crear aplicaciones web con ASP.NET Core es muy diferente de como se programan desde el inicio con ASP, WebForms y también MVC/WebApi. Como vemos es este gráfico de evolución de ASP.NET

La información sobre el presente y el futuro está disponible en los informes de la DotNetConf 2016. Y como digo siempre una imagen vale más que 1000 palabras, en la imagen siguiente vemos el esquema general de la plataforma ASP.NET Core.

aspnet-core-model

Como mencioné al principio, ASP.NET Core es un framework modular y por lo tanto distribuido con paquetes NuGet (nos olvidamos del monolítico system.web.dll). Esto nos permite incluir solo aquellos paquetes que se requieren en nuestra aplicación para hacerla más ligera y optimizada para la nube.

ASP.NET Core startup  y Configuración

El arranque de una aplicación ASP.NET Core no deja de ser simple, pero es importante conocer el flujo de inicio que vemos en este diagrama:

aspnet-core-start

Otro aspecto importante es que las aplicaciones ASP.NET Core se puede ejecutar tanto en Full Framework (FW 4.x) con en Core CLR y estan diseñadas para desplegarse en la nube asi como en sistemas on-premises.

Características de ASP.NET Core

Info extraída desde MsDocs, ASP.NET Core incluye las siguientes caracteristicas:

 

Comandos «dotnet» para Multi-Project Solution

Muchas veces, necesitamos crear varios proyectos y unirlos en una solución de Visual Studio, la forma simple de hacerlo desde la CLI la encontramos en este articulo: https://www.skylinetechnologies.com/Blog/Skyline-Blog/February_2018/how-to-use-dot-net-core-cli-create-multi-project

Por último, un pequeño consejo, comenzar a usarlo y probarlo porque sin lugar a dudas, es la apuesta de futuro para desarrollar nuevos proyectos web de Microsoft.

 

ASP.NET 5 is dead – long live ASP.Net Core!!

Sin duda, una noticia importante para toda la comunidad de ASP.NET, según ha publicado recientemente Scott Hanselman en su blog ASP.NET 5 pasa a mejor vida o mejor dicho evoluciona para dar la bienvenida al nuevo ASP.NET Core 1.0 and .NET Core 1.0

El motivo principal es por la evolución hacia .NET Core y soporte multiplataforma:

  • ASP.NET 5 es ahora ASP.NET Core 1.0.
  • .NET Core 5 es ahora .NET Core 1.0.
  • Entity Framework 7 es ahora EF Core 1.0.

Este cambio no afecta a que seguiremos disponiendo de ASP.NET y Framework 4.6:

  • ASP.NET Web Forms 4.6
  • ASP.NET MVC 5.2.3
  • ASP.NET Web Pages 3.2.3
  • ASP.NET Web API 5.2.3
  • ASP.NET SignalR 2.1.2

Sobretodo, tener en cuenta la parte final del anuncio de Hanselman, que cito  a continuación:

«Which to choose? To be clear, ASP.NET 4.6 is the more mature platform. It’s battle-tested and released and available today. ASP.NET Core 1.0 is a 1.0 release that includes Web API and MVC but doesn’t yet have SignalR or Web Pages. It doesn’t yet support VB or F#. It will have these subsystems some day but not today.»

Link Oficial Hanselman: http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx

¿Deberia migrar mis aplicaciones .NET?

La respuesta es complicada y siempre dependerá de las necesidades del cliente y el escenario actual que tengamos, primero debemos auditar lo que tenemos que migrar para decidir si vale la pena o es mejor construir de nuevo la aplicación.

Dejo esta respuesta, que me gusto bastante:

«Ever since ASP.NET Core came out, a big deal has been made that it runs on Linux and we can finally deploy ASP.NET inside Docker containers. While there’s no doubt that it’s a huge step forward for the platform; there’s one thing that is often overlooked… This is only good news for green field projects and apps that can be ported to ASP.NET Core.

The majority of existing ASP.NET apps will never be ported to ASP.NET Core. There are many reasons an app can’t be ported:

  • Too many dependencies on System.Web
  • WebForms!
  • Third party dependencies that haven’t been ported to .NET Core
  • It runs perfectly fine in .NET 4.6 and earlier and doesn’t make financial sense to port it

This is why Windows containers are so important. They let us bake our existing applications into Docker images and deploy them with the same tools as the rest of the Docker ecosystem.»

 

 

Microsoft convierte su Core .NET en Open Source

Microsoft mueve ficha de nuevo y ha comunicado durante el Evento Connect() una de las novedades más importantes de estos días y es que ha convertido el Core Runtime y Framework .Net en OpenSource bajo la licencia MIT que se ira liberando poco a poco para toda la comunidad.

Novedades .Net Build 2014
Novedades .Net Build 2014

 

¿Y esto que significa para las desarrolladores?

Pues, que dentro de poco, se podrá desarrollar multiplataforma con .Net, y hacer aplicaciones para Mac OS, Linux, etc. Por supuesto, alguién tendrá que encargarse de hacer la migración a otros plataformas y disponer de un IDE para cada una de ellas.

¿Dónde puedo encontrar el código fuente de Net?

Para los más interesados, aquí os dejo el link en GitHub de  .NET Core y también our samples available on GitHub.

Link oficial: http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx