{"type":"rich","published":"2020-01-06 08:00:00","provider_url":"https://hatena.blog","width":"100%","image_url":"https://cdn-ak.f.st-hatena.com/images/fotolife/g/griefworker/20191217/20191217115009.gif","author_name":"griefworker","blog_url":"https://tnakamura.hatenablog.com/","provider_name":"Hatena Blog","categories":["C#",".NET","ASP.NET Core"],"description":"\u306f\u3058\u3081\u306b \u5148\u65e5\u3001WCF \u304b\u3089 gRPC \u306b\u79fb\u884c\u3059\u308b\u3068\u304d\u306e\u624b\u6bb5\u3068\u3057\u3066\u3001.proto \u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304f\u306e\u3067\u306f\u306a\u304f\u3001protobuf-net.Grpc \u3092\u4f7f\u3063\u3066 C# \u306e\u30b3\u30fc\u30c9\u304b\u3089 gRPC \u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u30b5\u30fc\u30d0\u30fc\u3092\u52d5\u7684\u306b\u751f\u6210\u3059\u308b\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u305f\u3002\u30b3\u30fc\u30c9\u30d5\u30a1\u30fc\u30b9\u30c8 ASP.NET Core gRPC \u3068\u547d\u540d\u3002 tnakamura.hatenablog.com \u8a66\u3057\u305f\u306e\u306f 1 \u30ea\u30af\u30a8\u30b9\u30c8\u3067 1 \u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u8fd4\u3059\u3001gRPC \u3067\u3044\u3046\u3068\u3053\u308d\u306e Unary \u65b9\u5f0f\u3002 WCF \u306b\u306f\u4f7f\u3044\u306b\u304f\u3044\u3051\u3069 Streaming \u304c\u3042\u308b\u3002 \u30de\u30b8\u4f7f\u3044\u306b\u304f\u3044\u3051\u3069\u3002 \u4e00\u65b9\u3067\u3001gRPC \u306b\u306f Client Streaming\u3001Serve\u2026","blog_title":"present","author_url":"https://blog.hatena.ne.jp/griefworker/","version":"1.0","title":"\u30b3\u30fc\u30c9\u30d5\u30a1\u30fc\u30b9\u30c8 ASP.NET Core gRPC \u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u7de8","url":"https://tnakamura.hatenablog.com/entry/2020/01/06/codefirst-aspnetcore-grpc-streaming","height":"190","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftnakamura.hatenablog.com%2Fentry%2F2020%2F01%2F06%2Fcodefirst-aspnetcore-grpc-streaming\" title=\"\u30b3\u30fc\u30c9\u30d5\u30a1\u30fc\u30b9\u30c8 ASP.NET Core gRPC \u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u7de8 - present\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>"}