-
[WPF] gRPCC#/WPF 2023. 7. 12. 17:03
****** 참고 ******
gRPC
A high-performance, open source universal RPC framework
grpc.io
gRPC Server 프로젝트 생성
gRPC Client 프로젝트 생성
Client Nuget추가
Google.Protobuf
Grpc.Net.Client
Grpc.Tools
프로젝트에 등록.
Server로 동작할 지 Client로 동작할지 지정. (둘다 는 Both)
#File not found 에러시 ProtoRoot="" 지정 해보기.
Server, Client가 동일하게 공유하는 gRPC 인터페이스 (Protobuf = Protocol Buffer)
option csharp_namespace = "ArithmeticService"; ArithmeticService 네임스페이스 Client별 Server별 다르게 설정 추천. 한 프로젝트내에 같은 네임스페이스로 Proto 선언 되어있으면 UnitTest나 다른데서 참조할 때 중복된 네임스페이스로 뭘 써야할 지 판단 못해서 syntax 에러 남. option csharp_namespace = "ArithmeticServiceClient"; option csharp_namespace = "ArithmeticServiceServer"; 요딴 식으루 달리하는 것 추천.
package Arithmetic; 다른 Proto에서 참조할 때 유용. ex) Other.proto syntax = "proto3"; import "arithmetic.proto"; option csharp_namespace = "NameSpaceTagClient"; message Device { Arithmetic.messageName arithname = 1; }
ArithmeticService 라는 클래스 안에 Add, Substract 메소드 (라고 생각하면 편함)
저장 or build 하면 아래처럼 생김
build 후 override해서 구현부 작성
app.MapGrpcService<ArithmeticServer>();
서비스에 클래스 등록해줘야함.
WPFPrismClient
ViewModel 부분
보낼 메시지 인스턴스 = new RequsetMessage
channel : 서버 App URL 주소
var reply = client.호출메소드(보낼 메시지 인스턴스 )
ViewModel 프로젝트 App url 위치
*** MS Docs***
https://learn.microsoft.com/en-us/aspnet/core/grpc/?view=aspnetcore-7.0
Overview for gRPC on .NET
Learn about gRPC services with Kestrel server and the ASP.NET Core stack.
learn.microsoft.com
https://protobuf.dev/getting-started/csharptutorial/
Protocol Buffer Basics: C#
A basic C# programmers introduction to working with protocol buffers.
protobuf.dev
reserved
필드 제거시 reserved사요 oldVersion .proto에서 발생할 수 있는 critical Error를 방지하기 위함.
https://ocwokocw.tistory.com/237
Protocol buffer - Proto3
- 출처: https://developers.google.com/protocol-buffers/docs/proto3 - Message Type 정의 아래는 .proto 파일에 메시지를 정의한 예제이다. syntax = "proto3"; message SearchRequest { string query = 1; int32 page_number = 2; int32 result_per_
ocwokocw.tistory.com
https://jongmin86.tistory.com/229
Protobuf reserved
목적 protobuf 에서 reserved, 필드 삭제를 했을 때의 변화를 관찰하고, 왜 필드 삭제가 아닌 reserved를 해야 하는지를 알아본다. protobuf 문서 상황별 비교 기본 reserved delete proto message TestRequest { int32 m1 =
jongmin86.tistory.com
https://learn.microsoft.com/en-us/dotnet/architecture/grpc-for-wcf-developers/protobuf-reserved
Protobuf reserved fields - gRPC for WCF developers
Learn about reserved fields for cross-version compatibility.
learn.microsoft.com
***관련 동영상 추천***
https://www.youtube.com/watch?v=vEHCyGXx7aQ
https://www.youtube.com/watch?v=U8kTRj1wfPc
외부 .proto 파일 import할때 프로젝트 파일에 각 .proto 전부 붙여주고
외부 .proto
Path 값으로 import해주고
package 이름으로 접근
package 이름으로 접근
ex) package tag.element 의
message TagInfo
{
}
https://stackoverflow.com/questions/43167762/how-to-return-an-array-in-protobuf-service-rpc
Host in windowse Service
https://github.com/dotnet/aspnetcore/issues/43527
How to host an ASP Core .NET 6 application in a windows service? · Issue #43527 · dotnet/aspnetcore
I have an ASP Core Net 6 that host a gRPC service. I would like to create a windows service with this ASP Core application. I am Having this manual. https://docs.microsoft.com/en-us/dotnet/architec...
github.com
Grpc.AspNetCore.HealthChecks - Server
Grpc.HealthCheck - Client
https://learn.microsoft.com/ko-kr/aspnet/core/grpc/health-checks?view=aspnetcore-8.0
ASP.NET Core의 gRPC 상태 검사
ASP.NET Core에서 gRPC 상태 검사를 사용하는 방법을 알아봅니다.
learn.microsoft.com
https://yogingang.tistory.com/402
gRPC HealthCheck
gRPC 상태를 검사하기 위한 방법이 있다. gRPC 상태 검사 프로토콜이 있고 이것은 server 앱의 상태를 보고하기 위한 표준이다. Grpc.AspNetCore.HealthChecks 패키지에서 gRPC 상태 검사를 기본적으로 지원한
yogingang.tistory.com
728x90'C# > WPF' 카테고리의 다른 글
[WPF] Module Include Assembly .dll Copy to Working Directory (0) 2023.08.30 [WPF] Project Nuget Packaging (0) 2023.08.23 [WPF] Text 마우스 선택시 파란영역 (0) 2023.07.07 [WPF] Border Brush Theme changed (0) 2023.07.07 [WPF] ListBox Content Resize (0) 2023.07.06 댓글