隆Estuvimos en la .NET Conf Argentina y te contamos la experiencia en primera persona!

Del 29 de junio al 1 de julio se realiz贸 en Buenos Aires la .NET Conf AR v2017, uno de los eventos m谩s importantes de Am茅rica Latina sobre tecnolog铆as .NET y Azure. El encuentro, que fue en la Facultad de Ciencias Econ贸micas de la Universidad de Buenos Aires.

Argentina, .NET Conf cont贸 con con 8 workshops y 10 charlas cada uno de la mano de 24 speakers hablando de temas como: Azure, Windows 10, Universal Apps, ASP.NET, MVC, WebAPI, Xamarin, Windows Mobile, Data Management, Sharepoint, Application Lifecycle Management, Agility, Visual Studio, C#, Emprendedurismo, Internet of Things, Aspect Oriented Programming, y mucho m谩s.

All铆, Jorge Artave, Jefe de Proyectos de Fx2, fue en representaci贸n de nuestra empresa, asistiendo a las diversas actividades del evento, sumando nuevas experiencias y conocimientos.

Algunos de sus comentarios sobre las charlas a las que fue Jorge:

  • Charla sobre SignalR Core, .NET Core y Angular

Charla principalmente centrada en SignalR y en ejemplos de c贸digo. Uno de los ejemplo novedosos que hicieron menci贸n fue de una aplicaci贸n para registrarse a un sorteo desde los clientes, en el cual en determinado momento el servidor notifica al ganador.

En cuanto a la parte te贸rica se explicaron temas b谩sicos de SignalR, como por ejemplo los dos modos de funcionamiento:
1. Persistent Connections: en este modo de funcionamiento el desarrollador es el responsable de definir el protocolo a seguir por la aplicaci贸n incluyendo los mensajes a ser transmitidos, permitiendo trabajar con mensajes raw.
2. Hub: En este modo de funcionamiento la herramienta es encargada del protocolo y mensajes a transmitir por la aplicaci贸n. Para el desarrollador, la herramienta le permite ejecutar funciones del cliente desde el servidor y viceversa.

Existe una versi贸n en desarrollo para .NET Core pero a煤n falta resolver unas dependencias.

  • Charla sobre Bots

Bots: 隆B谩sicamente son aplicaciones con las que podemos conversar! De parte de Microsoft lo que que presentaron fueron las herramientas de:
1. Luis.ai
2. Bot framework

El primero, Luis.ai (Language Undestanding Inteligente Service), b谩sicamente nos permite procesar lenguaje natural para obtener principalmente dos cosas de un mensaje, la intenci贸n del mismo y las entidades relacionadas. Haciendo un matcheo con la programaci贸n com煤n y corriente, la intenci贸n se podr铆a ver como las funciones que necesitamos ejecutar para satisfacer al usuario y las entidades los par谩metros de est谩s.

La segunda herramienta, Bot Framework, nos dar谩 la plataforma para armar nuestro bot, esto es, definir los distintos tipos de entidades, las acciones posibles, los distintos encadenamientos y la conexi贸n con nuestra l贸gica de negocio.

Dos puntos interesantes respecto a la charla:
Los “modelos” generados en Luis pueden ser ajustados en base a las distintas queries que se le hayan pasado. Entiendo que hay que tener cuidado con esto porque se podr铆a llegar a sobre ajustar el modelo. Si bien parece interesante hacerlo 煤nicamente mediante lenguaje natural, no necesariamente hay que restringirlo a preguntas y respuestas, en algunos casos puede ser interesante incluir controles tradicionales como pueden ser botones, lo cual esta contemplado en bot framework (ademas de otros controles)

Enlaces interesante:
http://www.github.com/marcelofelman/mva-bots
http://mfelman.com/wp-content/uploads/2017/04/Tambero.gif

  • Charla sobre Asp.NET Core

Hubieron muchas charlas enfocadas a este nuevo framework. Lo mas destacable es que actualmente se encuentran en uso y existen aplicaciones en producci贸n.

