788d
لینک کوتاه https://codecell.ir/course/788d
700٬000تومان
مدرس: سهراب قیصری
تعداد ویدیوها: 16
مدت زمان دوره: 07:10:38
وضعیت دوره: به اتمام رسیده
آخرین بروزرسانی: 1401/11/28
به اشتراک گذاری
نظرات
0
دیگر آموزش های مدرس:
آموزش gRPC در Asp Core

gRPC چیست؟

از آنجایی که جهان روز به روز بیشتر و بیشتر به هم متصل می شود، نیاز به بارگذاری داده های بسیار بیشتری توسط سرورهای ما دارد و در این زمینه، گوگل یک چارچوب معماری سریع تر و کارآمدتر برای ارتباطات به نام gRPC ارائه کرد.

gRPC یک چارچوب قدرتمند برای کار با Remote Procedure Call(RPC) یا تماس از راه دور است. RPC به شما امکان می‌دهد تا کد خود را طوری بنویسید که گویی روی یک کامپیوتر محلی یا حتی روی کامپیوتر دیگری اجرا می شود.

RPC شکلی از ارتباط کلاینت-سرو است که از فراخوانی تابع به جای ارتباط معمولی HTTP استفاده می کند. در واقع gRPC چارچوبی برای پیاده سازی API های RPC از طریق HTTP/2 است.

بنابراین gRPC از نظر فنی مفهوم جدیدی نیست. بلکه از RPC اقتباس شده و بهبود یافته است و در عرض 5 سال بسیار محبوب شده است.

مروری بر gRPC

در سال 2015، گوگل پروژه gRPC خود را منبع باز کرد. اما حرف "g" در gRPC در واقع به معنای چیست؟

بسیاری از مردم ممکن است "g" در gRPC را برای گوگل فرض کنند زیرا گوگل آن را ساخته است، اما اینطور نیست. گوگل معنای "g" را برای هر نسخه تغییر می دهد تا جایی که حتی یک README برای فهرست کردن همه معانی آن ایجاد کرده است.

از زمانی که gRPC معرفی شده است، محبوبیت زیادی به دست آورده است و بسیاری از شرکت ها از آن استفاده می کنند.

مزایای استفاده از gRPC

gRPC با استفاده از فناوری‌ هایی مانند Protocol Buffers و HTTP/2، روش طراحی قدیمی RPC را با قابلیت تعامل، مدرن و کارآمد می‌کند. مزایای زیر gRPC را به یک کاندید قوی برای جایگزینی REST در برخی عملیات تبدیل کرده است.

پیام های بسیار سبک(Message) در gRPC:

بسته به نوع ارتباط، اندازه پیام‌ های مخصوص gRPC می‌تواند تا 30 درصد کوچک‌ تر از پیام‌ های JSON باشد.

ارتباط های بسیار سریع در gRPC:

HTTP/2 نسبت به پروتکل‌های قدیمی‌ تر مانند HTTP/1.1 کارآمدتر است و به gRPC اجازه می‌دهد استفاده از پهنای باند شبکه و تأخیر را کاهش دهد. همچنین، از آنجایی که پیام ها کوچکتر هستند، می توان آنها را با سرعت بیشتری بین سرورها و کلاینت ها منتقل کرد. gRPC  همچنین به کاهش بار روی شبکه کمک می کند و تجربه کاربری روان تری را ارائه می دهد. با ارزیابی های مختلف، در gRPC نسبت به ارتباطات REST+JSON حدود 5، 7 و حتی 8 برابر سریعتر است. 

اجرای gRPC در مقایسه با REST وقت گیر است اما در دریافت 7 برابر سریع تر  و در ارسال داده 10 برابر سریع تر از REST است.

قابلیت تولید کد داخلی در gRPC:

gRPC دارای قابلیت تولید کد خودکار در زبان های برنامه نویسی مختلف از جمله جاوا، C++، Python، Go,C#، Dart، Objective-C، Ruby و غیره است.

گزینه های اتصال بیشتر در gRPC:

در حالی که REST بر معماری request-response متمرکز است، gRPC از data streaming های زیر پشتیبانی می کند:

  • server-side streaming
  • client-side streaming
  • bidirectional streaming

چرا gRPC محبوب است؟

