با سلام در این مقاله میخواهیم mvc6 را با یک پروژه عملی آموزش دهیم بنابراین بدون مقدمه کار را شروع میکنیم
یک پروژه با نام دلخواه در مسیری ایجاد میکنیم.
پس از اپدیت ویژوال به اپدیت rc1 و بالاتر کار را شروع میکنیم.
در بخش زیر asp.net 5 template گزینه Empty را انتخاب میکنیم.

پس از ایجاد پروژه به داخل سولوشن نگاهی می اندازیم.
قسمت references را باز کنید دیگر خبری از dll ها نیست و تصویر زیر را مشاهده میکنید.

این یعنی همان عدم وابستگی به دات نت فریم ورک.
همانطور که میدانید با آمدن .net core کاربران پروژه های خود را میتوانند بر روی لینوکس و مک نیز اپلود و اجرا نمایند.
پوشه wwwroot نیز محل دخیره سازی صفحاتی مانند css – js - تصاویر و... می باشند.و به این پوشه root اصلی پروژه نیز می نامند.
در داخل این پوشه فایل web.config را مشاهده میکنید .
قسمت Dependencies که یکی از بخشهای مهم و کاربردیست .درصورتیکه شما نیاز به اضافه کردن فایلی باشید بعنوان مثال جاوا اسکریپت یا entityframework از این بخش استفاده میکنیم که در بخشهای بعدی به آن می پردازیم.
بخش بعدی project.json میباشد.
در این قسمت بعنوان مثال تمام مواردی که از طریق nuget به پروژه اضافه میکنیم به این بخش اضافه میشود.و این عمل از طریق دستوراتی در داخل بلاک Dependencies به پروژه اضافه میشوند.
فایل startup.cs فقط در اولین اجرای پروژه دستورات این بخش اچرا میشود. و این قسمت برای مواردی از قبیل مسیریابی یا اضافه نمودن mvc به پروژه یا مسیر یابی و .... بکار میرود البته در اموشهای بعدی با این قسمت نیز آشنا میشویم.
شاید برای شما جالب باشد که چگونه MVC را به پروژه اضافه کنیم.قبل از اضافه نمودن MVC به برنامه آنرا را یکبار اجرا نمایید و خروجی را ببینید. مشاهده خواهید که که خروجی برنامه حاصل اجرای دستورات تابع Configure در فایل startup.cs می باشد.
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
مراحل اماده سازی برنامه برای mvc
فایل project.json را باز کنید و قسمت dependencies را بصورت زیر ویرایش کنید.
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Mvc.Razor": "6.0.0-rc1-final",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
"Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-rc1-final"
},
سپس فایل را دخیره نمایید تا موارد اضافه شده دانلو شود پس از دانلود به قسمت سولوشن برنامه بروید فایلهای اضافه شده را در قسمت references -> DNX Core 5.0 مشاهده کنید.
سپس برای استفاده از MVC در پروژه فایل startup.cs را باز کنید و در قسمت ConfigureServices عبارت زیر را بنویسید.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
حال پوشه های Controllers Models Views را به پروژه اضافه میکنیم. جهت اضافه کردن این پوشه ها بر روی نام پروژه کلیک راست نمایید . سپس Add و در نهایت NewFolder را انتخاب نمایید.
در این قسمت چون هنوز entityframework را به برنامه اضافه نکردیم برای ایجاد یک کلاس controller درون پوشه controllers با توجه بشکل زیر مراحل را دنبال می کنیم


نام آنرا بصورت پیشفرض انتخاب کنید و بر روی Add کلیک نمایید.
دقت کنید اکشن index از نوع IActionResult یعنی یک اینترفیس میباشد.
مراحل ایجاد ویو را هم بصورت دستی انجام میدهیم.
ابتدا یک پوشه همنام با کنترلر یعنی Home در داخل Views ایجاد میکنیم . سپس روی آن کلیک راست و Add -> new item و از پنجره باز شده در قسمت server side گزینه Mvs view page را انتخاب میکنیم. نام آنرا بصورت پیشفرض Index انتخاب نمایید.
ویو مورد نظر را بصورت زیر ویرایش نمایید.
<html>
<head>
<title>
mvc in fekre-bekr.ir
</title>
</head>
<body>
learning mvc6 in fekre-bekr.ir
</body>
</html>
برای اجرای برنامه و مشاهده خروجی ابتدا یک مسیریابی برای برنامه در نظر میگیریم. برای این کار تابع Configure از فایل startup.cs را بصورت زیر ویرایش میکنیم.
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.UseMvc(
Route =>
Route.MapRoute(
name: "Default",
template: "{Controller=Home}/{Action=Index}/{id?}"
)
);
}
در کد فوق مسیری را به برنامه معرفی کردیم تا به محض اجرای برنامه ویو index از کنترلر Home بعنوان صفحه پیشفرض نمایش داده شود
پس از اجرای برنامه خروجی زیر را مشاهده خواهید کرد.

در قسمتهای بعدی به پیاده سازی مباحث مرتبط با entityframework می پردازیم