La semana pasada,
se celebró la conferencia de desarrolladores más grande de Microsoft
Build2019 . Habiendo ido allí, perseguí 2 goles.
- El primer objetivo es comprender a dónde va Microsoft en términos de desarrollo y qué tecnologías y enfoques está promoviendo.
- El segundo objetivo es comprender el estado de la comunidad en torno a Microsoft. Build, una conferencia pública, da una mejor idea de esto que las conferencias internas de Microsoft para sus empleados. En un evento público, puede sacar conclusiones incluso sobre la cantidad de personas que asistieron a la sesión.
Por mi parte, he identificado varios temas clave sobre los que quiero compartir mis pensamientos:
- .Net Framework Roadmap
- Kubernetes
- Sin servidor
- Informática de borde
- Big Data, Machine Learning, Inteligencia Artificial
- Plataforma de presentación de Windows
.Net Framework Roadmap
En Build2019, hubo un informe de
.NET Platform Overview and Roadmap . Recomiendo ver y leer
Introducción a .NET 5 ,
C # 8 y un informe separado sobre C # 8 -
El futuro de C #
- Mis observaciones desde el anuncio de .net core 3.0 en lo siguiente: la creación de estándares .net core / .net fue muy correcta, pero en .net, como en otras plataformas, se ha acumulado una gran cantidad de código que no se puede tomar y transferir de esta manera. Y, por lo tanto, debe llevar los bollos .net core / standard a los proyectos antiguos con una modificación mínima. WinForms / WPF fue llevado a código abierto, la próxima versión ya será con el estándar .net bajo el capó, y puede olvidarse de la antigua estructura de los archivos csproj y obtener muchos más bonos. Las cosas son ciertamente correctas, pero también son causadas por el hecho de que el legado también debe ser compatible.
- Es bueno que para las plataformas móviles UWP ya no se recuerde, y solo queda Xamarin para desarrolladores de C #.
- En el stand del equipo .Net Core, hice la pregunta: “¿Y qué grandes cambios piensas hacer en .Net 6-7-8? ¿Y tendrá una razón para aumentar la versión principal del producto cada año? Sobre todo, me gustó la parte de la respuesta que traduje, entendí cuán “bueno, esta es la visión, y cómo será la próxima, ya veremos. „
- Tuve pensamientos similares sobre C # 8, así como sobre todos los lanzamientos después de async / await, lo que realmente cambió el estilo de programación en C #. Y todo lo demás, por supuesto, fue divertido y agregó azúcar sintáctico, pero el fondo Async / Await parecía bastante desvaído. Pero el código se está volviendo cada vez menos como el clásico C #. ¿Qué dirías sobre dicho código, así que en 2012

