در جلسه پنجم دوره ASP.NET Core MVC به سراغ دو مبحث بسیار کاربردی و پیشرفته در ASP.NET MVC رفتیم. در ادامه باهم برخی از مطالب بیان شده در این جلسه را مشاهده میکنیم.
1. Cross cutting concerns و پیاده سازی درست این نیازها همیشه یکی از علامت سوالهای بزرگ موقع توسعه سیستمهای نرم افزاری است. ASP.NET Core MVC به عنوان یک فریم ورک کامل، برای پیاده سازی این موضوع امکانی به نام Filter در در نظر گرفته که مبحث اولیه جلسه ما بود.
2. بعد از اینکه با فیتلرها آشنا شدیم به سراغ یکی از فیلترهای اساسی MVC اومدیم و با هم دیدیم چطور میتوان با استفاده از Authorization فیلترها دسترسی به Actionها را در زمان نیاز محدود کنیم.
3. دسته بعدی از فیلترهایی که در این جلسه با هم بررسی کردیم به Action Filterها معروف هستن. این فیلترها قبل و بعد از اجرای هر اکشن اجرا میشن، بسیاری از کارهای روزمره مثل لاگ کردن اجرای اکشن و آمار بازدید را میتوان به کمک این فیلترها پیاده سازی کرد.
4. اجرای یک Action دوقسمت متفاوت داره، اول اجرای منطق و بعد تولید خروجی، Action Filterها مربوط به قسمت اول یعنی اجرای منطق درخواست میشن، اما اگر بخواهیم قبل و بعد از تولید خروجی نیز کاری انجام دهیم باید به سراغ Result Filterها برویم. به کمک این فیلترها میتوانیم نتیجه تولید شده را تغییر دهیم یا هر کاری که بعد یا قبل از تولید نتیجه لازم هست رو انجام بدیم.
5. در بعضی موارد نیاز داریم انواع مختلفی از فیلترها را با هم ترکیب کنیم، اصطلاحا به این دسته از فیلترها Hybrid اطلاق میشه و بحث بعدی ما در مورد هیبرید فیلترها بود و اینکه چه راهکار هایی برای ترکیب انواع فیلترها با هم داریم.
6. هر برنامه ای به هر نحوی که نوشته بشه عاری از خطا و اشتباه نیست و مدیریت خطاها همیشه یکی از دغدغه ها ی هر برنامه نویسی هست. پس در ادامه جلسه انواع روش های مدیریت خطا رو با هم بررسی کردیم و در نهایت به معرفی Exception Filter به عنوان یه راه حل استاندارد در ASP.NET Core MVC پرداختیم.
7. قسمت آخری که قبل از استراحت با هم بررسی کردیم، نحوه استفاده از این فیلترها به صورت عمومی، تزریق وابستگی به فیلترها و کنترل طول عمر این فیلترها به کمک DI Container بود. با توجه به اینکه فیلترها به صورت Attribute پیاده سازی میشوند، ثبت و تزریق وابستگی در آنها به سادگی امکان پذیر نیست و باید راه حلی جایگزین شود که در این جلسه ما دو راه حل سیستم را برای این کار معرفی و استفاده کردیم.
8. بعد از کمی استراحت قسمت دوم کلاس که یکی از مهم ترین جلسات بود و مباحث مدیریت وضعیت در برنامه های تحت وب را بررسی کردیم شروع شد. در ابتدا چند سوال در مورد چرایی وجود سیستم های مدیریت وضعیت را مطرح کردیم که با جواب صحیح به این سوال ها میتوانیم روش درستی برای کنترل وضعیت را انتخاب کنیم.
9. کوکی ها یکی از راه حل های استاندارد کنترل وضعیت در برنامه های تحت وب هستند، به عنوان اولین راه حل به بیان مزایا و معایب کوکی ها و نحوه استفاده از این کوکی ها در برنامههای ASP.NET Core MVC پرداختیم.
10. مدیریت وضعیت در سمت سرور میتواند بلند مدت یا کوتاه مدت باشد، در بعضی موارد اطلاعات خاصی را نیاز داریم تا طی یک درخواست باقی بماند و نه بیشتر، در این مارد استفاده از Item میتواند مفید باشد. پس Context Item و نحوه استفاده آن برای ارسال اطلاعات بین Middlewareها را با هم بررسی کردیم.
11. Session کاربر و نگهداری اطلاعات اختصاصی کاربر هم قسمت بعدی بود که مورد بررسی قرار دادیم. با هم دیدم که در نسخه Core این امکان به صورت پیش فرض فعال نیست و باید به صورت جداگانه فعال شود و مورد استفاده قرار گیرد. نحوه نصب و راه اندازی این امکان به کمک Packageها و تنظیم Serviceها و در نهایت ثبت Middleware مربوطه برای کنترل وضعیت را با هم اجرا کردیم.
12. Cache آخرین قسمتی بود که به عنوان راهکاری برای مدیریت وضعیت در جلسه با هم پیاده سازی کردیم. دیدیم که کش راه حلی عمومی بین کاربران است و میتوان اطلاعات را با تنظیمات مختلفی در اختیار کاربران قرار داد.
13. راه حل هایی که ارائه داریم، همگی وابسته به سرور و حافظه آن هستند. در سیستم های توزیع شده راه حل های بالا کارکرد مناسبی نخواهند داشت. در ادامه کمی در مورد چرایی وجود سیستم های توزیع شده صحبت کردیم و بعد از اینکه با مزایا و معایب و نیازهای این سیستمها آشنا شدیم، به ببرسی سیستم ها مدیریت وضعیت توزیع شده در ASP.NET Core پرداخیتم. با هم دیدیم که راه حل های مختلفی برای این کار وجود دارد.
سپس تنظیمات برنامه را جوری انجام دادیم که از SQL Server به عنوان حافظه موقت نگهداری وضعیت ها استفاده کنیم و برنامه را طوری تغییر دادیم تا اطلاعات کش و session را در SQL Server نگهداری کند. برنامه خود را در Windows و Linux به صورت همزمان اجرا کردیم و دیدیم که چگونه با اینکه برنامه روی 2 سرور مختلف با 2 سیستم عامل مختلف اجرا میشود اما اطلاعات Cache به درستی بین هر دو سیستم اشتراک گذاشته میشود.
همچنین پایگاه تحلیلی، خبری بانک و صنعت نیز در رابطه با این جلسه گزارشی را آماده کرده است.
مشاهده گزارش خبرگزاری بانک و صنعت درباره دوره ASP.NET MVC
اگر میخواهید در دوره آموزشی ASP.NET Core MVC ثبت نام کنید همین الان بر روی لینک زیر کلیک کنید.
ثبت نام در دوره آموزشی ASP.NET Core MVC بصورت غیرحضوری [کلیک کنید]