آموزش ASP.NET Core MVC

ساختار پوشه ها در پروژه های ASP.NET Core MVC

ساختار پوشه ها و فایل های یک پروژه ASP.NET Core به چه صورت است ؟ هر فایل و هر پوشه برای چه منظوری ایجاد شده است و چطور ازش استفاده کنم؟

خب این سوالات معمولا بعد از برداشتن قدم اول برای شروع اموزش ASP.NET Core براتون پیش میاد حالا شاید بپرسید قدم اول چی بود ؟ اگر وارد این مقاله شدی ولی هنوز قدم اول را برنداشتی پیشنهاد میکنم مقاله نحوه‌ی ایجاد پروژه ASP.NET Core رو بخون بعدش برگرد با این مقاله در خدمتت هستیم.

ساختار پوشه ها در پروژه های ASP.NET Core

زمانی که شما یک پروژه ASP.NET Core ایجاد می‌کنید بدون در نظر گرفتن نوع الگویی که انتخاب کردید، پوشه ها و فایل هایی در پروژه شما قرار می‌گیرند که در این مقاله آموزشی به بررسی این فایل‌ها و پوشه‌های می‌پردازیم برخی از مواردی که ذکر شده به صورت پیش فرض در پروژه شما وجود ندارند ولی طریقه‌ی اضافه کردن آنها به پروژه رو بهتون آموزش خواهم داد پس اصلا نگران نباشید.

به تصویر زیر دقت کنید ، این تصویر Solustion Explorer پروژه ای هست که در جلسه گذشته ایجاد کردیم حالا میخواهیم پوشه ها و فایل های این بخش را باهم بررسی کنیم دقت داشته باشید که پروژه براساس معماری mvc ساخته شده است چنانچه قصد دارید راجب معماری mvc اطلاعات بیشتری به دست آورید مقاله  آشنایی با معماری mvc را مطالعه نمایید.

Solution Explorer ویژوال استودیو
Visualstudio2019 Solution Explorer

 

  1. پوشه Areas

    در پروژه ASP.NET Core می توانیم هر تعدادی که میخواهیم Area تعریف کنیم از Area برای تفکیک یک پروژه بزرگ به بخش‌های کوچکتر استفاده می‌شود به عنوان مثال شما یک اسکلت ساختمانی دارید حالا با استفاده از Area می تونید دیوارکشی انجام بدید یک قسمت رو برای آشپزخونه جدا کنید یک بخش را برای هال و پذیرایی و یک بخش برای اتاق خواب ها و سرویس های بهداشتی ، امیدوارم با این مثال مفهوم Area را به خوبی درک کرده باشید. به این نکته توجه داشته باشید که در پروژه های بزرگ Area برای بخش بندی کردن پروژتون خیلی به درتون میخوره از من گفتن 😊
    Area هایی که ایجاد می کنید داخل پوشه Areas قرار می گیرند برای اضافه کردن یک Area جدید کافیه که ابتدا اگر پوشه‌ی Areas در پروژه وجود ندارد این پوشه رو اضافه کنید سپس روی این پوشه راست کلیک کرده و گزینه Add و سپس گزینه Area را انتخاب کنید.
    به عنوان مثال در پروژه کتابخانه و پروژه سایت خبری دوره آموزش پروژه محور ASP.NET Core که برگزار کردیم بخش های مربوط به پنل مدیریت را درون یک Area به نام Admin تعریف کردیم.

  2. Dependencies

    وابستگی ها یا بسته هایی که پروژه به آنها وابسته است درون بخش Dependencies قرار می‌گیرند.

  3. پوشه Comonents

    پوشه Comonents به صورت پیش فرض در پروژه‌ی شما وجود ندارد ولی اگر بخواهید برای پروژتون ViewComponent اضافه کنید می‌توانید این ویوکامپوننت ها را در این پوشه قرار دهید ، اگر نمی دونید ViewComponent چیست؟ اصلا نگران نباشید در درس های آینده در مورد ویوکامپوننت ها صحبت خواهیم کرد.

  4. پوشه Controllers

    درون پوشه Controllers ، کلاس های کنترلر را تعریف می کنیم . در درس های گذشته هم با مفهوم کنترلر در معماری mvc آشنا شدیم.

  5. پوشه Data

    فایل های مربوط به migration های پروژه و دیتابیس داخل این پوشه قرار می گیر

  6. پوشه Models

    داخل پوشه Models ، کلاس Model و ViewModel مربوط به پروژه را تعریف می‌کنیم.

  7. پوشه Views

    درون پوشه Views ، برای هر کنترلر یک پوشه همنام آن کنترلر داریم که همه View ها و PartialView های مربوط به آن کنترلر درون پوشه مربوط به آن کنترلر قرار می‌گیرد.

  8.   پوشه Views/Shared

    View هایی که اشتراکی هستند داخل این پوشه قرار می‌گیرند منظور از اشتراکی بودن این هست که اکشن متدهای کنترلرهای مختلف می توانند از این View ها استفاده نمایند و این View رو بازگشت دهند.

  9.  فایل Views/_ViewImports.Cshtml

    این فایل دربرگیرنده فضاهای نام مربوط به Razor page ها و View های پروژه هست، این فایل به ما کمک میکند که فضاهای نام مشترک بین Viewها و Razorpage ها را درون این فایل تعریف کنیم و دیگر نیاز به تعریف این فضاهای نام داخل Viewها و Razorpage ها نیست.

  10.  فایل Views/_ViewStart.Cshtml

    در این فایل Layout پیش فرض پروژه مشخص می‌شود و چنانچه برای View ها یا Razor page ها یک Layout مشخص نشود ، از Layout پیش فرض داخل این فایل استفاده می‌کنند.

  11. فایل appsettings.json

    این فایل جایگزین فایل web.config است و پیکربندی های مختلف پروژه مانند تعریف رشته اتصال (ConnectionString) درون این فایل صورت میگیرد.

  12. فایل Program.cs

    فایل Program.cs نقطه شروع اجرای برنامه ماست و تنظیمات مربوط به server در این فایل قرار می‌گیرد اگر این فایل در پروژه وجود نداشته باشد پروژه نمی‌تواند اجرا شود.

  13.  فایل Startup.cs

    در فایل Statup.cs میان افزارها (middlewares) و سرویس های (Services) پروژه تنظیم و راه اندازی می‌شود به عنوان مثال از طریق متد ConfigureServices تعریف شده در این کلاس ، رشته اتصال یا ConnectionString تعریف شده ، به برنامه تزریق می‌شود.

  14.  پوشه wwwroot

    در پوشه wwwroot ، فایل های استاتیک پروژه مثل تصاویر ، فایل های css و جاوااسکریپت ، فونت ها و … قرار می‌گیرند . داخل wwwroot ، پوشه lib را داریم که که محل قرارگیری کتابخانه ها و پلاگین هایی هست که در پروژه استفاده می‌کنیم مثل  jquery ، bootstrap و …

بسیار خب ، این جلسه آموزشی هم به پایان رسید در صورتی که سوالی پیرامون مقالات آموزش ASP.NET داشتید حتما در قسمت نظرات مطرح کنید پاسخگوی شما خواهیم بود.

برچسب ها

آرزو ابراهیمی

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

نوشته های مشابه

‫8 نظر داریم، تو هم نظر بذار، پاسخ کامل میدیم :)

  1. سلام
    اگر نیاز داشته باشم تا کلاسی رو در پروژم داشته باشم. باید در پوشه Models ایجاد کنم؟
    البته این کلاس برای ویو استفاده نخواهد شد

    1. سلام بهتره که فقط کلاس های مربوط به Entity ها را داخل پوشه Models قرار بدید .
      می تونید این کلاس را در یک فایل جداگانه در پروژه قرار بدید.

    1. سلام …
      من فقط در زمینه asp.net برنامه نویسی می کنم البته در زمینه php هم اطلاعاتی دارم ولی به صورت تخصصی با asp.net طراحی سایت میکنم.
      موفق باشید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
سایت خود را در گوگل مدیریت کنید + ۱۵ ساعت فیلم آموزشیجزئیات بیشتر اینجا کلیک کنید
بستن
با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

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

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
ترک میزفا خوب نیست!
دوره سئو، رایگان شد.
فرصتی رایگان برای یادگیری
کاراکتر اشاره گر
دوره سئو، رایگان شد.
فرصتی رایگان برای یادگیری
کاراکتر اشاره گر