آموزش استفاده از grpc در فریم ورک asp.net core 6 grpc چیست؟ نحوه پیاده سازی grpc در سی شارپ
سلام 🖐️
در این آموزش قصد داریم grpc رو بهتون معرفی کنیم و با استفاده از grpc در asp.net core 6 یک پروژه کوچیک بزنیم!
grpc چیست؟ معرفی grpc
gRPC یک سیستم اپن سورس RPC هست که توسط گوگل ایجاد شده در این روش ، برنامه ی کلاینت بطور مستقیم توابع موجود در سرور رو که میتونه روی یه کامپیوتر دیگه قرار گرفته باشه رو فراخونی میکنه که این مسئله کمک میکنه که بتونیم برنامه های توزیع یافته رو ایجاد و مدیریت کنیم.مشابه سیستم های rpc ، این سیستم هم مبتنی بر این ایده کار میکنه که ابتدا ساختار سرویس ها و توابع اونها که بصورت ریموت قابل فراخوانی هستند تعریف میشه
پیاده سازی grpc در asp.net core 6
خوب قصد داریم به شما آموزش بدیم چطور از grpc در فریم ورک asp.net core 6 استفاده کنید و پروژه های خفنی رو باهاش پیاده سازی کنید
کار هایی که قصد داریم انجام بدیم:
- ساخت برنامه سرور grpc
- ساخت برنامه کلاینت grpc
- ایجاد ارتباط میان این دو
توجه برای ادامه این آموزش باید ویژوال استادیو 2022 رو نصب کنید اگر قبلا اینکار رو انجام ندادید از آموزش
آموزش جامع نصب راه اندازی Visual Studio 2022
استفاده کنید
1- ساخت برنامه از نوع Asp.net core grpc service
ویژوال استادیو 2022 را اجرا کنید. بر روی گزینه New Project کلیک کنید. عبارت Asp.net core grpc service را جستجو کنید و یک پروژه از این نوع ایجاد کنید و نام آن را GrpcGreeter
بگذارید. توجه کنید پروژه از نوع دات نت 6 باشد
2- ساخت کلاینت برنامه grpc با استفاده از console app
یک پروژه Console App .Net 6 ایجاد کنید
سپس پکیج های زیر را توسط Nuget Package Manager نصب کنید
Grpc.Net.Client شامل کلاینت .Net core می باشد
Google.Protobuf فایل protobuf گوگل که حاوی پیام API (پروژه سمت سرور ما) می باشد
Grpc.Tools شامل پشتیبانی از ابزار C# در فایل protobuf است
می توانید این پکیج ها را توسط دستورات زیر نصب کنید
Install-Package Grpc.Net.Client
Install-Package Google.Protobuf
Install-Package Grpc.Tools
یک فولدر با نام Protos در پروژه کلاینت بسازید
فایل Protos\greet.proto را از سمت پروژه سرور خود کپی کرده و در این پوشه paste کنید
حالا فایل رو بزا کنید و namespace را اپدیت کنید
option csharp_namespace = "GrpcGreeterClient";
روی نام پروژه کلاینت دابل کلیک کنید و کد زیر را اضافه کنید
<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
فایل program.cs پروژه کلاینت را به شکل زیر تغییر دهید
using System.Threading.Tasks;
using Grpc.Net.Client;
using GrpcGreeterClient;
// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
در اینجا پورت لوکال هاست 7042
بوده شما برای بدست آوردن پورت لوکال هاست خود باید در پروژه سرور به مسیر Properties/launchSettings.json بروید و پورت لوکال هاست خود را پیدا کنید
اجرا پروژه و تست نهایی
به ترتیب پروژه سرور و بعد کلاینت را اجرا کنید باید با خروجی زیر مواجه شوید
Greeting: Hello GreeterClient
Press any key to exit...
پیشنهاد: جهت یادگیری برنامه نویسی وب با سی شارپ دوره
را مشاهده کنید
معرفی دوره های مرتبط با grpc در asp.net core
چگونه در Asp.net core grpc service حرفه ای شویم؟
دوره آموزش استفاده از grpc در asp.net core از دانلود لی
آنچه در این دوره یاد خواهید گرفت:
- آشنایی با gRPC و نحوه کارکرد آن
- مقایسه gRPC با REST API
- نوشتن تعریف سرویس gRPC در فایل های proto.
- تولید کدهای سرور و کلاینت در #C
- اجرای CRUD API بر روی MongoDB
لینک دوره: gRPC C# Master Class: Build Modern API & Microservices
پایان.