Mi primera aplicación con ASP.NET Core

Hola amigos, en esta oportunidad vamos a crear nuestra primera aplicación ASP.NET Core siguiendo esta agenda:

1. Generate - Crear la aplicación base desde un template para iniciar.
2. Restore – Restaura todos los paquetes y dependencias en el proyecto usando NuGet.
3. Build – Compila la aplicación y genera todos los activos necesarios.
4. Run – Ejecuta la aplicación compilada.

Mis recursos

Quiero aclarar que hare este aplicación bajo estas condiciones:

1. MacBook PRO con estas características.



2. Si bien tengo VS Code, instale tambien Visual Studio para MAC ya que es gratuito.



Empezando con un template

Vamos a seguir el wizard despues de dar Next a la pantalla anterior.



Como es la primera vez espera unos minutos que descargue lo necesario.

Al finalizar de descargar las dependencias con Nuget, tenemos lo siguiente:


Si hubiese querido usar el NET CLI sería de esta manera  dotnet new mvc -o WebApplication2:


Compilando la aplicación

Cuando use el BUILD ALL obtuve este error:


Así que si obtienes ese error aplica:



Y se supera el problema.


Desde linea de comandos sería así  dotnet build:



Ejecutando la aplicación

Presionar F5



o desde la linea de comandos con dotnet run:



La estructura del proyecto

La estructura creada ya sea por el IDE o linea de comandos es la siguiente.



El archivo .csproj revela información del proyecto. Que tipo de proyecto es app web, app de consola o librería.  Para que plataforma destino el proyecto será aplicado: NET Core, NET Framework 4.5, Mono.  De que paguetes Nuget el proyecto depende. 

Si vemos el archivo nos muestra lo descrito. 



El program.cs

Es la clase con la que iniciamos la aplicación. En ASP.NET Core es usada para construir y ejecutar una instancia IWebHost.  El IWebHost es el core de tu aplicación ASP.NET Core, contiene la configuración de la aplicación y el servidor Kestrel que escucha requests y envía responses. 


Pero, se necesita otra clase, Startup.cs, donde configuraras tus servicios, defines el pipeline de tu middleware, componentes y características que tu aplicación usará. 


En resumen, una vez que toda la configuración de el WebHostBuilder es completo, la llamada a Build produce la instancia IWebHost, pero, la aplicación aún no esta manejando requests HTTP. Es la llamada a Run  la que inicia que el servidor HTTP escuche. Ya en este punto la aplicación es funcional y puede responder al primer request.

La clase Startup

Aquí configuraremos:
1. Registro de servicios
2. Middleware y MVC


El Middleware MVC y el Home Controller


El Middleware resuelve que Controller y action manejará el request. 


- Los controllers MVC pueden heredar de una clase base helper si lo desean
- La action retorna un ViewResult despues de llamar al método View()
- Si no se específica el nombre de la vista, este se tmoa del nombre del metodo action. 
- La data puede ser pasada a la vista usando el diccionario ViewData.
- La data puede tambien ser pasada a una vista usando el view model.

Esto es muy similar a Spring MVC u otros frameworks.  Ahora leyendo en la documentación si usas async o await puedes hacer programación asincrona, en ese caso el tipo de retorno será Task.


Generando HTML con Razor 


Cuando se retorna ViewResult, el MVC middleware busca un template Razor para generar la vista apropiada. La resolución de nombre se puede dar por convención de nombres.

Veamos el contenido de About.cshtml


Y gracias a Razor tenemos un template para About que originará el html.  

Y eso es todo por ahora, como desarrollador Java veo una gran similitud a framework como Spring MVC, así que no será para nada dificil que lo aprendas si has visto algo parecido antes.

Enjoy! y hasta la próxima. 







Comentarios

Entradas populares