دلایل زیادی برای محبوبیت gRPC وجود دارد:

  • gRPC دارای انتزاع آسان است (یک فراخوانی تابع است)
  • gRPC در بسیاری از زبان ها پشتیبانی می شود
  • gRPC بسیار کاربردی است
  • فراخوانی های HTTP اغلب گیج کننده هستند، بنابراین gRPC کار را آسان تر می کند
  • gRPC محبوب است زیرا میکروسرویس ها بسیار محبوب هستند.

میکروسرویس ها و  gRPC

از gRPC برای ایجاد ارتباط بین میکروسرویس ها استفاده می شود. 

gRPC به اتفاق آرا به عنوان بهترین گزینه برای ارتباط بین میکروسرویس های داخلی به دو دلیل پذیرفته شده است: عملکرد بی بدیل و ماهیت چند زبانه آن.

چرا یادگیری gRPC برای برنامه نویسان  و توسعه دهندگان بسیار اهمیت دارد؟

یادگیری gRPC برای برنامه نویسان به چند دلیل بسیارمهم است:

gRPC عملکرد بسیار بالایی دارد

gRPC از فرمت داده Protocol Buffers استفاده می کند که یک فرمت باینری است که فشرده تر و کارآمدتر از JSON یا XML است. این بدان معنی است که gRPC می تواند تعداد زیادی درخواست را با سربار کمتر انجام دهد و همچنین می تواند سریع تر از سایر چارچوب ها باشد.

پشتیبانی از انواع زبان ها

 gRPC از طیف گسترده ای از زبان های برنامه نویسی، از جمله C++,C#، Java، Python، Go، Ruby و بسیاری دیگر پشتیبانی می کند. این امر ایجاد سیستم های چند زبانه ای را که می توانند به طور یکپارچه با هم کار کنند آسان می کند و به توسعه دهندگان کمک می کند تا از زبان دلخواه خود استفاده کنند.

استفاده از gRPC به طور گسترده در صنعت

gRPC به طور گسترده در صنعت به ویژه در زمینه میکروسرویس ها و برنامه های کاربردی ابری استفاده می شود. gRPC دارای یک جامعه متن باز بسیار فعال است، به این معنی که منابع، آموزش ها و پشتیبانی زیادی دارد.

تقویت مهارت های برنامه نویسی خود در آینده

 از آنجایی که gRPC محبوبیت بیشتری پیدا می کند و در حال تبدیل شدن به استانداردی برای ساختن سیستم های توزیع شده با کارایی بالا است، یادگیری gRPC باعث می شود مهارت های شما در بازار کار ارزشمند تر شود.

به طور کلی، یادگیری gRPC برای توسعه دهندگانی که می خواهند سیستم هایی با کارایی بالا و با چندین زبان برنامه نویسی بسازند، به ویژه در زمینه میکروسرویس ها و برنامه های کاربردی ابری مهم است. همچنین gRPC برای کسانی که به دنبال کار در صنعت یا به روز ماندن با آخرین فن آوری ها هستند، یک مهارت ارزشمند است.

سر فصل های آموزش gRPC در Asp Core

در این دوره آموزشی نحوه استفاده از gRPC در را در قالب یک پروژه Asp Core 7 به صورت کامل و جامع به شما آموزش خواهیم داد.

سرفصل های دوره آموزش gRPC در Asp.net Core به شرح زیر خواهد بود:

  • بررسی فایل Proto Buffer
  • بررسی انواع Data Type ها در Message های gRPC
  • بررسی سرویس های gRPC در Proto Buffer ها و نحوه کامپایل کردن آن ها
  • ایجاد  gRPC Server و gRPC Client  و تنظیمات مربوط به آن ها
  • ایجاد Unary Call در gRPC در Asp.net Core
  • ورژن بندی gRPC در Asp.net Core
  • ایجاد Server Streaming Call در gRPC در Asp.net Core
  • ایجاد Client Streaming Call در gRPC در Asp.net Core
  • ایجاد Bidirectional Streaming Call در gRPC در Asp.net Core
  • آپلود و دانلود فایل از طریق gRPC در Asp.net Core
  • استفاده از متد های gRPC با استفاده از gRPC Server Reflection در ابزار Postman در Asp.net Core
  • تبدیل gRPC به Rest با استفاده از Json Transcoding در Asp.net Core
  • راه اندازی Swagger برای gRPC در Asp.net Core
  • مدیریت خطا های gRPC در Asp.net Core
  • Authentication و احراز هویت در gRPC با استفاده از Jwt در Asp.net Core
  • استفاده از gRPC interceptor ها در Asp.net Core
  • اعتبارسنجی message های gRPC در Asp.net Core

