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
.NET RAF 2017

NETRAF2017.Resume();

Al fin llego el día en que uno de mis grandes deseos se hizo realidad, llevar adelante en mi ciudad un evento sobre programación y tecnología junto a colegas que tuve la suerte de conocer a lo largo de esta profesión y que además de ser excelentes profesionales son grandes amigos.

Durante la jornada estuvimos hablando de muchísimas tecnologías del mundo Microsoft: .NET Core, Azure, Xamarin, SQL Server, ASP.NET Core, SPA con Angular, Cognitive Services, Machine Learning, Linux, Signal R y todas esas cosas de nerds :).

Un día completo en donde pudimos compartir y aprender muchísimo y pasamos muy buenos momentos.

.NET RAF 2017

.NET RAF 2017

Sigue leyendo

.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

Creando alias y swicheando entre DNX Rutimes [Linux]

En este mini-post simplemente voy a explicarles como crear alias y “swichear” entre los diferentes runtimes de .NET que tengamos en nuestro equipo utilizando dnvm.

DNVM nos proporciona un conjunto de utilidades de línea de comandos que nos permiten configurar nuestro entorno de ejecución .NET (DNX) posibilitándonos el desarrollo de aplicaciones .NET Core en otro tipo de plataformas (en nuestro caso Linux).

Veamos la lista de runtimes disponibles en mi equipo (podemos ver que el runtime activo corresponde a la versión 1.0.0-rc2-16357 de Mono):

dnvm list

Si quiero swichear al DNX correspondiente a la versión 1.0.0-rc1 del rutime .NET Core debo utilizar el siguiente comando:

dnvm use 1.0.0-rc1-update1 -r coreclr -arch x64

Luego de ejecutar el comando podemos validar que efectivamente haya cambiado el DNX Runtime activo:

swiching-runtimes

Ahora bien, si queremos simplificar la cosa podemos usar “alias”, en nuestro caso vamos a crear el alias “default-coreclr” para el DNX Rutime de .NET Core utilizando el siguiente comando:

dnvm alias default-coreclr 1.0.0-rc1-update1 -r coreclr -arch x64

Resultado:

dnvm-alias Finalmente podemos swichear usando el alias:

dnvm use default-coreclr

Espero que les sea de utilidad. 🙂

Pero que mareo con ASP.NET vNext

Hace tiempo que vengo trabajando con ASP.NET, en particular con su framework MVC, y si había algo con lo que estaba conforme era la forma en que se venía lanzando las versiones del mismo. La periodicidad con el que sacaban nuevas versiones permitía conocer “a fondo” el framework y estaba relativamente claro cuales eran las features introducidas como las dependencias con .NET. Estas y otras cosillas nos daban mayor confianza para dar el salto.

Todo bien hasta el anuncio de ASP.NET vNext. De entrada se habló de dos alternativas para trabajar en ASP.NET: la tradicional y una variante que correrá con .NET Core (este último para quien no lo conozca es una versión “ligth”, más rápida y multiplaforma del framework .NET).

Por lo tanto surgen “dos versiones” de nuestro querido framework web:

  • ASP.NET 4.6: sigue el curso “normal” del framework, es decir la misma forma de trabajo que ahora con la clásicas tecnologías ASP.NET MVC, Web API, WebForms, SignalR.
  • ASP.NET 5 o ASP.NET vNext: que esta pensado para trabajar sobre .NET Core y que deja afuera tecnologías como WebForms por ejemplo.

Conclusión, tenemos ASP.NET 4.6 que corre en la versión “completa” de .NET – .NET Full Framework 4.6 – y ASP.NET 5 que correrá en ambas versiones, la versión “full” y la “ligth” de .NET – .NET Core 5 -.

ASP.NET vNext

ASP.NET vNext

Y llegan los dolores de cabeza, porque si trabajamos con MVC en ASP.NET 4.6 estaremos trabajando con ASP.NET MVC 5.x y en cambio si lo hacemos sobre ASP.NET 5 sera ASP.NET MVC 6. Lo mismo pasa con otros frameworks como SignalR, en ASP.NET 4.6 es SignalR2 y en ASP.NET 5 tenemos SignalR3.

No perdamos de vista que ASP.NET 5 esta siendo escrito desde cero para la tecnología .NET Core, por lo que será incompatible con ASP.NET 4.6 y anteriores.

Para quienes no lo tengan presente .NET Full Framework 4.6 se presentó en el lanzamiento de Visual Studio 2015 mientras que la versión Release Candidate de .NET Core 5 estaría a finales de año. Es decir que, ya podemos trabajar con una de las alternativas pero debemos esperar – ¿mucho? – para trabajar con tranquilidad en la otra (y eso que llevan un largo tiempo anunciándolo).

Ahora bien, ¿qué se trae de nuevo ASP.NET MVC 6?. Rápidamente comentarles que tiene una nueva estructura de los proyectos, desaparece el archivo global.asax y aparece la clase Startup, desaparece nuestro viejo y querido web.comnfig y aparecen nuevos archivos de configuración JSON (global.json, bower.json, config.json, package.json y project.json), nuevos folders como “wwwroot”, integración con nuevos gestores de paquetes, desacoplamiento de IIS lo que nos permite tener nuestra aplicación auto hosteada en múltiples plataformas, etc. Pronto estaré escribiendo sobre el tema.

Resumiendo, creo anunciar vNext de forma tan temprana hizo que los desarrolladores nos confundamos más de la cuenta, más aún si tenemos en consideración toda esta tramoya de versiones. Esperemos que con el tiempo todo esto se normalice y haya más novedades al respecto. Mi opinión personal, arrancar con ASP.NET 4.6 y de paso ya ir “jugando” cada vez más con ASP.NET 5 hasta su lanzamiento.

Para mayor información sobre el tema recomiendo absolutamente el siguiente articulo: Descifrando el lío de ASP.NET vNext: versiones, disponibilidad, Visual Studio…