En la entrada http://www.jcamweb.com/blog/aspnet/net-y-net-core-son-ahora-net-5-0/ se describieron algunas de las ventajas de la actualización de asp.net core 5. Como un tipo de las aplicaciones típicas es usar un backend en webapi y frontend angular, por sus ventajas de ser una SPA, arquitectura en componentes y posibilidades de PWA,en esta entrada vamos a ver las posibilidades que ofrece usar el proyecto propio de Visual Studio para desarrollar este tipo de aplicación.
En 2001 apareció .Net actualmente en la versión 4.8, este fue un framework de desarrollo común para aplicaciones de escritorio y web siendo el estándar en Windows. Posteriormente en 2016 Microsoft presentó .Net Core una plataforma de desarrollo modular, disponible para Linux, Mac y Windows y bajo licencia MIT. Desde finales de 2020 está la unificación de estos dos framework en .Net 5.0. Veamos algunas de las mejoras.
Primero decir que se ha eliminado «Core» del nombre para enfatizar que esta es la implementación principal de .NET en el futuro. .NET 5.0 admite más tipos de aplicaciones y más plataformas que .NET Core o .NET Framework. Mejora en el «Garbage Collector» GC, el recolector de memoria mejora sustancialemte respecto a .Net 4.8 y .Net Core 3.1 usando BenchmarkDotNet. Mejora en el compilador «Just-In-Time» Jit, del 40% respecto a .Net 4.8. Optimización en el procesamiento de textos, dichos cambios se extienden desde microoptimizaciones en rutinas que procesan caracteres individuales hasta revisiones de bibliotecas completas de procesamiento de texto. Y para quienes utilizan C#, como no, incorpora todas las mejoras de la versión C# 9.0.
En la entrada http://www.jcamweb.com/blog/aspnet/asp-net-core-web-api-compartido-en-windows-azure-api/ detallamos el interés y pasos de usar el Api Management de Windows Azure para tener una asp.net core api publicada en el cloud. Pero qué pasa si queremos olvidarnos de desarrollar para un sistema operativo / entorno concreto, ir comprobando que librerías deben estar instaladas para ejecutar nuestra aplicación, y tener servidores / escalabilidad de inmediato. La respuesta es publicar en kubernetes.
Dos de los paradigmas, más nombrados en los últimos años, para creación, publicar y compartir funcionalidad de software, son web api y cloud. En esta entrada vamos a utilizar asp.net core para crear un web api y publicarlo en windows azure.
Este es el proyecto en visual studio 2019 de Basic Calculator, una aplicación que expone las funciones aritméticas básicas a través de un web api controller. Además se ha añadido un cliente jquery para consumirlo.
Para facilitar el proceso de compartir, se ha añadido el https://www.nuget.org/packages/Swashbuckle.AspNetCore.Swagger/ que crea una url con fichero OpenApi en formato json para «descubrir» la interfaz api cuando se publique en azure. Inicialmente se ha de publicar el proyecto en windows azure, esto será el backend que responderá a la interfaz que se crea con el api management de windows azure. Para ello podemos seguir la entrada en http://www.jcamweb.com/blog/general/publicar-en-windows-azure/. Una vez publicada tocan los pasos de generar la api.
Este es el recurso que debemos crear para gestionar la web api en azure. Debemos crearlo en el mismo grupo recursos que tengamos el proyecto web api asp.net core. Este recurso, que en este caso llamamos BasicCalculator, es el que nos va permitir admistrar la web api, tal como distintas versiones, tener una versión de evaluación con limitación de llamadas, identificación…
Iremos entonces, en el panel de admistración de azure, a todos los recursos, elegiremos el Api Management que creamos anteriormente y daremos a crear un Api. Como subimos con el Nuget la funcionalidad de crear el fichero openapi, tendremos una url con la definición de nuestra web api. Esta el la url que debemos utilizar cuando demos a «Add new Api», elegir «OpenApi», así de manera automática expondrá la interfaz de la api y tendremos por añadido un entorno de testeo de la web api.
Coincidiendo con la publicación de Visual Studio 2013 y con ello las actualizaciones de EntityFramework 6.0.1 y asp.net Web Api 2 se va aprovechar para rescribir parte del proyecto http://www.jcamweb.com/blog/aspnet/http-services-con-asp-net-web-api/ en concreto usar entity framework para las funciones de recuperar e introducción de datos. Además aprovechando la cuenta de windows azure publicaremos el proyecto como web site. La url es http://ffvoilewebapi.azurewebsites.net/de manera que pueda compararse la ejecución a través de Web Services y de asp.net Web Api. El proyecto está organizado tal como se ve en la imagen de la izquierda, se ha creado un proyecto web en blanco para .net 4.5, donde a través de NuGet hemos instalado Entity Framework 6.0.1, SqlServerCe 4.0 para soporte de datos. La parte de código a destacar es por una parte el acceso a datos y LicencieController.Cs que nos proporciona la funcionalidad de aplicación http. En cuanto a la parte html, javascript, jquery puede consultarse en el código de la página default.aspx. Por un lado se ocupa en una tabla de mostrar los datos y con campos de formulario la entrada de un nuevo registro. Leer más…