نتیجه گیری:

gRPC یک فناوری مهم برای ساخت برنامه‌های کاربردی با کارایی بالا، مقیاس‌پذیر و چند پلتفرمی است. gRPC در ASP.NET Core، یک پروتکل ارتباطی جدید ارائه می کند که می تواند برای ساخت سرویس های کارآمد و مقیاس پذیر استفاده شود. gRPC با پشتیبانی از چندین زبان، API با کاربری آسان، امنیت داخلی و پشتیبانی از Stream، یک انتخاب برتر برای توسعه دهندگانی است که به دنبال ساخت برنامه های مدرنی هستند که بتوانند حجم زیادی از ترافیک را مدیریت کنند. همانطور که توسعه دهندگان بیشتر و بیشتر از gRPC استفاده می کنند، احتمالاً در سال های آینده به یک پروتکل ارتباطی استاندارد برای ساخت سیستم های توزیع شده تبدیل می شود.

فهرست ویدیوها
مدت زمان دوره: 07:10:38
01

بررسی فایل proto، مفاهیم message ها، Data Type ها و service ها در gRPC

00:28:54
02

نحوه کامپایل کردن فایل های proto،ایجاد gRPC server، gRPC client و gRPC unary Call در Asp.net Core

00:29:51
03

نحوه ورژن بندی سرویس های gRPC در Asp.net Coe

00:15:27
04

نحوه gRPC server streaming call در Asp.net Core

00:52:35
05

نحوه gRPC client streaming call در Asp.net Core

00:26:49
06

نحوه gRPC Bi-directional streaming در Asp.net Core

00:27:06
07

نحوه آپلود فایل از طریق gRPC در Asp.net Core

00:31:36
08

نحوه دانلود فایل از طریق gRPC در Asp.net Core

00:21:31
09

اجرای سرویس های gRPC با استفاده از gRPC Server Reflection در Postman

00:11:22
10

تبدیل سرویس های gRPC به REST با استفاده از gRPC JSON transcoding در Asp.net Core

00:51:35
11

بررسی additional binding ها و مستندسازی سرویس های gRPC با Swagger با استفاده از gRPC Json Transcoding در Asp.Net Core

00:28:54
12

آموزش مدیریت خطا یا gRPC Error Handling در Asp.net Core

00:21:45
13

آموزش استفاده gRPC interceptor ها در Asp.net Core

00:22:32
14

آموزش پیاده سازی Global Error Handling با استفاده از gRPC interceptor در Asp.net Core

00:23:49
15

آموزش Authentication و Authorization در gRPC برای Asp.net Core

00:27:22
16

آموزش نحوه اعتبارسنجی message های gRPC در Asp.net Core

00:09:30

پرسش های متداول

gRPC یک چارچوب RPC (تماس از راه دور) منبع باز و قدرتمند است که برای ساخت API های مقیاس پذیر و سریع استفاده می شود.

gRPC در اکثر موارد بسیار سریعتر از REST API است.

gRPC برای HTTP/2 که یک ویرایش اساسی از HTTP است و مزایای عملکردی قابل توجهی را نسبت به HTTP 1 ارائه می‌کند، طراحی شده است. پروتکل HTTP/2 هم در ارسال و هم در دریافت فشرده تر و کارآمد تر است.

gRPC از HTTP/2 استفاده می‌کند که چندین call را در یک اتصال TCP مالتی پلکس می‌کند.

gRPC در ابتدا توسط گوگل ایجاد شد، که از یک زیرساخت RPC همه منظوره به نام Stubby برای اتصال تعداد زیادی از ریز سرویس‌های در حال اجرا در مراکز داده خود و در سراسر آن برای بیش از یک دهه استفاده کرده است.

اگر برنامه نیاز به پردازش درخواست های مختلف در یک زمان داشته باشد، gRPC بر WebSocket ها ترجیح داده می شود. gRPC از مالتی پلکسی پشتیبانی می کند که درخواست های مختلف را به صورت یکپارچه مرتب می کند. اما، مالتی پلکس توسط WebSocket ارائه نمی شود. از این رو، یک اتصال فقط برای یک درخواست مفید است.

چارچوب RPC مبتنی بر gRPC یک انتخاب عالی برای ارتباطات بین میکروسرویس ها هستند. نه تنها خدمات gRPC در مقایسه با سرویس های RESTful سریع تر هستند، بلکه strongly type هستند و از Protocol Buffer، که یک فرمت باینری برای تبادل داده ها است برای تعریف API های gRPC استفاده می کند.

gRPC عملکرد و امنیت API را تا 10 برابر سریعتر از ارتباطات REST+JSON ارائه می دهد زیرا از Protobuf و HTTP/2 استفاده می کند , در نتیجه پیام های کوچک و فشرده ای را به همراه دارد. gRPC همچنین امکان client streaming، server streaming و bi-directional streaming را فراهم می کند که به شما امکان می دهد چندین درخواست را به صورت موازی ارسال یا چندین پاسخ را به صورت موازی دریافت کنید.

مقالات آموزش برنامه نویسی مدرس

Response Caching در ASP.NET Core

Response Caching یک مکانیزم ذخیره سازی پاسخ سرور توسط مرورگر یا سایر کلاینت ها است. با استفاده از Response Caching در Asp.net Core می توانیم عملکرد و کارایی سیستم را بالا ببریم.

670 0 1402/10/22

Output Caching در ASP.NET Core 8.0

Output Caching یک ویژگی جدید است که از زمان .NET 7 معرفی شده است. این ویژگی به ما این امکان را می دهد که به راحتی یک کش پاسخ برای Web API خود بدون پیاده سازی IMemoryCache راه اندازی کنیم.

723 0 1402/10/14

الگوی طراحی زنجیره مسئولیت در سی شارپ

الگوی زنجیره مسئولیت یا Chain of Responsibility Design Pattern یک الگوی طراحی رفتاری(behavioral design pattern) است که اجازه می‌دهد یک درخواست در امتداد زنجیره‌ای از کنترل‌کننده‌های بالقوه ارسال شود تا زمانی که درخواست مناسب برای پردازش آن را پیدا کند.

686 2 1402/10/01

ViewComponent در ASP.NET Core

در ASP.NET Core با استفاده از ViewComponent ها می توان اجزای ماژولار، قابل استفاده مجدد، قابل نگهداری و مقیاس پذیر برای ساخت برنامه های کاربردی وب ایجاد کرد. در این مقاله به نحوه ایجاد و فراخوانی ViewComponent در Asp.net core پرداخته ایم.

1٬431 2 1402/05/15

تطبیق الگو در NET 7: ساده سازی تجزیه و تحلیل داده ها

تطبیق الگو یا Pattern Matching در net7 یک تکنیک قدرتمند برای تجزیه و تحلیل و دستکاری داده ها بر اساس ساختار آن ها است. تطبیق الگو یا Pattern Matching به توسعه دهندگان اجازه می دهد تا مقادیر را با یک الگوی خاص مطابقت دهند و اقدامات مربوطه را انجام دهند.

881 1 1402/04/05

تزریق وابستگی در ASP.NET Core

تزریق وابستگی (DI) یک الگوی طراحی نرم افزاری است که امکان ایجاد برنامه های کاربردی و ماژولار را فراهم می کند.. در .NET Core تزریق وابستگی یا Dependency injection یک ویژگی مهم است که می تواند برای ساده سازی توسعه برنامه، بهبود تست پذیری و کاهش پیچیدگی کد مورد استفاده قرار گیرد.

1٬965 1 1402/02/04

ضروری ترین کتابخانه های NuGet برای ASP.NET Core

در این مقاله مهمترین،ضروری ترین و پرکاربردترین کتابخانه های NuGet که هر توسعه‌ دهنده‌ ASP.NET Core باید برای توسعه بهتر و کاهش زمان مورد نیاز برای برنامه ‌های خود از آن استفاده کنند را مورد بررسی قرار داده ایم.

1٬518 1 1401/12/29

الگوی طراحی Factory در سی شارپ

الگوهای طراحی یکی از مهمترین جنبه های طراحی و معماری نرم افزار است. Factory Method یک الگوی طراحی ایجادی است که یک رابط برای ایجاد اشیاء در یک سوپر کلاس فراهم می‌کند. ما در این مقاله الگوی Factory Method Design در سی شارپ را بررسی می کنیم.

1٬643 1 1401/10/28

مقایسه List و Array در سی شارپ

آرایه و لیست در سی شارپ هر دو به عنوان مجموعه ای از مقادیر عمل می کنند، اما در نحوه ذخیره محتوای خود در حافظه و نحوه دسترسی به آنها متفاوت هستند. در این مقاله Benchmark و کارایی List<T> با سایز داینامیک، List<T> با سایز ثابت و Array ها را بررسی می کنیم.

