
آموزش کار با ASP.NET Core و SignalR
آموزش کار با ASP.NET Core و SignalR یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی شروع به کار با ASP.NET Core و SignalR است که با نام اصلی Getting Started with ASP.NET Core SignalR از شرکت Pluralsight منتشر شده است.
ASP.NET Core چیست؟
ASP.NET Core 1.0، که پیشتر با نام ASP.NET 5 معرفی شده بود، بازنویسی کامل ASP.NET است که با ایدهی کاملا ماژولار بودن، تهیه شده است و از طریق آن، قابلیت به روز رسانی منظم و توزیع آسان از طریق NuGet، میسر خواهد شد. به علاوه در آن، بسیاری از الگوهای برنامه نویسی شیءگرا مانند Dependency Injection، به صورت built-in و از ابتدا پشتیبانی میشوند. ASP.NET Core 1.0 مدل برنامه نویسی ASP.NET MVC و Web API را به صورت یکپارچه ارائه میدهد و دیگر خبری از ارائهی مجزای این ها نخواهد بود و دقیقا بر مبنای مفاهیم برنامه نویسی این دو بنا شده است.

پیشتر فضای نام System.Web.MVC مخصوص ASP.NET MVC بود و فضای نام مجزای دیگری به نام System.Web.Http مخصوص ASP.NET Web API. اما اکنون تنها یک فضای نام مشترک و یکپارچه به نام Microsoft.AspNet.Mvc هر دوی اینها را پوشش میدهد.
SignalR چیست؟
یکی از نیازهای برنامه های تحت وب مدرن امروزی این است که بدون نیاز به Refresh کردن یک Page اطلاعات به روز و جدید را دریافت کنیم. به عبارت دیگر باید بتوانیم Real-time Functionality به برنامه های تحت وب اضافه کنیم.

به بیان ساده Real-time Functionality به معنی این است که کد سمت سرور یا اصطلاحاً Server-side Code بتواند محتوا و یا Content ای را به کلاینت هایی که متصل هستند به صورت Real-time ارسال یا اصطلاحاً Push کند. این موضوع به راحتی با SignalR قابل پیاده سازی است.
ارتباط Real-time در برنامههای وب چگونه کار میکند؟
در برنامههای وب سنتی، مرورگر معمولاً برای دریافت اطلاعات جدید به سرور درخواست میفرستد. اما در سناریوهای Real-time، هدف این است که تغییرات تا حد امکان سریع به کاربران نمایش داده شوند، بدون اینکه کاربر مجبور باشد صفحه را مرتب بهروزرسانی کند. چنین ارتباطی برای قابلیتهایی مانند نمایش تغییرات لحظهای دادهها، اعلانها و بهروزرسانی همزمان رابط کاربری کاربرد دارد. طراحی این نوع ارتباط به سازوکاری نیاز دارد که تبادل اطلاعات میان سرور و کلاینت را مدیریت کند.
درک مفهوم Real-time Web پیشنیاز مهمی برای شناخت ASP.NET Core SignalR است. توسعهدهنده باید بداند ارتباط میان کلاینت و سرور چگونه برقرار میشود و دادهها چگونه میتوانند هنگام وقوع یک رویداد منتقل شوند. این رویکرد در برنامههایی مفید است که سرعت انتشار اطلاعات اهمیت دارد. شناخت تفاوت میان درخواستهای معمول HTTP و ارتباطات Real-time به انتخاب روش مناسب برای پیادهسازی قابلیتهای تعاملی در Web Application کمک میکند.
کاربردهای ASP.NET Core SignalR در توسعه وب
ASP.NET Core SignalR کتابخانهای برای افزودن قابلیتهای ارتباط بلادرنگ به برنامههای ASP.NET Core است. این فناوری امکان ارسال پیام از سرور به کلاینتهای متصل را فراهم میکند و میتواند در برنامههایی استفاده شود که اطلاعات باید بدون انتظار برای درخواست بعدی کاربر بهروزرسانی شوند. SignalR جزئیات بخش مهمی از مدیریت ارتباط را ساده میکند و به توسعهدهنده اجازه میدهد تمرکز بیشتری بر منطق ارسال و دریافت پیامها داشته باشد.
از کاربردهای ارتباط Real-time میتوان به اعلانهای زنده، نمایش وضعیتهای در حال تغییر و بهروزرسانی همزمان اطلاعات در رابط کاربری اشاره کرد. انتخاب SignalR زمانی میتواند مفید باشد که تعامل سریع میان سرور و کاربران یکی از نیازهای برنامه باشد. در این دوره، بررسی SignalR در بستر ASP.NET Core به توسعهدهندگان کمک میکند جایگاه این فناوری را در معماری برنامههای وب بشناسند و با کاربردهای ارتباط بلادرنگ آشنا شوند.
آشنایی با Hub در SignalR و ارتباط کلاینت و سرور
در SignalR، Hub یکی از اجزای اصلی برای مدیریت ارتباط میان کلاینتها و سرور است. Hub به توسعهدهنده امکان میدهد متدهایی تعریف کند که کلاینتها بتوانند آنها را فراخوانی کنند و سرور نیز بتواند پیامهایی را به کلاینتهای متصل ارسال کند. این مدل ارتباطی، پیادهسازی قابلیتهایی را سادهتر میکند که در آنها کاربران باید اطلاعات را بهصورت زنده دریافت کنند یا عملیاتی را اجرا کنند که نتیجه آن برای کلاینتها ارسال میشود.
شناخت نقش Hub به درک بهتر ساختار برنامههای مبتنی بر SignalR کمک میکند. توسعهدهنده باید ارتباط میان کلاینت، سرور و متدهای تعریفشده را در نظر بگیرد تا پیامها در زمان مناسب به مقصد برسند. در چارچوب ASP.NET Core، این مفاهیم در کنار تنظیمات و راهاندازی SignalR اهمیت پیدا میکنند. آشنایی با آنها زمینه لازم برای توسعه قابلیتهای Real-time و سازماندهی منطق ارتباطی برنامه را فراهم میسازد.
این آموزش ASP.NET Core SignalR برای چه کسانی مناسب است؟
این دوره برای توسعهدهندگان وبی مناسب است که با ASP.NET Core آشنا هستند و میخواهند قابلیتهای Real-time را به برنامههای خود اضافه کنند. اگر نیاز دارید اطلاعات بدون بارگذاری مجدد صفحه به کاربران نمایش داده شود یا ارتباط سریعتری میان کلاینت و سرور برقرار کنید، شناخت SignalR میتواند نقطه شروع مناسبی باشد. آشنایی با مفاهیم پایه برنامههای وب و نحوه کار درخواستها و پاسخهای HTTP به درک بهتر موضوعات دوره کمک میکند.
در این آموزش، ابتدا مفهوم وب Real-time بررسی میشود و سپس ساختار و کار با ASP.NET Core SignalR مورد توجه قرار میگیرد. این مسیر به توسعهدهنده کمک میکند ابتدا مسئلهای را که ارتباط بلادرنگ حل میکند بشناسد و بعد با فناوری مورد استفاده برای پیادهسازی آن آشنا شود. برای برنامهنویسانی که قصد توسعه Web Applicationهای تعاملیتر را دارند، این مباحث دید روشنی درباره نقش SignalR و کاربرد آن در اکوسیستم ASP.NET Core فراهم میکنند.
سرفصل مطالب آموزش ویدئویی شروع به کار با ASP.NET Core و SignalR
فصل اول: مقدمه ی دوره ی آموزشی
- مقدمه
فصل دوم: درک کردن وب Real-time
- مقدمه
- وب اپلیکیشن های Real-time چه هستند؟
- بررسی AJAX
- بررسی Polling
- بررسی Long Polling
- بررسی Server Sent Event ها
- بررسی WebSocket ها
- بررسی رول Handshake در WebSocket ها
- بررسی Message ها در WebSocket ها
- یک WebSocket App
- جمع بندی
فصل سوم: بررسی ASP.NET Core SignalR
- مقدمه
- SignalR چیست؟
- بررسی Tranport ها
- بررسی RPC
- بررسی Hub ها
- تفاوت ASP.NET Core SignalR و ASP.NET SignalR چیست؟
- بررسی روال Scale Out کردن
- بررسی Azure SignalR Service
- جمع بندی
فصل چهارم: کار با ASP.NET Core SignalR
- مقدمه
- پیاده سازی یک Hub
- پیکربندی SingalR
- استفاده کردن از Hub ها در برنامه
- بررسی Context و Client ها و Group ها
- بررسی Authentication و Authorization
- پیاده سازی یک Client در Browser
- بررسی روال Transport Negotiation
- پیاده سازی یک Client در .NET
- اضافه کردن MessagePack Protocol
- Deploy کردن برنامه ی SignalR
- Sync کردن Client های مختلف
- استفاده کردن از Azure SignalR Service
- جمع بندی


