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/.
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.
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…
Desde que en 2002 se publicó la primera versión del entorno de desarrollo de Microsoft.net/asp.net han pasado ya unos años. Y aunque, poco a poco se han ido agregando otros frameworks/tecnologías sobre .net, Wcf, mvc, Entity Framework, Web api, en estos meses con la aparición de la versión 5.0, es cuando se ha producido la evolución / ruptura más destacable sobre el versión 1.0 original.
Esta última versión, se basa de componentes modulares con una sobrecarga / acoplamiento mínimo , por lo que es fácil mantener la flexibilidad al construir las aplicaciones. Además se pueden desarrollar y ejecutar las aplicaciones ASP.NET 5 multiplataforma en Windows, Mac y Linux. Por otra parte desde Microsoft se proporcionan herramientas, como la edición comunity de Visual Studio para poder desarrollar sobre este nuevo entorno. En el artículo se detallan algunas de las ventajas de esta nueva versión asp.net 5.0, así cómo iniciarse a desarrollar en él. Leer más…
En la entrada http://www.jcamweb.com/blog/aspnet/asp-net-web-services-facilmente-compatibles-con-cualquier-tecnologia/ hablamos de cómo conseguir servicios Soap compatibles de manera fácil con cualquier tipo de cliente que quisieran usarlo. Además en sucesivas entradas también comentamos sobre servicios Wcf y lo que entonces era más novedoso para el entorno .netWcf RestFul . Este último es lo más semejante a lo que vamos a poner de ejemplo en esta entrada, construir servicios que no sólo usen http como transporte, sino ser una genuina aplicación http. Y es que los Http Services usan las posibilidades de httproute por lo que tenemos una aplicación con interfaz sobre las urls. Además cualquier plataforma de desarollo que proporcione un cliente Http puede consumir fácilmente estos servicios. Leer más…