Microsoft comenzará un programa piloto para ofrecer soporte para gRPC-Web en .NET Core y ASP.Net Core. El programa permitirá a los clientes .Net Core de gRPC y de las apps de ASP.NET Core contactar directamente al gRPC-Web, lo cual es un avance significativo para desarrolladores. Veamos algunas de las ventajas y característica que podría traer para los equipos de informática.
Originalmente, Google desarrolló gRPC. Es un sistema remoto de contacto que fue aprobado formalmente por Microsoft para reemplazar a WCF en .NET Core. Incluso aunque el nuevo soporte de .NET es puramente experimental, la tecnología gRPC-Web no es nueva. Fue lanzada en 2018 como una librería de cliente de JavaScript para permitir el contacto directo entre aplicaciones web y servicios de gRPC sin necesitar un proxy de servidor HTTP.
De forma similar a gRPC, gRPC-Web usa contactos predeterminados entre el cliente web y los servicios gRPC. Eso significa que gRPC-Web es una librería de clientes que es compatible con HTTP/1 y HTTP/2. Soporta el mismo API que gRPC-Node para acceder a un servicio gRPC, donde el gRPC sirve como un marco de RPC de fuente abierta. Esto permite a la app del cliente y el servidor comunicarse de forma eficiente y transparente.
El hecho de que sea puramente experimental significa que Microsoft no se ha comprometido a desarrollar un producto completo. En cambio, la compañía está probando el mercado y las características de esta versión beta. Al respecto, James Newton-King, uno de los ingenieros de software que dirige el proyecto para ASP.NET dijo que “queremos probar que nuestro enfoque de implementación de gRPC-Web funciona y recibir retroalimentación respecto a si este enfoque es útil para desarrolladores .NET en comparación con la forma tradicional de montar un gRPC-Web con un proxy”.
Entonces, ¿cuáles son las ventajas del programa experimental de Microsoft de gRPC-Web para .NET? Básicamente, la compañía busca ofrecer streaming del servidor, mensajes protobuf compactos y clientes generados por código sólidos para apps de browser. Esto significa que el ASP.NET Core puede soportar un gRPC-Web sin necesitar un proxy y permite que el gRPC de .NET Core se comunique con los servicios web de gRPC, lo cual es una característica interesante para apps de Blazor WebAssembly.
Sin embargo, esto no es todo. Aparte de este elemento, el programa experimental también permitirá acceder a gRPC desde diferentes plataformas como Blazon Web Assembly y Xamarin y permitirá usar los servicios de app de Azur y IIS en apps de ASP.NET Core. gRPC ofrecerá un cliente estable para JavaScript y una traducción de proxy entre gRPC y gRPC-Web. Microsoft dijo que gRPC-Web sufrirá un mínimo empeoramiento de su desempeño que el streaming del cliente y el bidireccional no estarán en dicho programa piloto.
Microsoft publicó un tutorial para crear un cliente gRPC y un servidor en ASP.NET Core, para que los usuarios se acostumbren (chequéalo aquí).
Que Microsoft busque ofrecer soporte de gRPC-Web para .NET de forma estable y no simplemente experimental depende de la recepción de los usuarios y del feedback del equipo de ASP.NET. Si esto ocurre, podría ser un gran cambio positivo para los desarrolladores. Veamos qué sucede.