Para iniciar el martes en devintersection tenemos una serie de charlas super interesantes sobre tecnología y que nos espera el futuro. Vamos a ver que tenemos en el key note
Key Note
Con Scott Hanselman
Podemos tener varias versiones del. netcore en la misma maquina y utilizar la que requerimos actualizando cmd para actualizar .net globa json.
Tenemos una nueva versión de blazor que nos permite ejecutar WA (web assembly) utilizando código de Windows forms que se pueden compartir en el web o en el desktop sin tener que instalar plugins o cualquier otra cosa en el navegador.
Todo el código que se porta al navegador son dlls y se puede dejar de usar javascript para aplicaciones de cliente. Toda la lógica se puede manejar con C#.
Otra gran ventaja que tenemos usando Blazor es que podríamos tener eventos desde el lado del cliente que disparan código en el servidor directamente. La idea principal de esto es dejar la complejidad de javascript y aumentar la velocidad de las aplicaciones web por medio del código WA.
Otra de las nuevas características que vienen con la nueva versión de .netcore es que podemos compilar aplicaciones viejas y reducir el tamaño de estas aplicaciones de manera increíbles. El nuevo .netcore encuentras las dependencias o métodos que no se ocupan y los elimina del sistema que se compila.
Se tiene una nueva plataforma que es capaz de correr cualquier versión de .net de una nueva forma y estándar para que puedan funcionar todas las aplicaciones.
Going from developer to AI Rock Star
Con Zoiner Tejada
Lo primero que témenos que tener en cuanta que DL (Deep Learning) y ML (Machine Learning) tienen dos enfoques diferentes para lograr su cometido. Pero podríamos resolver problemas similares.
No debemos estar preocupados por el nivel de matemáticas que se requiere para trabajar con DL ya que con el nivel básico que ya conocemos podemos resolver los problemas que nos salgan.
Actualmente para trabajar con ML se utiliza Python por eso es importante aprender un poco de Python.
Azure cuenta con una plataforma muy complete y poderosa para poder trabajar con ML. Tiene servicios que se pueden usar para que no tengamos que crear los modelos ni pasar por todo el proceso complicado. Seria solo de usarlos. Tienen mucho potencial y nos pueden solucionar muchos problemas sin tener que hacer la parte pesada del trabajo.
Un ejemplo de esto es Azure Search que nos permite extraer el texto de los documentos para poder interpretar los datos que se requieren. Otro servicio muy poderos es el diseñado para las imágenes que nos permite hacer un montón de tareas sobre imágenes sin tener que pasar por el proceso complicado. Solo tenemos que entrenar los modelos ya existentes con los datos que deseamos para que puedan generar los resultados esperados.
Este proceso requiere de mucho CPU y poder de computo en general por eso una opción es usar la nube para poder escalar como se ocupa durante el proceso.
.Net present and future
Con Scott Hunter
.netcore esta creciendo a pasos gigantes. Muchos desarrolladores están iniciando a trabajar con esta nueva plataforma y todas las herramientas que están saliendo gracias a los esfuerzos de la comunidad. Un millón de desarrolladores por mes el año pasado descargaron .netcore.
Vienen nuevas herramientas como .netcore para Apache Spark que va permitir a los desarrolladores de .net trabajar con bigdata sobre Apache Spark.
ML.net 1.0 un proyecto Open Source que viene a permitir que los programados de c# puedan continuar trabajando en el lenguaje que les gusta haciendo modelos de ML. El framework viene con muchas características y muy fácil de usar. Es un plugin que se puede incluir dentro de Visual Studio.
Ya está el Visual Studio 2019 que cuenta con mayor rendimiento para que las versiones anteriores. Compila las aplicaciones mucho mas rápido. En general es dos veces más rápido que las versiones anteriores.
Viene la versión nueva de .netcore 3 preview 5 con mejor rendimiento para las aplicaciones. Y ya se esta hablando de la versión .netcore 5. Se espera liberar una versión nueva cada año. .netcore puede correr en cualquier lugar.
Viene una nueva herramienta para que hacer que la compilación pueda utilizar únicamente lo que necesita y de esta manera reducir los tamaños de las aplicaciones.
Ya viene la versión nueva de c# 8.0 con un montón de nuevas herramientas y características que hacen el lenguaje mucho más amigable y fácil de usar. Entre esas características viene el async sobre streams.
Detalles importantes para la versión nueva de .netcore 5.0 no se le va a dar soporte a web forms, WCF Server, Windows Workflow.
Docker and Kubernetes for Developers
Con Dan Wahlin
Primero debemos saber que un contenedor de Docker no es lo mismo que una VM (Virtual Machine). El sistema operativo donde se corre los contenedores es el único sistema operativo. Ahora en un contenedor podemos tener casi cualquier cosa como un servidor de internet, un motor de base de datos, etc.
Para poder correr Docker se requiere la instalación de Docker Desktop y con esto podemos iniciar a crear los contenedores. Entre algunas de las ventajas que podemos tener es que en el momento que no se ocupa el contenedor simplemente se borra y listo. Instalar una imagen de un contenedor es muy fácil y rápido. Las imágenes son las que tienen lo que necesitamos como el motor de base de datos, etc.
Podemos usar las imágenes existentes o podemos crear nuestras propias imágenes. Las instalaciones de las imágenes se hacen en capas por lo que podemos borrar cualquier capa que ya no nos gusta o que quedo algo mal.
Para trabajar con los contenedores podemos crear los puertos internos y externos por donde se van a comunicar nuestras aplicaciones con el contenedor y lo que está dentro del contenedor. También se puede configurar para que los contenedores puedan tener comunicación entre sí.
Podemos usar contenedores para instalar nuestras aplicaciones en los diferentes ambientes incluyendo la nube.
Utilizando un archivo de configuración se pueden correr varias transacciones a la vez para configurar uno o varios contenedores.
Los contenedores cuando se caen no tienen memoria persistente por si mismo para poder guardar datos o otros estados de manera permanente se deben crear volúmenes que si permiten guardar la información en donde nosotros decidamos.
Con Kubernetes podemos olvidar el trabajo de complicado de mantenimiento ya que el trabajo de organizar todo lo relacionado a balance de cargas, problemas de contenedores, crear otro contenedor, etc. lo pude hacer Kubernetes. Se encarga de orquestar todo lo relacionado a los contenedores.
Una gran ventaja de usar los contenedores es que vamos a garantizar que donde se use el contendor vamos a tener la misma configuración en todos los ambientes.