Machine Learning y ML.Net

miércoles, 19 de enero de 2022 Sin comentarios

La definición más básica de tecnologías de la información es la aplicación de la tecnología para resolver problemas empresariales u organizativos a gran escala. Inicialmente han sido en el ámbito del cálculo, tareas recursivas o procesamiento de gran número de datos, donde se puedan sacar ventajas de la computación. Cuando las tecnologías llevan a un dispositivo a adquirir y aplicar conocimiento y llevar a cabo comportamiento inteligente, entonces hablamos de inteligencia artificial, permitiendo así construir sistemas inteligentes para diferentes áreas de aplicación.
Para ello, estos sistemas inteligentes requieren combinar distintas tecnologías, abarcando desde la generación o captura de datos, el procesamiento de los datos con infraestructuras de computación adecuadas, la analítica de los datos, y el soporte al aprendizaje automatizado o la toma de decisiones.

Un campo de la inteligencia artificial es machine learning. Entendemos por machine laerning, conseguir que las computadoras hagan predicciones sin ser programadas explícitamente. Machine learning se usa para resolver problemas que son difíciles (o imposibles) de resolver con programación basada en reglas (por ejemplo, instrucciones if y bucles for). Un paso más en machine learning, aprendizaje automático, es cuando se introducen redes neuronales, que permiten que este aprendizaje automático sea más profundo y más complejos los conceptos que pueda aprender, se habla entonces de Deep Learning.

En esta entrada, nos referimos a ML.Net, que Microsoft lanzó en 2018 como preview, un marco de machine learning gratuito, multiplataforma y de código abierto diseñado para llevar el poder de (ML) a las aplicaciones .NET para una variedad de escenarios.
ML.NET es algo más que una biblioteca de Machine Learning que ofrece un conjunto específico de características; ofrece una API de alto nivel y un marco integral que no solo aprovecha sus propias características de ML sino que también simplifica otras bibliotecas y tiempos de ejecución de infraestructura de ML de nivel inferior.

En este ejemplo, se ha usado la bb.dd Northwind, que consiste en las operaciones de una empresa de exportación / importación en el sector de la alimentación, como catálogo de pedidos, y usar SVD (singular value decomposition) / One Class-Matrix Factorization, como modelo que muestre un ranking de productos a recomendar para los items en el pedido. La web puede verse en https://northwindml.azurewebsites.net/.

Asp.net core 5 web api crud con Angular

martes, 2 de febrero de 2021 Sin comentarios

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.

Una vez publicada la aplicación en mi hosting añadiré el enlace para testearla. Actualmente en https://bookswebapiang.azurewebsites.net/ En el repositorio de GitHub
https://github.com/jcamweb/BooksWebApiAng código fuente.

Categories: asp.net Tags: ,

.Net y .Net Core son ahora .Net 5.0

lunes, 4 de enero de 2021 Sin comentarios
.net 5.0
.net 5.0

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.

Categories: asp.net Tags: , ,

Publicar en kubernetes aplicación asp.net core

miércoles, 9 de diciembre de 2020 Sin comentarios


kubernetes
kubernetes

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.

Leer más…
Categories: asp.net Tags: , ,

Asp.net Core Web api compartido en Windows Azure Api.

miércoles, 4 de septiembre de 2019 Sin comentarios

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.

BasicCalculator
Proyecto en visual studio 2019

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.

AzureManagementApi

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…

Newopenapi

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.

La aplicación está en http://basiccalculatorapi.azurewebsites.net/basiccalculator.html para poder testearla con el cliente html/jquery.

Categories: asp.net Tags: , ,