تفاوت بین ASP.net MVC 6 و ASP.net MVC 5
شنبه 7 آذر 1394بهترین راه برای یادگیری هر چیز جدید در یک تکنولوژی مقایسه با ورژن قبلی آن است. در این مقاله تفاوت میان ASP.net 6 و ASP.net 5 را بوسیله ارائه یک مثال و مقایسه معماری Solution آنها خواهیم فهمید.
بهترین راه برای یادگیری هر چیز جدید در یک تکنولوژی مقایسه با ورژن قبلی آن است. در این مقاله تفاوت میان ASP.net 6 و ASP.net 5 را بوسیله ارائه یک مثال و مقایسه معماری Solution آنها خواهیم فهمید.
در مقاله قبل درباره ASP.net 5 بحث کردیم. اکنون به بررسی تفاوت های آن با ASP.net MVC 6 می پردازیم.
در ابتدا یک برنامه با استفاده از ASP.net MVC 6 و یکی با ASP.net MVC 5 ایجاد میکنیم.
تفاوت اول - پشته های وب
ASP.net MVC 5 گزینه هایی برای انتخاب MVC یا Web API یا هر دو هنگام ایجاد یک برنامه به ما می دهد.
ASP.net MVC6 دارای یک پشته وب هم راستا برای MVC 6 و Web API است .تصویر زیر نشان می دهد CheckBox ها برای MVC و Web API غیر فعال هستند در حالیکه در MVC 5 گزینه ای برای اضافه کردن Web API داشت .
تفاوت دوم - تغییرات ساختاری Solution explorer
اگر به MVC 6 نگاهی بیاندازید ، در Solution explorer فایلهای Web.config و Global.asax را نمیبینید. پس چگونه تنظیمات پیکربندی ، احراز هویت و اجرای کدهای خاص شروع برنامه انجام می شود؟ Project.json و Config.json فایلهایی هیتند که برای انجام این کارها تعبیه شده اند.
تفاوت سوم - Full.NET و NET Core.
full.NET تجربه شگفت انگیزی است که تا به حال بوده و ادامه خواهد داشت.
NET Core. یک پیاده سازی Cross-platform از NET. است .
اکنون می توانیم ASP.Net MVC 6 یا ASP.Net MVC 5 را در مقابل NET Core / full .Net گسترش دهیم و هم در Windows و هم در Linux یا Mac اجرا کنیم. علاوه بر Windows در Linux و Mac هم می توان با استفاده از Visual Studio Code برنامه نویسی کرد.
تفاوت چهارم - ASP.Net MVC 6 نیازی به IIS برای میزبانی ندارد
هدف اصلی ASP.NET 5 استفاده از چهارچوب NET Core. بوده است . با در نظر داشتن این قضیه مایکروسافت تصمیم گرفت برنامه های ASP.NET 5 بتوانند نه تنها بر روی IIS میزبانی شوند بلکه بتوانند خود میزبان باشند یا از Kestrel Web Server در لینوکس استفاده کنند.
تفاوت پنجم - wwwroot برای فایلهای استاتیک
پوشه wwwroot ریشه واقعی Web application ها را هنگام اجرا بر روی وب سرور ارائه می دهد. قایلهای استاتیکی مانند config.json که در wwwroot قرار ندارند، هیچگاه قابل دسترس نخواهند بود، و نیازی به ایجاد قوانین جدید برای جلوگیری از دسترسی به فایلهای حساس نخواهد بود.
فایلهای استاتیک میتوانند HTML ,JavaScript , CSS, تصاویر و کتابخانه ها و ... باشند.
علاوه بر مزایای امنیتی ، wwwroot کارهای معمولی مانند bundling و minification را بسیار ساده کرده است، که به آسانی می تواند در یک روند ساخت استاندارد ترکیب شود که از ابزاری مانند Grunt به صورت خودکار استفاده میکند.
تفاوت ششم - رویکرد جدید در مدیریت وابستگی های سمت سرور و سمت سرویس گیرنده
هر برنامه نویس NET. با پوشه مرجع ها که dll ها و NuGet ها را نگهداری میکند آشنایی دارد. در ASP.NET 5 می توانیم DNX 4.5.1 و DNX core 5.0 را هدف قرار دهیم.
تجربه کار در Visual studio و توسعه برنامه های ASP.Net 5 در Windows tLinux و Mac با استفاده از DNX core 5.0 مدیریت وابستگی های سمت سرور است.
مدیریت وابستگی های سمت مشتری بسیار مهم تر است زیرا سمت مشتری بسته های مختلف بیشتری نسبت به سمت سرور دارد . سمت مشتری مطمئنا jQuery, bootstrap,grunt, و چهارچوب های جاوا مانند Angular JS , Backbone و ... و تصاویر و فایلهای استایل دارد .
مدیریت بسته های سمت مشتری متن باز را دو نام بزرگ Bower و NPM در دست دارند که بخشی از وابستگی می باشند.
تفاوت هفتم - فضای اشغال شده توسط بسته های سمت سرور در ASP.NET MVC 6
ما از NuGet pakage manager برای اضافه کردن مرجع ها به assemblies ، کتابخانه ها و چهار چوب ها و هر بسته دیگری استفاده میکنیم. که از NuGet دانلود می شود و یک پوشه Pakage در ساختار پروژه ایجاد میکند.
30 نمونه برنامه در ASP.Net MVC 5 در نظر بگیرید که همه آنها از NuGet برای مرجع وابستگی ها استفاده میکنند که هرکدام 70 MB فضا اشغال میکند پس در پایان حدود 2 GB فضا برای ذخیره کردن این مرجع ها اشغال شده است که همگی همانند می باشند.
ASP.NET 5 با DNX برای ذخیره کردن همه بسته ها مربوط به توسعه آن در پوشه Users به کمک آمد . هنگام ایجاد یک برنامه در ASP.NET 5 ، ویژوال استودیو آنها را از پوشه Users مرجع قرار خواهد داد.
اکنون اگر 100 برنامه هم داشته باشید همه آنها از DNX در پوشه Users مرجع خواهند گرفت که حدود 400 MB فضا اشغال میکند.
تفاوت هشتم - پشتیبانی تزریق وابستگی های inbuilt در ASP.NET MVC 6
در ASP.NET MVC 5/4 یا برنامه های بر پایه ASPX کلاسیک ، باید از تزریق وابستگی های جداگانه مانند Unity ,AutoFac,StructureMap و ... استفاده می شد. باید پروژه را برای استفاده از تزریق وابستگی ها می ساختیم.
اکنون در برنامه های ASP.NET 5 یا MVC 6 تزریق وابستگی ها به صورت inbuilt انجام میشود ، فقط کافی است سرویسی ایجاد شود سپس می توانید از تزریق وابستگی ها استفاده کنید.
در نمونه زیر هدف متد ConfigureServices(IServiceCollection services) پیکربندی سرویس مانند EF ، احراز هویت ، اضافه کردن MVC و نوشتن کد سفارشی سرویس مانند IEmailServer و ISmsSender است.
تفاوت نهم - اسرار کاربر در ASP.Net 5
خیلی وقتها داده های حساس را درون درخت پروزه خود نگهداری میکنیم. اغلب به اشتباه این اطلاعات از طریق اشتراک گذاری کدها و ... به اشتراک گذاشته می شوند .
برنامه های ASP.NET 5 شامل یک محتوایی از User Secret می شود . اگر به Project.json نگاهی بیاندازید UserSecretId را مشاهده میکنید که ابزار Secret manager به آن برای تولید user secret کمک میکند.
secret Manager یک مکانیزم عمومی برای ذخیره کردن داده های حساس فراهم میکند.
تفاوت دهم - اجرای درون حافظه ای کدها منجر به ایجاد یک فایل Bin خالی
امکان مهمی که با ASP.Net 5 فراهم شد اجرای درون حافظه ای فایل ها بود. همیشه باید اجرا را برای ویرایش متوقف میکردیم و پس از انجام تغییرات برای مشاهده آنها دوباره برنامه را اجرا میکردیم .
ASP.NET 5 اجرای درون حافظه ای کد ها را معرفی کرد که بدون متوقف کردن برنامه در حال اجرا بتوان تغییرات را ایجاد کرد.
بدون نوشتن هیچ کدی ، اجرای درون حافظه ای منجر به ایجاد فایل bin خالی می شود.
حتی اگر هیچ کدی وارد نشده باشد همه چیز به درستی کار میکند و صفحه راه انداز برنامه را می توان در مرورگر دید.
- ASP.net MVC
- 5k بازدید
- 12 تشکر