وارد مقاله دهم شدیم و در این قسمت است که باید کم کم پروژه را به MVC Middle Ware مسلح کرده و آرام آرام حداقل یک Controller در پروژه داشته باشیم . همانطور که میدانید ، در یک پروژه وب از نوع MVC با Model و View و Controller سر و کار داریم .
بسمه تعالی
ASP.NET Core 1 – قسمت دهم
وارد مقاله دهم شدیم و در این قسمت است که باید کم کم پروژه را به MVC Middle Ware مسلح کرده و آرام آرام حداقل یک Controller در پروژه داشته باشیم . همانطور که میدانید ، در یک پروژه وب از نوع MVC با Model و View و Controller سر و کار داریم . در این بخش به صورت ضمنی نگاهی به Controller هم خواهیم انداخت ولی اصل موضوع کار با یک پروژه به صورت MVC به قسمتهای بعدی تعلق خواهد داشت .
دوستان دقت کنید که کم کم باید به سراغ VS.NET بر روی MAC یا Linux هم رفته و حتی از سوار کردن پروژه روی Appache یا ... هم بهره برداری کنید . ظاهرا SQL 2016 را هم میشود بر روی Linux و ... هم نصب کرد و این سبب میشود آرام آرام از دست سرورهای ویندوز هم خلاص شویم . البته سرورهای ویندوز ایرادی ندارند فقط کمی هزینه بر تر می باشند . بگذریم و به ادامه بحث بپردازیم .
همانطور که میدانید ، حتی این امکان وجود دارد که کل پروزه را مبتنی بر Middle Ware نوشته و به پایان برسانیم ، ولی این کار توجیه منطقی ندارد و از هر نظر سخت و درگیر کننده خواهد بود . هدف ما استفاده از تواناییهای MVC در ایجاد HTML Page ها و ارتباط با Api ها می باشد .
برای رسیدن به هدف توضیح داده شده ، باید ابتدا MVC Frame Work را در پروژه برقرار و آنرا به درستی Setup نمود .
قدم اول نصب MVC Package خواهد بود . بعد از آن هدف ایجاد MVC Services میباشد و بعد از آن ایجاد MVC Middle Ware در پروژه میباشد .
برای نصب و تنظیمات MVC Package این بار از طریق Nuget عمل نکرده و از طریق فایل Project.Json این مراحل را انجام خواهیم داد . برای ایجاد یک Dependency جدید کافی است فقط یک نام آنرا مانند بقیه ذکر کنیم .
این خط را کافی است اضافه کنید .
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final"
و پس از آن خواهید که پروزه فایلهای لازمه را Fetch کرده و آماده خواهد شد .
خوب وقتی در بدنه MVC در حال کاریم ، انتظار داریم Request ها به Controller ها پاس داده شوند پس الان به یک Controller ساده نیاز داریم . مرحله بعدی ایجاد Controller خواهد بود .
به پروژه یک Folder جدید به نام Controllers اضافه کنید . به این فولدر باید یک Charp Class اضافه نمود .
از کلاس یا Interface خاصی هم لازم نیست ارث بری کنید . حالا یک متد از نوع String و به نام Index درون آن ایجاد کنید . کلن به شکل زیر عمل کنید .
سناریو این است که در صورت مراجعه به Root پروزه در Browser متد Index درون Controller عمل کند .
برای اولین قدم از درون WWWROOT آن فایل HTML را که Index.Html نام داشت ، حذف میکنیم چرا که الان دیگر Controller داریم و براش نمایش پیام و .... می توان از آن استفاده نمود. اصولن دستور یا دستورات مرتبط به MVC را در Middle Ware باید بعد از خط کد مرتبط با File Server نوشت.
حالا 2 انتخاب خواهم داشت . دستور UseMVC و دستور UseMVCWithdefaultRoute و در اینجا من از دومی استفاده خواهم نمود . در قسمتهای بعدی تفاوت اینها و ریزه کاریها رو بررسی خواهیم نمود .
خوب حالا یکبار Save زده و پروژه را اجرا و به پیام خطای زیبا بر خواهیم خورد . علت این پیام دوباره تعریف نشدن Object مورد نظر در سرویسها می باشد .
برای حل این مشکل باید سرویس مورد نظر را مشابه زیر تعریف نمود .
حالا دیگر پروژه را اجرا و پیام درون Controller و در اصل متد درون Controller را مشاهده کنید .
و د راینجا دیگر میتوانم بگویم دانش شما برای به سراغ اصل و بنیان MVC 6 تا حدود منطقی کافی است و از بخض بعدی به سراغ Controller و جزئیات آن در MVC 6 یا همان MVC Core 1 خواهیم رفت .
دانلود سورس پروژه
موفق باشید .