Pero lo que no me gustó de esta sesión fueron los intentos persistentes de enfatizar una vez más a todos los desarrolladores de .net / C # la necesidad de conocer, comprender y
usar Machine Learning, Cognitive Services , etc., a diario.
Por supuesto, un desarrollador inteligente debería comprender tales cosas, estudiar y practicar, si es posible. Pero, en el 99% de los casos, esto no se requiere en el proyecto, y esa evangelización persistente, francamente, comienza a molestar.
Para ser honesto, realmente no creo en el futuro de proyectos como Spark.Net, que se discutieron en esta sesión. La experiencia nos recuerda que intentos similares de escribir Wrappers en C # o portar completamente un proyecto de datos a C # en los últimos 10 años generalmente terminaron sin nada, porque la comunidad es más pequeña y el lenguaje no es tan difícil de cambiar.
Después de Build2019, hubo un
anuncio de que .Net Framework 4.8 es la última versión importante de .Net Framework y solo habrá cambios menores. Con todo, es hora de .Net Core.
Service Fabric vs Kubernetes
3 años en Microsoft y casi medio año en EPAM. No puedo dar una explicación técnica normal de por qué necesita Service Fabric (y usted, al mismo tiempo, no trabaja en Microsoft), si hay Kubernetes.
- Durante mucho tiempo, los "intérpretes" dijeron que estas son plataformas iguales, pero esto no es así (google elementary).
- Luego se habló de que SF es más maduro para el desarrollo de Windows y Kubernetes para Linux.
- Bueno, al mismo tiempo, dicen, en SF tus desarrolladores podrán usar sus habilidades en el entorno de Windows, y en K8s necesitas aprender Linux y volver a aprender. Estoy de acuerdo, el código heredado y la necesidad de volver a aprender a volver a aprender es un argumento serio, pero por otro lado, SF era bastante complicado y, en mi opinión, no es más fácil que los K8. Bueno, por un lado, Linux necesita ser estudiado y conocido de todos modos. Incluso para el "parque eólico" osificado (que yo también soy). Por otro lado, Kubernetes extrae mucho de esto.
En Build2019, me puse fin a SF, porque hubo
1 informe al respecto
(aunque el título era sobre Misión Crítica ***) .
Y según Kubernetes piezas 20-30 en todas las secciones. Daré solo la parte que recomendé ver en mi proyecto.
DevopsEn mi opinión, Microsoft se rindió y aceptó la realidad: la comunidad .net, de hecho, no aceptó el Service Fabric.
Pero Kubernetes se ha convertido de hecho en el estándar incluso para el mundo .net, con el que los felicito a usted y a mí.Servidor Menos para todos
Aún así, se dice mucho sobre la informática ServerLess. Pero, si antes solo Azure Functions y Logic Apps estaban envueltas en esta salsa, ahora incluso Azure SQL Database ServerLess se ha enganchado (cuando vi el anuncio, me sorprendió mucho porque algo estaba mal y ServerLess SQL suena interesante).
Por otro lado, Serverless se puede iniciar no solo en Azure, sino también localmente en el contenedor. Por lo tanto, Serverless se vuelve más comprensible y menos mágico (a los ingenieros generalmente no les gusta la magia, porque no entienden cómo funciona ... y si no funciona, entonces cómo solucionar la magia).
La esencia de
SQL Serverless es que puede especificar los
límites inferior y superior de los recursos consumidos y pagará en el límite inferior, más lo que consume entre los límites inferior y superior. Una característica menor que puede pausar SQL (y no pagar por los recursos de cómputo) si no se utiliza la base de datos (puede pausar durante 6 horas ahora), no lo consideraría, porque para que no haya una sola solicitud a la base de datos durante un par de horas en absoluto; esta es una situación muy extraña, porque al menos hay monitoreo, y la base comenzará (como se prometió) en 30-60 segundos, lo que también es importante.

Suscripción Edge o Cloud Computing en más de Microsoft Data Center
- Érase una vez, en 2008-2010, Microsoft dijo algo como esto: "aquí tienes nuestro servicio en la nube mágico, reescribe tus aplicaciones para ellos (Web / Worker Role) y tendrás felicidad". La felicidad no funcionó, porque El legado lo arruinó todo.
Luego aparecieron las máquinas virtuales, pero ahora no importa.- Luego, cuando quedó claro que incluso ahora pocas personas pueden moverse por completo a la nube, aún debe crear soluciones híbridas. Al principio, esto significaba VPN para Azure. Luego vino Azure Stack (un complejo de hardware y software que es similar a Azure en API y podría contener la carga de producción si el regulador no permite la publicación en la Nube pública, y mantener el desarrollo / prueba con datos anónimos en la Nube pública)
- Luego, todo tipo de soluciones de IoT se puso de moda y popular (para Microsoft y otros grandes jugadores ... la telemetría se escribió durante mucho tiempo). Al principio, en el escenario de Connected Factory (Fábrica / línea de ensamblaje), sugirieron usar soluciones de Azure Cloud, pero la industria explicó que la latencia entre su fábrica podría ser mucho mayor que la permitida y detener la línea de ensamblaje debido a la "parpadeo" de Internet no es viable La decisión.
- Como resultado, apareció por primera vez Azure IoT Edge, que, aunque se descargó de Azure, pero trabajó y procesó datos en su hardware (necesitaba un host compatible con Docker, que al menos a veces se conectaba a Internet), pero al principio tenía un conjunto muy modesto de características. Una buena charla sobre este tema fue Azure IoT Edge y AI: Habilitación de Intelligent Edge
- Luego, cuando IoT Edge demostró ser útil (para los consumidores y para las finanzas de Microsoft), los servicios que anteriormente se consideraban Cloud Only comenzaron a aparecer como hongos. Por ejemplo, los servicios cognitivos llegaron a Edge. El control de calidad visual de los productos en una línea de ensamblaje o transportador es mucho más fácil de hacer desde un contenedor de acoplador local que ensamblar la latencia en el Centro de datos de Azure.
- Pero en Build2019, muchos de estos servicios se hicieron públicos o aparecieron como una vista previa (me gustan los servicios de voz para la síntesis de voz, sobre todo desde la vista previa. Faltaba mucho en dispositivos sin acceso constante a Internet).
- Al mismo tiempo, se mostró, anunciado por SQL Server, it Edge ( Simplifique la arquitectura Edge con Azure SQL Database Edge ).

No, SQL 2017 lleva mucho tiempo ejecutándose en Linux en Docker, pero requiere 3,5 GB de memoria. Esta versión también está optimizada para memoria (500 MB <y se ejecuta en procesadores ARM), para dispositivos Edge (generalmente hay poca memoria en ellos). Y al mismo tiempo, está el trabajo de Streaming y análisis de series temporales incorporados, que suena muy interesante. - Además, se lanzó el hardware basado en Azure Sphere para soluciones IoT seguras .
- Mostraron el equipo de cómputo de Azure Edge , lo que no deja dudas de que el tema se supervisa de cerca.
Verdadero cuadro, me gustó más la migración de datos a Azure porque Se ve más sólido.
Big Data, Machine Learning, Inteligencia Artificial
En estas áreas, escribiré desde la perspectiva de un desarrollador anterior (aunque no hay desarrolladores anteriores), y no un experto en datos.
Muy a menudo conocí la posición "interesante" de algunos clientes de que IaaS debería hacerse en Aws, PaaS en Azure y Data en GCP. Uno no puede estar en desacuerdo con que históricamente cada uno de los proveedores se especializó en algo, pero ahora, si lo mira en grandes cantidades, en muchos servicios se ha logrado la paridad (la diferencia en matices, por supuesto, permanece). La integración de soluciones entre diferentes proveedores de Cloud es, por supuesto, un trabajo interesante y una mina de oro, pero como regla, es extremadamente ineficiente para el cliente mismo (siempre debe pagar el tráfico saliente, pero también hay latencia y complejidad / complejidad de la solución).
Probablemente, la dirección más prometedora para Microsoft / Azure en el futuro cercano desde el punto de vista del nuevo dinero es trabajar con datos: "hola" Spark / Hadoop / Kafka, Data Lakes y muchos servicios más interesantes, pero al mismo tiempo con temas candentes (a alguien no le gusta en exageración para hacer ventas) como inteligencia artificial (nuevamente nos muestran a Cortana, nuevamente nos muestran autos inteligentes). El número de anuncios y, lo que es más importante, casos (a veces sintéticos, y a veces incluso muestran un cliente satisfecho) sobre el uso de los servicios de Big Data en Azure en la conferencia estaba simplemente fuera de escala. Según AI solo, hay 37 sesiones (hay 171 de ellas para todo Build2019, si restamos informes de pasillo de 15 minutos y sesiones de programación para estudiantes). Incluso hubo informes de DevOps para Big Data, la plataforma Windows AI y AI para PowerBI. La mayoría de estas tecnologías son de código abierto, están impulsadas por la comunidad y están presentes en los 3 grandes proveedores. Admito que hace un par de años, no recuerdo un enfoque tan activo para los servicios de datos.
Una de las sesiones que me gustaría mencionar es la sesión de Windows Presentation Platform (WPP). Para ser sincero, sin querer pensé que se trataba de Windows Presentation Foundation (WPF), pero me sorprendió gratamente que el tema fuera más amplio de lo esperado.
Una vez en 2009, cuando recién se lanzó WPF, el tema era popular: alojar controles WinForms en aplicaciones WPF, o viceversa, tratar de insertar controles WPF en WinForms. Todo fue por lo que a menudo era imposible tomar y voltear las grandes piezas de la aplicación en el nuevo marco. En las primeras versiones, tales características no se anunciaban, pero cuando se hizo evidente que había que retirar la compatibilidad con versiones anteriores, comenzaron a promocionar activamente.
Entonces, en 2019, discutimos cómo alojar
controles U
WP en WPF (islas XAML) y cómo
desacoplar los componentes UI y el sistema operativo en WinUI 3.0 (es decir, proporcionar controles / compilador / tiempo de ejecución como paquetes nuget y no esperar a la actualización de Windows .)
La idea es genial, pero fue necesario hacerlo en la primera versión de UWP, porque para ese momento el equipo de Entity Framework había eliminado EF del .net Framework hace varios años para dejar de depender de las actualizaciones de Windows. Y lo que se convirtió en .Net Core estaba en desarrollo.
Y lo más importante, estará disponible no solo para las últimas versiones de Windows 10, sino también bastante antiguo, pero aún relevante. Se reservó una gran sala para la sesión, pero había suficiente espacio libre en la sala (el desarrollo para Windows ha estado enterrado durante unos 10 años), pero este no es el punto. Había muy pocos jóvenes en la sala (lo comparo con una sesión en Asp.Net Core o, especialmente, Machine Learning). Estas son solo mis observaciones subjetivas; no me ocupo del desarrollo de funerales para Windows.
Ecosistema de Microsoft para desarrolladores
Como ingeniero de campo en Microsoft, apoyé oficialmente solo lo que Microsoft hizo. Desde este enfoque, el conocimiento de todo lo demás se atrofia. Ahora que dejé Microsoft y me convertí en Arquitecto de soluciones, se ha vuelto vital llenar este vacío. Y en Build hubo una exposición completa de soluciones para socios de desarrollo y desarrolladores, donde se podía ir a cualquier stand y hacer preguntas, solicitar una demostración. Ahorré semanas visitando estos puestos.
- Todavía puede usar SonarQube para administrar la deuda técnica (calidad del código, no arquitectura, por supuesto)
- Hay soluciones DevOps especializadas en Kubertenes que son mucho más fáciles de usar que Azure DevOps
- Existen soluciones interesantes como Aqua (aquasec) / Snyk para auditar el contenido de las imágenes de la ventana acoplable y los contenedores que ya se están ejecutando.
- Hay soluciones interesantes para monitorear y rastrear aplicaciones distribuidas que tienen ventajas sobre el banal ELK o Azure Monitor (Application Insights + Log Analytics) como Signalfx
- Ya estoy en silencio sobre R # y el entorno de desarrollo en .net de Jetbrains (recordé sobre R # pero no lo usé, porque escribí un poco y, por lo tanto, no escuché mucho sobre el entorno de desarrollo).
- Estaba lleno de todo tipo de soluciones basadas en AI / ML / Data, etc., pero no fui mucho a ellas, porque No tengo experiencia práctica en soluciones industriales de Big Data y no podré evaluar los beneficios.

Anuncios
Para ser honesto, personalmente los anuncios de este año (
aquí y
aquí ) no me hicieron daño, y no los recordaba particularmente. En las computadoras cuánticas, es bueno exagerar, pero es imperceptible que esta sea la tecnología de hoy. Y nada más fue realmente recordado.
Epílogo
En verdad, esperaba más representantes de industrias no industriales, como Microsoft ha estado declarando durante mucho tiempo que busca ayudar a la empresa con proyectos, y no itshnikami. Sí, por supuesto, hubo informes con
Airbus ,
BMW ... pero esperaba más.
Office365 no es mi tema, así que decidí ni siquiera considerar este problema.
Todo lo anterior es mi opinión personal, basada en mis observaciones y mi experiencia previa. No pretendo ser objetivo. Puedes discutir cualquier tesis.