[07/02/2020] Microsoft ha desplegado soporte experimental para gRPC-Web en .NET Core y ASP.NET Core, permitiendo que gRPC-Web sea llamado directamente desde el cliente gRPC de .NET Core y las aplicaciones gRPC de ASP.NET Core.
Compatible con HTTP/1 y HTTP/2, gRPC-Web es una biblioteca de clientes JavaScript que soporta la misma API que el nodo gRPC para acceder a un servicio gRPC, con gRPC sirviendo como un marco de trabajo RPC de código abierto que permite a las aplicaciones cliente y servidor comunicarse de forma transparente.
Con gRPC-Web para .NET, Microsoft espera aportar las siguientes capacidades a las aplicaciones de los navegadores:
- Streaming de servidor
- Mensajes de Compact Protobuf
- Clientes fuertemente tipificados y generados por código
El paquete experimental permite que una aplicación ASP.NET Core soporte gRPC-Web sin un proxy y permite que el cliente gRPC .NET Core llame a los servicios web de gRPC, lo cual es útil para las aplicaciones Blazor WebAssembly. Además de llamar a las aplicaciones gRPC de ASP.NET Core desde el navegador, las oportunidades para gRPC-Web incluyen:
- Llamar a gRPC desde plataformas como Blazor WebAssembly y Xamarin.
- Alojar aplicaciones de gRPC de ASP.NET Core en Azure App Services e IIS.
Con gRPC-Web, hay un cliente estable de JavaScript gRPC-Web y un proxy para traducir entre gRPC y gRPC-Web para servicios. Microsoft señaló que hay un pequeño costo de rendimiento para gRPC-Web y que dos características de gRPC -el streaming de cliente y el streaming bidireccional- ya no están soportadas.
Para comenzar con gRPC en .NET, Microsoft ha publicado un tutorial sobre la creación de un cliente y servidor de gRPC en ASP.NET Core. Con gRPC-Web, no es necesario realizar cambios en los servicios, solo se modifica la configuración de inicio. El repositorio gRPC GitHub proporciona instrucciones para configurar un cliente gRPC-Web para SPA de JavaScript.
Paul Krill, InfoWorld (EE.UU.)