2٬222 2 1401/09/01

LinkedList در سی شارپ

LinkedList یا لیست پیوندی در سی شارپ یک ساختار داده خطی است که عنصر را در مکان غیر پیوسته ذخیره می کند. LinkedList شامل گره هایی است که هر گره حاوی یک فیلد داده و یک مرجع (پیوند) به گره بعدی در لیست است. در سی شارپ، LinkedList یا لیست پیوندی یک نوع مجموعه جنریک است.

2٬047 0 1401/08/13

Garbage Collection در دات نت

به طور کلی، Garbage Collection (GC) یا جمع آوری زباله در .Net چیزی نیست جز به دست آوردن مجدد حافظه اختصاص داده شده به اشیایی که در حال حاضر در هیچ بخشی از برنامه ما استفاده نمی شوند. ما در این مقاله Garbage Collection را در سی شارپ بررسی خواهیم کرد.

2٬839 5 1401/03/30

.NET Core چیست؟

.Net (با تلفظ «دات نت») یک چارچوب نرم افزاری کامپیوتری مدیریت شده رایگان و منبع باز برای سیستم عامل های ویندوز، لینوکس و macOS است. این پروژه در درجه اول توسط کارمندان مایکروسافت از طریق دات نت توسعه یافته و تحت مجوز MIT منتشر شده است.

2٬588 2 1401/03/16

پشته(Stack) در سی شارپ

پشته یا Stack در سی شارپ یک نوع خطی از ساختار داده است که قادر به ذخیره اشیاء است. پشته یک ساختار داده LIFO یا Last-In-First-Out است، به این معنی که آخرین موردی که در پشته قرار می گیرد اولین موردی است که از پشته خارج می شود.

2٬187 0 1401/03/09

صف (Queue) در سی شارپ

صف (Queue) در سی شارپ یک نوع خطی از ساختار داده است که قادر به ذخیره اشیاء است. Queue یک ساختار داده first-in-first-out یا FIFO است که به این معنی است که اولین مورد اضافه شده به صف اولین موردی است که حذف می شود.

2٬162 0 1401/02/30

تفاوت Hashtable و Dictionary در سی شارپ

در سی شارپ از Hashtable و Dictionary می توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. با این تفاوت که Hashtable و Dictionary عناصر را به عنوان جفت Key/Value ذخیره می کنند.در این مقاله به تفاوت های Hashtable و Dictionary پرداخته شده است.

1٬843 1 1401/02/23

Dictionary در سی شارپ

در سی شارپ از دیکشنری ها (Dictionary) می‌توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. تفاوت اصلی این است که یک Dictionary می تواند عناصر را به عنوان جفت Key/Value ذخیره کند.Key ها باید منحصر به فرد و نمی توانند null باشند. Value ها می توانند تکراری یا null باشند.

2٬249 3 1401/02/17

Hashtable در سی شارپ

از Hashtable می‌توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. تفاوت اصلی این است که یک Hashtable می تواند عناصر را به عنوان جفت Key/Value به عنوان جایگزینی برای استفاده از Index ذخیره کند.

1٬721 5 1401/02/14

Redirect درخواست (ریدایرکت) در asp.net core

در برنامه های ASP.NET Core برای تغییر مسیر(ریدایرکت) و Redirect به یک URL خاص روش های مختلفی وجود دارد. در این مقاله با این تکنیک ها و کدهای مورد نیاز برای تغییر مسیر یک درخواست در ASP.NET Core آشنا می شویم.

2٬562 5 1401/02/12

تبدیل enum به لیست انتخابی در asp.net core

در این آموزش ما بوسیله Reflection ها در سی شارپ و asp.net core یک enum را به لیست انتخابی یا SelectListItem تبدیل خواهیم کرد و بوسیله تگ select در بوت استرپ 5 نمایش می دهیم.

1٬753 3 1401/02/03

نحوه ارسال ایمیل در asp و c#

امروزه ارسال ایمیل به امری ضروری در پروژه های وب تبدیل شده است.از ارسال ایمیل در asp می توان در بخش های تایید حساب کاربری،بازیابی رمز عبور،ایمیل مارکتینگ،ارسال خبرنامه و ... استفاده نمود.در این آموزش نحوه ارسال ایمیل در asp core و سی شارپ پیاده سازی گردیده است.

2٬582 5 1401/02/03
نظرات

برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید