قراردادهای معماری MVC

قراردادهای معماری mvc در asp.net core
contracts of mvc in asp.net core

در معماری ام وی سی چه قراردادهایی وجود دارد ؟ برای کنترلرها ، ویوها و مدل ها باید از چه قراردادهایی پیروی کنیم ؟ چه بایدها و نبایدهایی در معماری MVC وجود دارد؟

درود دوستان ، آرزو ابراهیمی هستم مدرس دوره آموزش رایگان asp.net core ، و با یک مقاله آموزشی دیگر از سری مقالات اموزش net core. آموزش در خدمت شما دوستان هستم با من و این مقاله آموزشی همراه باشید.

قراردادهای MVC

از دو نوع قرارداد در پروژه های MVC می توانیم نام ببریم. نخستین گروه، پیشنهادهایی هستند برای نظم دادن به ساختار پروژه. به عنوان مثال، بهتر است فایل های جاوا اسکریپت و CSS رادر پوشه‌ی wwwroot/lib جای دهید. این محلی است که سایر برنامه نویسان MVC انتظار یافتن آنها را داشته و از سویی دیگر ، ویژوال استدیو آنها را در همین محل نصب می‌کند ( به وسیله‌ی Package Manager که مدیریت بسته ها را بر عهده دارد ). با این حال ، چنانچه این فایل‌ها را در محلی دیگر هم ذخیره کنید، تاجایی که تگ های link و script موجود در بخش head صفحه ها به مکان درست آنها اشاره می‌کنند ، مشکلی در اجرای پروژه پیش نخواهد آمد.

دومین نوع قراردادها مربوط به مفهومی به نام قرارداد بر پایه‌ی پیکربندی (Convention Over Configuration) می‌شود. به طور مثال ، بر پایه این مفهوم ، تا جایی که از قرارداد مشخصی در مورد نام گذاری فایل ها پیروی می‌کنید ، نیازی به تعریف ارتباط بین نماها و کنترلرهای مربوط به آنها (و همین طور متد اکشن داخل کنترلر)، نخواهید داشت. نامگذاری درست ، مشخص می‌کند کدام کنترلر مربوط به کدام نما است.

قراردادهای مربوط به Controller ها

در معماری mvc بهتر است که پسوند نام های کلاس های کنترلر باید Controller باشد. مانند : ProductController یا AdminController

هنگامی که از کنترلر در محل دیگری از پروژه به عنوان مثال در یک فایل cshtml در یک تگ ، استفاده می کنید ، تنها از بخش نخست استفاده می‌کنید (Product یا Admin).
MVC به صورت خودکار Controller را اضافه کرده و سعی بر یافتن کلاس آن در پروژه می‌کند.

قراردادهای مربوط به View ها

Viewها در پوشه ای به آدرس Views/ControllerName ذخیره می‌شوند. بنابراین محل ویوی مربوط به کنترلر ProductController مسیری به شکل Views/Product است.

از نظر MVC نمای پیش فرض برای متد اکشن، نمایی هم نام آن متد است. بنابراین، نمای مربوط به اکشنی به نام List به صورت List.Cshtml نام گذاری می شود. به شکل کامل تر، نمای مربوط به اکشن List در کنترلرProducterController، مسیر و نامی به صورت Views/Product/List.cshtml/ خواهد داشت. نماهای پیش فرض ، زمانی که متد ()View را در متد اکشن به فرم زیر فراخوانی می‌کنید، برگشت داده می‌شوند:

return View()

برای نمایش نمای دیگری به غیر از نمای پیش فرض، باید از آن نام ببرید:

return View("MyOtherViews")

توجه کنید که اثری از پسوند فایل و یا مسیر آن در فرمان های بالا نیست. برای یافتن نما ،MVC  ابتدا پوشه ای هم نام کنترلر و پس از آن مسیر  Views/Shared/ را جست و جو می کند. معنی آن این است که می توانید پوشه هایی رادر چندین کنترلر کاربرد دارند در پوشه Shared جای دهید و MVC قادر به یافتن آنها خواهد بود.

قراردادهای مربوط به الگوی صفحه ها

بر اساس قراردادهای پیش فرض MVC، الگوهای صفحات cshtml بهتر است با نماد (آندرلاین) _ شروع شده و در پوشه‌ی Views/Shared ذخیره شوند.
چنین الگویی به صورت پیش فرض بر اساس فایل Views/_ViewStart.Cshtml/ به همه ی صفحه هایی که الگویی برای خود مشخص نکنند ، اعمال می شود. از سویی دیگر ، با تغییر فایل ViewStart.Cshtml_ می‌توانید الگویی دیگر را برای صفحات پروژه معرفی کنید.

@{
   Layout = "~/_MyLayout.Cshtml";
}

و در پایان ، برای اینکه صفحه ای دارای الگو نباشد ، می‌توانید با دستور زیر آن را غیر فعال کنید:

@{
   Layout=null;
}

به پایان این جلسه آموزشی رسیدیم سوالی داشتید حتما بپرسید پاسخگوی شما خواهم بود.?

فیلم آموزشی asp.net core 2

آرزو ابراهیمی
بیش از 6 سال است که زمینه طراحی و توسعه سایت فعالیت می‌کنم، طراح و برنامه نویس انواع سامانه‌های تخصصی پزشکی، مناقصات، فروشگاهی و … بودم و هستم و هدفم در سایت میزفا ارائه اطلاعات بروز و ناب در زمینه طراحی سایت است. تا از این طریق بتونم تجربیات و دانسته های خودم را با تمامی علاقمندان به مباحث طراحی سایت به اشتراک بزارم .

فیلم آموزشی asp.net core 2

بدون نظر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

حداکثر حجم فایل برای آپلود: 1 مگابایت. فایل‌های مجاز برای آپلود: عکس, ویس, ویدیو, ورد یا پی دی اف, فایل متنی, زیپ. شما می‌تونید برای بهتر پرسیدن سوالتون، عکس یا ویس یا حتی فیلم در بخش نظرات میزفا آپلود کنید. برای ضبط ویس می‌تونید از خود واتس آپ استفاده کنید و بعد اینجا آپلود کنید و برای ارسال عکس هم کافی هست اسکرین شات بگیرید. Drop file here

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
معرفی جامع‌ترین ابزار سئو در ایران
بالای ۱۰ هزار عضو
PHZpZGVvIHdpZHRoPSI2MDAiIGhlaWdodD0iMzUwIiBwb3N0ZXI9Imh0dHBzOi8vbWl6ZmEuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDUvcG9zdGVyLW1pemZhLXRvb2xzLXZpZGVvLW1pbi5wbmciIGNvbnRyb2xzIHByZWxvYWQ9Im5vbmUiPiANCiAgIDxzb3VyY2Ugc3JjPSJodHRwczovL21pemZhLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA1L21pemZhX3Rvb2xzXzcyMHAubXA0IiB0eXBlPSJ2aWRlby9tcDQiPg0KPC92aWRlbz4=