Entrando en detalles t茅cnicos, se plante贸 un cambio de responsabilidades interesante, ya no es el IDE el que propone una soluci贸n inicial con todas las dependencias posibles, es responsabilidad del desarrollador definir las dependencias a incluir. Para aclarar esto si se quiere usar MVC es necesario incluir su dependencias, si se quiere utilizar cache es necesario incluir una dependencia, hasta si se quiere distribuir contenido est谩tico (por ejemplo html, css, etc.) es necesario agregar otra dependencia ! Esto que parece tan engorroso va de la mano con una de las metas del framework, disminuir el consumo de memoria y procesamiento necesario, reduciendo las capas necesarias desde que se recibe un request hasta que se env铆a el response.

Similar a lo anterior se tiene un nuevo servidor web m谩s sencillo y multiplataforma: Kestrel. Este servidor carece de funcionalidades normales para un IIS, como por ejemplo reiniciar las aplicaciones si “crashean”, un mantenimiento b谩sico de logs o iniciar las aplicaciones al iniciar el sistema. Para solventar esta carencias hay que utilizar herramientas externas, por ejemplo para levantar autom谩ticamente las soluciones se plante贸 utilizar una llamada supervisor o configurar casa aplicacion como un demonio del sistema operativo. Adicionalmente resulta necesario utilizar un proxy reverso como puede ser nginx para poder, por ejemplo, contar con soporte para https.

Finalmente se tiene como principal ventaja la reducci贸n de costos asociado oficialmente al menor costo de los ambientes de ejecuci贸n.

  • Charla sobre Blockhain, Smart Contracts y Azure

Esta fue en lo personal una de las charlas m谩s locas del viernes. En un principio la charla comenz贸 hablando de la confianza, en particular en la que se le suele tener a los bancos a pesar de haber sucedido alguna que otra crisis por culpa de 茅stos.

Entrando en lo t茅cnico, la blockchain termina siendo una base de datos distribuida con ciertas restricciones. En particular est谩 db mantiene estructuras de datos enlazadas, mediante un hash criptogr谩fico, llamadas block. En particular cada block tiene tres atributos, los datos, un nounce (algo como una semilla) y el hash para dicho block (que termina funcionando como una firma del block).

De lo anterior resulta destacable dos cosas: que es una db distribuida y que los blocks se enlazan utilizando hash criptogr谩ficos, lo que implica que, si se quisiera hackear, habr铆a que poder romper los hashes (no menor, por lo de criptogr谩fico) y que una vez hecho esto, actualizar todos los nodos en donde se encuentre el block a modificar y al menos los adyacentes (en un caso ideal, la db se encuentra replicada completamente en todos los nodos de la red).

Para redondear lo anterior, dos cosas no menores y un ejemplo:
– La blockchain puede ser completamente p煤blica.
– Bitcoin es una red blockchain en donde los datos de los blockes, es la informaci贸n financiera de los distintos nodos (usuarios an贸nimos)
Es posible utilizarlo como una base de datos distribuida para cualquier cosa, otro ejemplo que dieron fue para el registro de sensores de temperatura en un oc茅ano con el fin de, por ejemplo, asegurar los datos a utilizar en trabajos relacionados con calentamiento global.

Smartcontracts
Smartcontracts b谩sicamente viene a ser una aplicaci贸n de las blockchain a c贸digo de software, donde cada block tiene como dato el c贸digo del software que ejecuta. De esta forma lo que se consigue es un software completamente visible y que no puede ser modificado, permitiendo tener una auditor铆a fiable del mismo. Un ejemplo bien claro de un software en donde ser铆an deseables estas caracter铆sticas, es el de una aplicaci贸n de votos electr贸nicos de una naci贸n.

Para redondear, dos comentarios finales:

– Hay empresas trabajando con esta herramienta, una es RSK Smartcontracts en Argentina.
– Azure nos permite trabajar con esto, brindando la posibilidad de trabajar con algunos frameworks (etherium es uno de 茅stos) y permite f谩cilmente definir VMs que funcionen como nodos de la misma.