تغییرات mvc 6 نسبت به 5 mvc
- تاریخ نشر : مهر ۱۹, ۱۴۰۰
- نویسنده : آژانس تبلیغاتی پرسفید
اگر مدتی رو به بررسی تغییرات mvc 6 نسبت به ۵ mvc اختصاص بدهید، به تغییرات جالب و عمیقی پی خواهید برد که در نسخه بتای ورژن ۵ گذاشته شده است. باید به این نکته اعتراف کرد که نسخه ۵، یک نسخه بسیار مناسب و دارای تغییرات مهمی است و میتوان آنرا به یک نسخه بسیار تاثیرگذار در تاریخچه فریم ورکهای ASP.NET MVC قلم داد کرد. باید گفت که براساس گفته ماکروسافت، این نسخه تقریبا از صفر نوشته شده است.
معرفی 10 از تغییرات mvc 6 نسبت به ۵ mvc
در این مقاله؛ به ۱۰ تا از تغییرات mvc 6 نسبت به ۵ mvc مهم خواهیم پرداخت . امیدوارم اگر شما هم به نکته ای بیشتر از این ۱۰ تا پی بردید، اونها رو با من و بقیه به اشتراک بزارید.
1- امکان قرارگیری بر بستر Linux و OSX
برای اولین بار در تاریخ ASP.NET، شما میتوانید تولیدات خود در این بستر را روی Linus و OSX اجرا کنید و این میتونه جمع بیشتری از برنامه نویسها رو به این محصول جزب کنه. اکثر برنامه نویسهای قدیمی ماکروسافت و ASP.NET، در محیطهای بزرگ و شرکتها کار میکنند یا بستر کاری خودشون رو مبتنی بر Windows از آماده کردند، ولی خیلی از کسانی که تازه قصد دارند وارد بشوند، محصولات Apple و غیره رو استفاده میکنند.
حتی بر اساس مشاهدات، برنامه نویسان دات نتی هم بیرون از محل کارشون علاقه من به استفاده از مثلا Macbook هستند. در یک کنفرانس دات نت، همه لپ تاپهای ویندوزی به دست داشتند، ولی در یک کنفرانس Jqeury چی؟ همه با Macbook و … شرکت کرده بودند . لذا ماکروسافت خواست این دسته از برنامه نویسان رو هم به جرگه دوستداران و طرفداران خودش اضافه کنه . ایجاد این امکان برای ASP.NET که بتواند روی Linux و … اجرا شود، خیلی چیزها رو تغییر خواهد داد.
بخوانید: مزایای ASP.MVC
برای اولین بار همه برنامه نویسان میتوانند روی هر پلتفرمی برنامه نویسی رو با ASP.NET 5 شروع کنند و در عین حال میتوانند محیط و سخت افزار و نرم افزار مورد علاقه خودشون رو هم استفاده کنند. در ضمن باید به این نکته اشاره کرد که امکان استفاده از محیطهای دیگه مثل Sublime text و WebStorm و لزوما استفاده نکردن از محیط Visual Studio هم امکان پذیر شده است. برای بررسی این موضوع، بهتره نگاهی به پروژه OmniSharp بزنید تا متوجه چگونگی استفاده از ابزارهایی مثل Sublime و Atomو Emacs یا Brackets در روند توسعه پروژههای ASP.NET از طریق اونها بشید.
Sublime Text, Atom, Emacs, and Brackets with ASP.NET 5: http://www.omnisharp.net/
2- WebForm تمام شد
اگر نتوانم ادعا کنم ، هزاران ساعت از عمر من طرف WebForm شد، در صدها ساعت شکی وجود ندارد و من به شخصه دوستش داشتم ولی الان دیگر وقت خداحافظی است. در نسخه ۵ از ASP.NET دیگر Webform وجود نخواهد داشت. حتی در VS2015 هم شما میتوانید به کارتون با WebForm ادامه بدهید، ولی باید ورژن ۴٫۶ را انتخاب کنید و اپلیکیشن شما دیگر از قابلیتهای ورژن ۵ که در همین مقاله گفته خواهد شد، بهرهای نخواهد برد. اگر دوست ندارید از این داستان عقب بمانید، کم کم وقتشه که پروژههاتون رو بازنویسی کنید و به MVC کوچ کنید.
با Visual Basic هم خداحافظی کنید
بله درست شنیده اید! در نسخه ۵ و به بالا، دیگر Visual Basic هم وجود ندارد و فقط C# ساپورت خواهد شد. آرزوی ماکروسافت این است که این تغییر خیلی دردناک نباشد. ظاهرا فقط ۲ نفر در جهان از VB برای توسعه MVC استفاده میکنند و خوب طبیعتا اونها هم باید VB را فراموش کنند. به هر حال ظاهرا یک Convertor هم وجود دارد.
3- Tag Helpers
تگ هلپرها یکی از بزرگترین و تاثیر گذارترین ابزارهایی هستند که در ساختن View شما نقش دارند. تگ هلپرها جایگزینهای خوبی هستند تا به جای هلپرهای قدیمی استفاده شوند.
این View را که میتواند یک فرم در یک پروژه باشد بررسی میکنیم :
در این View که در بالا میبینید،
Html.BeginForm(), Html.LabelFor(),Html.TextBoxFor
استفاده میشوند تا فرم ما ساخته شود. این تگها، برای یک طراح HTML و محیط طراحی ما زیاد شناخته شده نیست. حالا پایینی رو نگاه کنید که از Tag Helperها استفاده کرده است.
ببینید، این ورژن فقط حاوی المانهای HTML است. برای مثال، این فرم حاوی INPUT است به جای اینکه Html.TextBoxFor داشته باشد. طراحهای HTML این شکل را بیشتر دوست خواهند داشت. تنها چیزی که در این فرم خاص به نظر میاد، Attribute مخصوص ASP است که سبب میشود این تگها خاصیت Server Side پیدا کنند و قابلیت Tagهای MVC را داشته باشند. به مثالهایی که در لینک زیر هست نگاه کنید، در اینجا فقط از این Tag Helperها استفاده شده است.
این مطلب را مطالعه کنید: HTML5 چیست و چه مزیت هایی دارد؟
4- View Components
با Subcontrollerها خداحافظی کنید و به Viewcomponentها بپردازید. در ورژنهای قبلی شما HTML.Action داشتید تا بتوانید یک Subcontroller را صدا بزنید. برای مثال تصور کنید لازم است یک بنر تبلیغاتی در چند View نمایش داده شود. در این موقعیتها، شما یک Subcontroller خواهید ساخت که حاوی کدهای لازم استخراج محتوای بنر خواهد بود و سپس شما Subcontroller را به وصیله یک HTML.Action درون View صدا خواهید زد.
Subcontollerها – Html.Action دیگر در ورژن بتای MVC6 وجود ندارد و به جای آن یک تکنولوژی جایگزین که View Component نام دارد، وجود دارد. حالا به مثال نگاه کنید تا ببینیم یک View component چگونه یکی از بنرها را بر اساس بازه زمانی لازم در یک روز نمایش خواهد داد.
مثال را با دقت نگاه کنید، اگر ساعت قبل از ۵ بعد از ظهر باشد View component یک Partial که _Advertisement نام دارد را صدا خواهد کرد و شما متن “Buy more coffee!” را خواهید دید و اگر زمان بعد از آن بود شما “Buy more coffee!” را خواهید دید.
این هم محتوای _Advertisement partial
و این هم شکل استفاده از BannerAd View Component در یک MVC View
شباهت زیادی بین ViewComponet و Subcontroller وجود دارد ولی Subcontrollerها اندکی غیر عادی و بدشکل به نظر میآمدند. آنها ظاهرا Controller بودند در صورتی که در واقع این قابلیت را نداشتند. Viewcomponentها طبیعیتر و سادهتر به نظر خواهند آمد.
GruntJS, NPM, and Bower Support -5
این بستر JS هم در MVC5 و MVC6 ساپورت خواهد شد. جهت اطلاعات بیشتر به: http://gruntjs.com/plugins
به دلیل ساپورت تعداد زیادی از بسترهای Javascript و غیره، شاید این قابلیت زیاد هیجان برانگیز نباشد، ولی ظاهرا گروهی از طراحان، به این بستر Javascript علاقه زیادی نشان دادهاند.
6- متحد کردن MVC و WebApi Controller ها
در نسخههای قبلی از ASP.NET MVC، کنترل MVC از کنترل WebApiجدا بود. کنترل MVC کلاس پایه System.Web.MVC.Controller را استفاده میکرد و کنترل وب API با استفاده از کلاس پایه System.Web.Http.ApiController استفاده میشد .
در MVC6 فقط و فقط یک Controller برای هر MVC و WebApi وجود خواهد داشت و هر ۲ از یک کلاس پایه به نام Microsoft.AspNet.Mvc.Controller ارث بری خواهند کرد.
کنترلر MVC6 یک IActionResult باز میگرداند . وقتی MVC controller استفاده شود؛ این IActionResult یک View خواهد بود و اگر Web API controllerاستفاده شده باشد، این IActionResult به صورت Data خواهد بود. مثلا یک لیست از محصولات، یک کنترلر دیگر ممکن است دارای اکشنی باشد که هر ۲ را برگرداند یعنی هم View هم Data .
از لحاظ Routing هم MVC و WebApi از یک Route استفاده میکنند . شما میتوانید از یک convention-based یا یک attribute routes در کل پروژه و برای هر همه کنترلرهای موجود در پروژه به صورت مشترک استفاده نمایید.
7- AngularJs
AngularJS یکی از فریم ورکهای خیلی قوی و معروف است که امروزه بسیار مورد توجه قرار گرفته. مخصوصا که پروژههای SPA میتواند مبتنی بر این بستر به آسانی توسعه یابد. VS2015 دارای امکان ایجاد AngularJS modules, controllers, directives, and factories. درون Templateهای خود میباشد که کار را برای تولید MVC 6 controller مبتنی بر AngularJS $resource و REST بسیار ساده نموده است.
8- ASP.NET Dependency Injection Framework
از مهم ترین تغییرات mvc 6 نسبت به ۵ mvc این است که نسخه ۵ از MVC دارای یک ساپورتر درونی از Dependency Injection درون خود میباشد. همانطور که یک Service locator درونی هم به همراه خود دارد. این بدین معنا است که شما نیازی به استفاده از بسترهای ثالثی مانند Ninject یا AutoFac نخواهید داشت.
این مقاله را بخوانید: چرا ASP MVC؟
فرض کنیم شما یک Interface جدید به نام IRepository بسازید و همراه آن کلاسی به اسم EFRepository که از این اینترفیس، ارث بری کرده است. خوب در این حالت شما میتوانید کلاس رو به اینترفیس Bind کنید و این کار درون متد ConfigureServices از کلاس Startup.cs انجام خواهد شد. بعد از انجام عمل Binding شما میتوانید از یک متد سازنده در Dependency Injection در کنترلر MVC یا شاید دیگر کلاسها استفاده کنید.
در کد بالا، اینترفیس IRepository به متد سازنده Product پاس داده شده است. سیستم درونی MVC در این ورژن عملا EFRepository را به ProductsController پاس خواهد داد زیرا که IRepository به EFRepository بایند شده است.
عملا شما در هر جایی که به HttpContext دسترسی داشته باشید، به هر سرویس ثبت شدهای دسترسی دارید. شما میتوانید از EFRepository به شکلی که در زیر امده استفاده کنید و این یعنی استفاده و بهره برداری از Service Locator pattern .
جمع بندی
در پایان مقاله که درباره تغییرات mvc 6 نسبت به ۵ mvc توضیح داده شده است. برای کسب اطلاعات بیشتر به صفحات دیگرمقالات سایت پرسفید سر بزنید. اگر سوال داشتید در دیدگاه زیر سوال خود را ارائه کنید تا در اولین فرصت پاسخ داده شود. در صورت تمایل جهت دسترسی آسان، اینستاگرام ما را داشته باشید.
21 سال خدمت به بیش از 4600 برند و مجموعه تجاری
اهمیت تبلیغات اتوبوسی در سطح شهر
در این مقاله قصد داریم در مورد مهم ترین ویژگی و اهمیت تبلیغات اتوبوسی صحبت کنیم پس همراه ما باشید: رسانه های محیطی مختلف می توانند در مقاطع زمانی یا محصول و خدمات متفاوت و با توجه به جایگاه بازار کسب و کارها متفاوت باشند. در سال های اخیر شاهد این بوده ایم که تبلیغات […]
نکات مهم بسته بندی
بسته بندی یکی از زیر مجموعههای بازاریابی است که در ایران معنا و مفهوم کالا و بسته بندی و بازاریابی به خوبی جا نیفتاده است . کمتر پدیده ای ارتباطی مانند بسته بندی ، دو ویژگی جاذبهی فردی و اجتماعی را توأمان با خود دارد و از این نقطه نظر ، صنایع بسته بندی در هر کشوری ، نمایندۀ رشد ساختارهای بازاری و تولید آن میباشد .
مزایا و معایب در استفاده از تبلیغات محیطی
وقتی به تبلیغات محیطی فکر میکنید اولین چیزی که به ذهن شما میرسد، چیست؟ برای اکثر مردم، تصویری از یک تابلوی تبلیغاتی بزرگ در امتداد بزرگراه یا یک ساختمان تجاری در شهر به ذهن میرسد. اما تبلیغات محیطی در واقع بسیار فراتر از این بیلبوردهای بزرگ و رنگارنگ است. ایستگاههای اتوبوس، دستگیرههای اتوبوس، بدنه اتوبوسها، […]