متن صدای ویدیو :

ما در این جلسه می خواهیم بیشتر از کدنویسی سمت سرور صحبت کنیم. اگر جلسات قبلی یادتان باشد راجع به Debug , compile صحبت کردیم. در این جلسه می خواهیم راجع به خود کدها صحبت کنیم و یک مقدار جزئی تر. در قسمت Framework خودکار لایه ی UI دو Namespace می باشد UI.Controller  و UI.Startapp در قسمت UI.Controller یک Test class داریم که در اصل Test controller می باشد و از Base Public web API controller  ارث برده یعنی این یک Controller است. اگر یادتان باشد ما در مدیریت سرویس ها گفتیم ما دو نوع سرویس داریم. سرویسمان یا ODATA است یا HTTP.

OData را که با JavaScript می نوشتیم. اینجا همان قسمتی است که سرویس های HTTP را می نویسیم و همینجا سریع می توانیم سرویس را بنویسیم . 

Debug  کنیم compile کنیم publish کنیم و استفاده کنیم. سرعت توسعه برنامه مان خیلی بالا است، اما نکته ی دیگری که باعث سرعت برنامه می شود این است که Backend قوی و آماده ای که از قبل وجود دارد آن هم Framework خودکار در سمت سرور است. مثلا همینجا که می بینید برای WebApiController های ما الان اینجا از Base public web API controller ارث برده است. ما یک سری API آماده داریم در Framework خودکار سمت سرور که می توانیم از آن ها استفاده کنیم حالا این ها چه مزیتی دارند من به صورت جزئی اشاره می کنم. اما انشالله بعدا در ویدیو های سورس به صورت کامل راجع به آن صحبت می کنیم. در namespace ، KS.Dynamic.UI.startup شما هر زمان که بخواهید برای خودتان وبسایت بنویسید و بیایید بالا علاوه بر آن لایه ی UI تان الان گفتم چون ما Owin Base هست platform حتما باید startup هم داشته باشیم.

الان همین طور که مشاهده می کنید ما یک partial class startup داریم  ، در اصل این class startup ، Control panel اصلی وبسایت  شما است و تمام کنترل کدهای شما از اینجا می تواند انجام شود و آن ها را سریع compile و publish کنید و به سرعت تغییراتی که نیاز دارید در وبسایتتان بدهید. در اینجا الان base public را سرچ می کنم، همانطور که مشاهده می کنید ما یک سری basic controller داریم مثلا base public OData controller ، Base public web API controller یا Base Authorize OData controller برای سرویس هایی که نیاز به Authorize دارند سرویس هایی که Public و عمومی نیستند یا Base Authorizer Web AP controller از این Base controller ها چه استفاده ای کردیم؟ یک سری Action روی آن ها اعمال کردیم مثلا Filter یا Action . 

مثل Authorize By Log And Check Cache of service attribute ، این Attribute را آمدیم روی Base Controller اجرا کردیم و هر  Controllerکه از این base Controller ارث ببرد. از این فیلتر ها هم استفاده می کنه ، مثلا این فیلتر هم Authorize می کند هم برای Log چک می کند و هم Cache سرویسمان را چک می کند. مثلا  logOdataService ، log سرویس های odata رو چک می کنه یا LogAndCacheService فقط برای Log و Check کردن Cache است. برای Service هایی Public ما سرویس هایی که نیاز به Authorize ندار. ما در اینجا روی Base controller ها اعمال کردیم Attribute هایمان را شما می توانید آن را حتی روی تک تک Controller هایتان با نام اعمال کنید. اعمال کردن هم از چه طریقی است؟

IOC Container ما ، Autofac هست. با استفاده از Autofac ما می توانیم Action ها و Filter هایی که می خواهیم روی Basic controller هایمان اجرا کنیم یا روی Controller ها حالا من بعدا" سورس را کامل در ویدیوهای سورس توضیح می دهم. نکته ی دیگری که وجود دارد سرعت می دهد به کار توسعه ی شما ، همه چیز آماده است ، شما تک تک Class هایی که ما داریم چون از Interface استفاده می کنه ، شما اگه نیاز داشته باشید می تونید کلش رو از اول بنویسید و در اینجا جایگزین کنید و compile کنید و منتشر کنید و سریع تغییرات مدنظر وبساییتان را بدهید و از طرف دیگر تمام Class های ما تمامی متدهای Public که دارد چه در لایه ی Business مان چه در لایه ی Core این ها قابلیت override دارند.

شما می توانید اگر مثلا یک یا دو متد نیازتان است که Override کنید از این Class ها ارث ببرید. Class های لایه ی Business و لایه ی Core یا Data و فقط آن متدهایی که می خواهید را Override کنید. به این طریق کل وبسایتتان از آن کد جدید شما استفاده می کند. وقتی Class جدیدتان را از این کلاس ارث برده اینجا گذاشتید و آن را compile کردید و منتشر کردید. این نکاتی است که خیلی سرعت می دهد به توسعه یک وبسایت همه چیز آماده است Log امنیت فقط کافی است که شما از آن ها اگر نیاز به تغییر دارد تغییر دهید یا فقط از آن ها استفاده کنید.