ورود ثبت نام

ورود به حساب کاربری

نام کاربری *
رمز ورود *

ایجاد حساب کاربری

گزینه های * دار الزامی می باشند.
نام *
نام کاربری *
رمز ورود *
تائیدیه رمز ورود *
نشانی پست الکترونیک *
تائیدیه پست الکترونیک *

قبل از آشنایی با ASP.Net Core لازم است که درک درستی از الگوی MVC داشته باشیم. الگوی MVC  یک برنامه کاربردی تحت وب، الگویی است که حداقل به سه قسمت زیر تقسیم شود:

  • Modelمهیا کننده دادهای است که کاربر با آن کار می کند.
  • View برای ساختن رابط کاربری بکار می رود و معمولا ترکیبی از مدلها را در بر می گیرد.
  • Controller درخواستهای رسیده از سمت کلاینت را پردازش نموده و با انجام عملیاتهای لازم روی مدل در نهایت یک view را برای ارائه به کاربر انتخاب می نماید.

هر قسمت از این معماری به خوبی تعریف شده و لایه های آن به خوبی از هم تفکیک شده‌اند که به این ویژگی Separation Of Concerns گفته می شود که این مقوله در ادامه به صورت یک مطلب مجزا آورده خواهد شد. در این معماری منطق مربوط به دستکاری داده در لایه مدل گنجانده می شود و منطق مربوط به نمایش داده فقط در لایه View آورده می شود و در نهایت کد مربوط به مدیریت درخواستهای کاربر در لایه Controller گنجانده می شود. در اینجا به شرح مختصر هر یک از این لایه ها می پردازیم:

Model : شامل داده ای است که کاربر با آن کار می کند و از دو نوع تشکیل شده است: view model که برای ارائه داده های ارسال شده از controller به view مورد استفاده قرار می گیرد و  domain model که شامل داده های تجاری بوده و در عملیاتها، تبدیلات داده، ایجاد، ذخیره سازی و دستکاری داده مورد استفاده قرار می گیرد و به آن model logic نیز گفته می شود.

Controller : واسطی بین لایه های data model و view می باشد و شامل کلیه عملیات های لازم جهت پیاده سازی منطق تجاری روی data model و ارائه داده مورد نیاز برای نمایش به کاربر است.

View : شامل منطق مورد نیاز برای نمایش داده به کاربر یا گرفتن داده از کاربر و ارائه آن به controller می باشد. شکل زیر فرایند ارسال یک درخواست از سمت کاربر تا شکل گیری پاسخ لازم برای او را نمایش می دهد:

mvc-pattern

همانطور که در شکل دیده می شود با رسیدن یک درخواست از سمت کاربر، این درخواست به controller تحویل داده می شود. controller با دیدن درخواست آن را پردازش نموده و در صورتی که پاسخ درخواست مثلا یک view خالی است آنرا ارسال می نماید. در غیر اینصورت با کمک model داده های مورد نیاز را واکشی نموده و منطق تجاری لازم به همراه عملیات مورد نیاز را روی آن اعمال کرده و به سوی کاربر ارسال می نماید. در هنگام ارسال view به سمت کاربر از presentation model و یا همان view model جهت تراکنش داده  به سمت کاربر استفاده می نماید.

نحوه ایجاد:

Model : برای ایجاد این لایه از معماری کافی است پوشه ای در پروژه به نام models ایجاد کرده و در آن یک فایل جدید از نوع class و با یک نام با مسما تعریف کنیم. شکل زیر نمونه یک model ایجاد شده برای نگهداری کالا (Product.cs) است:

  namespace MyProject.Models { 
     public class Product { 
         public string Name { get; set; } 
         public decimal? Price { get; set; } 
         public static Product[] GetProducts() {
             Product kayak = new Product {
                 Name = "Kayak", Price = 275M
             };
             Product lifejacket = new Product {
                 Name = "Lifejacket", Price = 48.95M
             };
             return new Product[] { kayak, lifejacket, null };
         }
     }
 }

همانطور که در قطعه کد بالا می بینید این کلاس دارای دو property برای نگهداری نام و قیمت کالا و یک متد برای گرفتن لیست کالاها می باشد.

Controller : در فولدر Controllers یک کلاس جدید و با نام مرتبط ایجاد می نماییم. هر controller دارای چندین action می باشد که هر یک از آنها وظیفه ای را انجام می دهند و بسته به درخواست رسیده از سمت کاربر یک action از یک controller فراخوانی می شود.

در قطعه کد زیر یک کنترلر با نام HomeController تعریف شده که در آن یک action به نام Index تعریف شده و خروجی آن یک view می باشد. پس بنابر این در فولدر view باید پوشه ای به نام Home و در آن پوشه نیز باید view ای با نام ایندکس موجود باشد. در زیر قطعه کد مربوط به این controller آمده است:

namespace MyProject.Controllers {
     public class HomeController : Controller { 
           public ViewResult Index() {
             return View(new string[] { "Kayak", "Lifejacket" });
         }
     }
 }

View : همانطور که در قسمت بالا ذکر شد برای ایجاد یک view بسته به نام Controller ای که مرجع  view می باشد یک فولدر به نام کنترلر ایجاد شده و همنام با نام action مربوطه یک فایل جدید از نوع view ایجاد می نماییم. در زیر قطعه کد مربوط به view (Index.cshtml) آورده شده است:

@model IEnumerable<string> 
 @{ Layout = null; } 
   <!DOCTYPE html>
 <html>
 <head>
     <meta name="viewport" content="width=device-width" />
     <title>Language Features</title>
 </head> 
 <body> 
     <ul>
         @foreach (string s in Model) {
             <li>@s</li>
         }
     </ul>
 </body>
 </html>

در مثال بالا نام کالاها به صورت آرایه ای از رشته به سمت view ارسال می شود و با کمک دستور foreach همه آنها در ردیفهای پشت سرهم نمایش داده می شوند.

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید