Evento
Campionato do Mundo de Power BI DataViz
Feb 14, 4 PM - Mar 31, 4 PM
Con 4 posibilidades de entrar, poderías gañar un paquete de conferencias e facelo ao Live Grand Finale en Las Vegas
Máis informaciónEste explorador xa non é compatible.
Actualice a Microsoft Edge para dispoñer das funcionalidades máis recentes, as actualizacións de seguranza e a asistencia técnica.
Nota
Esta no es la versión más reciente de este artículo. Para la versión actual, consulte la versión de .NET 9 de este artículo.
Aviso
Esta versión de ASP.NET Core ya no se admite. Para obtener más información, consulte la directiva de compatibilidad de .NET y .NET Core. Para la versión actual, consulte la versión de .NET 9 de este artículo.
Importante
Esta información hace referencia a un producto en versión preliminar, el cual puede sufrir importantes modificaciones antes de que se publique la versión comercial. Microsoft no proporciona ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí.
Para la versión actual, consulte la versión de .NET 9 de este artículo.
gRPC es un marco de llamada a procedimiento remoto (RPC) de alto rendimiento e independiente del idioma.
Las principales ventajas de gRPC son:
Estas ventajas hacen que gRPC sea ideal para:
gRPC usa un enfoque de contrato primero para el desarrollo de API. Los servicios y mensajes se definen en los archivos .proto
:
syntax = "proto3";
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply);
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
Los tipos .NET para los servicios, los clientes y los mensajes se generan automáticamente incluyendo archivos .proto
en un proyecto:
.proto
al grupo de elementos <Protobuf>
.<ItemGroup>
<Protobuf Include="Protos\greet.proto" />
</ItemGroup>
Para más información sobre la compatibilidad con las herramientas de gRPC, vea Servicios gRPC con C#.
Los servicios gRPC se puede hospedar en ASP.NET Core. Los servicios tienen una integración completa con características de ASP.NET Core como el registro, la inserción de dependencias (DI), la autenticación y la autorización.
gRPC requiere el paquete Grpc.AspNetCore. Para obtener información sobre cómo configurar gRPC en una aplicación .NET, consulte Configuración de gRPC.
La plantilla de proyecto ASP.NET Core gRPC Service proporciona un servicio de inicio:
public class GreeterService : Greeter.GreeterBase
{
private readonly ILogger<GreeterService> _logger;
public GreeterService(ILogger<GreeterService> logger)
{
_logger = logger;
}
public override Task<HelloReply> SayHello(HelloRequest request,
ServerCallContext context)
{
_logger.LogInformation("Saying hello to {Name}", request.Name);
return Task.FromResult(new HelloReply
{
Message = "Hello " + request.Name
});
}
}
GreeterService
se hereda del tipo GreeterBase
, que se genera a partir del servicio Greeter
en el archivo .proto
. El servicio se hace accesible a los clientes en Program.cs
:
app.MapGrpcService<GreeterService>();
Para más información sobre los servicios gRPC en ASP.NET Core, consulte Servicios gRPC con ASP.NET Core.
Los clientes gRPC son tipos de cliente concretos que se generan a partir de archivos .proto
. El cliente gRPC concreto tiene métodos que se convierten en el servicio gRPC en el archivo .proto
.
var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var response = await client.SayHelloAsync(
new HelloRequest { Name = "World" });
Console.WriteLine(response.Message);
Un cliente gRPC se crea mediante un canal, que representa una conexión de larga duración con un servicio gRPC. Un canal se puede crear mediante GrpcChannel.ForAddress
.
Para más información sobre cómo crear clientes y llamar a métodos de servicio diferentes, vea Llamada a servicios gRPC con el cliente .NET.
gRPC es un marco de llamada a procedimiento remoto (RPC) de alto rendimiento e independiente del idioma.
Las principales ventajas de gRPC son:
Estas ventajas hacen que gRPC sea ideal para:
gRPC usa un enfoque de contrato primero para el desarrollo de API. Los servicios y mensajes se definen en los archivos .proto
:
syntax = "proto3";
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply);
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
Los tipos .NET para los servicios, los clientes y los mensajes se generan automáticamente incluyendo archivos .proto
en un proyecto:
.proto
al grupo de elementos <Protobuf>
.<ItemGroup>
<Protobuf Include="Protos\greet.proto" />
</ItemGroup>
Para más información sobre la compatibilidad con las herramientas de gRPC, vea Servicios gRPC con C#.
Los servicios gRPC se puede hospedar en ASP.NET Core. Los servicios tienen una integración completa con características de ASP.NET Core como el registro, la inserción de dependencias (DI), la autenticación y la autorización.
gRPC requiere el paquete Grpc.AspNetCore. Para obtener información sobre cómo configurar gRPC en una aplicación .NET, consulte Configuración de gRPC.
La plantilla de proyecto de servicios gRPC proporciona un servicio de inicio:
public class GreeterService : Greeter.GreeterBase
{
private readonly ILogger<GreeterService> _logger;
public GreeterService(ILogger<GreeterService> logger)
{
_logger = logger;
}
public override Task<HelloReply> SayHello(HelloRequest request,
ServerCallContext context)
{
_logger.LogInformation("Saying hello to {Name}", request.Name);
return Task.FromResult(new HelloReply
{
Message = "Hello " + request.Name
});
}
}
GreeterService
se hereda del tipo GreeterBase
, que se genera a partir del servicio Greeter
en el archivo .proto
. El servicio se hace accesible a los clientes en Startup.cs
:
app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcService<GreeterService>();
});
Para más información sobre los servicios gRPC en ASP.NET Core, consulte Servicios gRPC con ASP.NET Core.
Los clientes gRPC son tipos de cliente concretos que se generan a partir de archivos .proto
. El cliente gRPC concreto tiene métodos que se convierten en el servicio gRPC en el archivo .proto
.
var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var response = await client.SayHelloAsync(
new HelloRequest { Name = "World" });
Console.WriteLine(response.Message);
Un cliente gRPC se crea mediante un canal, que representa una conexión de larga duración con un servicio gRPC. Un canal se puede crear mediante GrpcChannel.ForAddress
.
Para más información sobre cómo crear clientes y llamar a métodos de servicio diferentes, vea Llamada a servicios gRPC con el cliente .NET.
Comentarios de ASP.NET Core
ASP.NET Core é un proxecto de código aberto. Selecciona unha ligazón para ofrecer comentarios:
Evento
Campionato do Mundo de Power BI DataViz
Feb 14, 4 PM - Mar 31, 4 PM
Con 4 posibilidades de entrar, poderías gañar un paquete de conferencias e facelo ao Live Grand Finale en Las Vegas
Máis informaciónFormación
Camiño de aprendizaxe
Creación de aplicaciones y servicios nativos en la nube con .NET y ASP.NET Core - Training
Cree aplicaciones y servicios que se puedan implementar de forma independiente, muy escalables y resistentes mediante la plataforma .NET, gratuita y de código abierto. Con .NET puede usar una tecnología popular de microservicios como Docker, Kubernetes, Dapr, Azure Container Registry, etc., para aplicaciones y servicios principales de .NET y ASP.NET Core.
Documentación
Creación de un servidor y un cliente gRPC en ASP.NET Core
En este tutorial se le mostrará cómo crear un servicio gRPC y un cliente gRPC en ASP.NET Core. Aprenda a crear un proyecto de servicio gRPC, edite un archivo proto y agregue una llamada de streaming dúplex.
Servicios gRPC con ASP.NET Core
Conozca los conceptos básicos a la hora de escribir servicios gRPC con ASP.NET Core.
Conozca los conceptos básicos a la hora de escribir servicios gRPC con C#.