ASP.NET Core paso a paso – Introducción

Es momento de empezar a hablar de ASP.NET Core, por lo que este es el primer post de una serie denominada “ASP.NET Core paso a paso” – bien Mostaza Merlo – en donde vamos a ir viendo en detalle las distintas características del mismo.

En esta primer entrega vamos a comentar de que se trata este framework y cuales son sus principales características. Luego, a partir de las siguientes entradas ya vamos a meternos en cuestiones técnicamente más puntuales.

Sigue leyendo

Anuncios

.NETRAF 2017 – Corriendo aplicaciones ASP.NET Core en Linux

El sábado pasado junto a @camboris en el marco del evento .NETRAF 2017 dimos una charla donde contamos como correr aplicaciones ASP.NET Core en Linux (y en debo reconocer que me divertí muchísimo).

Próximamente voy a contar más acerca de lo que dejo este gran evento.

A continuación comparto los slides utilizados en la misma.

¡Muchas gracias a todos por participar!

.NETRAF 2017

.NETRAF 2017

Corriendo nuestras web apps en Kestrel usando Apache como servidor proxy

Hablando la otra vez con los muchachos del ASP.NET Latam StandUp surgió la idea de correr nuestras web apps en Kestrel  usando Apache como servidor proxy. Por lo tanto con mi compañero @camboris – al cual le agradezco que comparta su tiempo y su conocimiento conmigo – nos pusimos una tarde a jugar un poco y logramos publicar nuestra aplicación en ese escenario.

Antes que nada vamos a dejar que la documentación oficial de ASP.NET nos cuente muy brevemente que es Kestrel:

Kestrel is a cross-platform web server based on libuv, a cross-platform asynchronous I/O library.

Pero ojo…

Kestrel is designed to be run behind a proxy (for example IIS or Nginx) and should not be deployed directly facing the Internet.

No voy a entrar en detalles técnicos, con esto solo quiero recordarles que Kestrel no fue diseñado para estar expuesto a Internet, por lo que debemos configurar un server proxy que le sirva los requests a Kestrel y que además ofrezca características que este último no tiene, como capacidad para virtual hosts, security y logging.

Si nos vamos al mundo Linux las dos opciones clásicas a la hora de elegir servidores son Nginx y Apache. En la documentación oficial y otros enlaces, como el que menciono a continuación, podemos encontrar como configurar Nginx para esta función.

En este post vamos a explicar como configurar Apache para que funcione como reverse server proxy y voy a usar como guía el post Publishing an ASP.NET Core website to a cheap Linux VM host del gran Scott Hanselman.

Sigue leyendo

.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.

Sigue leyendo

Deployment Continuo de webapp ASP.NET Core en Azure trabajando en entorno Linux

Esta semana junto a mis compañeros @francoferrari86 y @camboris estuvimos jugando un poquito con .NET Core y terminamos configurando el deployment continuo – en Azure – de una aplicación ASP.NET Core desde un entorno Linux. A partir de esto pensé escribir este post por si le sirve de referencia a alguien.

Dicidí dividir este post en secciones para que sea más sencillo el seguimiento.

Preparar el entorno de desarrollo

El primer paso fue instalar .NET Core y Visual Studio Core. Paso siguiente procedimos a crear un proyecto ASP.NET Core con Yeoman utilizando el template “Empty Web Application“:

Creando proyecto ASP.NET Core con Yeoman

Creando proyecto ASP.NET Core con Yeoman

Sigue leyendo

Introducción a .NET Core 1.0

En post anteriores estuvimos hablando de .NET Core y toda esta confusión de branding que se armo al respecto. Hoy vamos a hablar de como está compuesto .NET Core y que ventajas trae sobre el clásico .NET Framework que todos conocemos.

¿Qué es .NET Core?

Comencemos con la definición de MSDN:

.NET Core es una versión modular de .NET Framework diseñada para que sea portátil entre plataformas.

.NET Core es el nuevo framework de .NET – escrito desde cero -que incluye un subconjunto de la versión completa de .NET Framework y cuyas principales características es que fue desarrollado de forma modular, multi-plataforma y es open source.

Esta vez fue diseñado de forma modular, lo que nos permite ir agregando paquetes de ensamblado Nuget a medida que lo necesitemos. .NET Core por defecto contiene las características básicas , lo que lo hace más “liviano” que el clásico framework monolítico que contenía infinidad de funcionalidad, mucha de ella obsoleta. Por lo tanto en lugar de tener una gran librería con funcionalidad que no vamos a utilizar, .NET Core está disponible como paquetes más pequeños centrados en las características.

Este esquema no solo nos permite incrementar la performance de nuestras aplicaciones sino que nos permite mayor agilidad en nuestros desarrollos, ya que tenemos la posibilidad de elegir las bibliotecas que realmente vamos a utilizar.

También es multi-plataforma (en Linux y OSX aún hay características en progreso) y lo realmente importante es que nos permite reutilizar código independientemente de la plataforma destino.

Las partes que componen .NET podríamos resumirla de la siguiente manera:

.NETCore

.NETCore

Sigue leyendo

ASP.NET 5 es ASP.NET Core

Y cuando pensamos que con el tema del versionado ya teníamos suficiente y estaba cerrado, anuncian que ASP.NET 5 ahora es ASP.NET Core… y se reivindican por completo. 🙂

Hace unos días Scott Hanselman anunció en su blog que hubo un “re-nombramiento” en cuanto al versionado del nuevo stack de tecnologías .NET (vNext). Las mismas pasan a llamarse Core y comenzarán desde cero.

Resumiendo:

  • ASP.NET 5 >> ASP.NET Core 1.0.
  • .NET Core 5 >> .NET Core 1.0.
  • Entity Framework 7 >> Entity Framework Core 1.0 or EF Core 1.0 colloquially.
ASP.NET Core 1.0

ASP.NET Core 1.0

Por un lado creo que ahora está más clara la separación entre ambas tecnologías (clásica y nueva) pero por otro lado coincido con José M. Aguilar en que lo hicieron demasiado tarde.

En fin, esperemos que no haya más sorpresas de aquí en adelante.