تا پایان امشب - بیشترین تخفیف تا امروز (۷۰ و ۸۷ درصد) ویژه حمایت از دانشجویان‌ و کسب‌وکارهای آسیب‌دیده جزئیات

تفاوت Asp.Net Core با Asp.Net MVC 5


تفاوت Asp.Net Core با Asp.Net MVC 5؟

بهترین راه برای یادگیری هر نوع از فن آوری های جدید، مقایسه ی آن با نسخه های قبلی آن است. در این جا به دنبال فهمیدن تفاوت Asp.net core با Asp.net mvc هستیم و سعی می کنیم این کار را با یک برنامه ی نمونه و مقایسه ی ساختاری آن انجام دهیم.

خوب اصولا تفاوت Asp net core با Asp net mvc درموارد بسیاری است که می خواهیم آن را بدون نوشتن کد و با توجه به ساختار مورد بررسی قرار دهیم.

” هسته ی ASP.NET فریم ورک نوشتاری برای ساختن برنامه های تحت وب و ابری می باشد. هسته ی ASP.NET کاملا اپن سورس است. “

کاملا اپن سورس بودن، کار آسانی نیست و مایکروسافت توانسته کار بسیار بزرگی را انجام دهد و این برنامه را در لینوکس و مایکروسافت قابل اجرا نماید.

نگاهی سریع به پیشرفت های ASP.NET CORE

  • ساخت و اجرای برنامه های NET. در بستر های مختلف ویندوز و مک و لینوکس
  • ساختن برنامه بر روی هسته ی NET. که ارائه ی فایل ها با پسوند های مختلف را امکان پذیر می نماید.
  • ابزار های جدید برای توسعه ی مدرن تحت وب
  • یک بسته ی مشترک برای API ها و MVC
  • پیکر بندی بر مبنای محیط های ابری
  • پشتیبانی کامل برای ساخت و استفاده از پکیج های NuGet
  • پشتیبانی داخلی از کد نویسی و کد گذاری مستقل
  • توانایی هاستینگ IIS در خود برنامه

تفاوت شماره ی 1 یک بسته ی مشترک برای API های تحت وب و MVC  در ASP.NET

ASP.NET MVC 5 به شما این گزینه را می دهد که API  تحت وب خود و یا MVC و یا هر دو را در هنگام توسعه ی یک برنامه تحت وب انتخاب کنید. این بدان خاطر است که بین API  و MVC 5 اختلاف بود.

ASP.NET Core MVC، در حال حاضر یک Web Stack را برای MVC و Web API پیکر بندی کرده است. تصویر زیر نشان دهنده Checkbox های خاکستری شده برای MVC و WEB API است، در حالی که MVC 5 گزینه ای برای افزودن API Web را می دهد.

تفاوت Asp.Net Core با Asp.Net MVC 5

تفاوت شماری 2 –  تغییرات ساختاری در پروژه

اگر شما مرور گر پروژه ی ASP.NET را در سمت راست دیده باشید می دانید که Web.config ،Global ،asax در  آن وجود ندارد. پس چه طوری با تنظیمات پیکر بندی و کد های مرتبط با شروع برنامه و ورود به برنامه کار می کند؟

Aspsetting.json و یک سری فایل های مخصوص پیکر بندی وجود دارند که این کار را در نبود فایل های نخسه ی 5 انجام می دهند.  اگر شما شاخه به شاخه بررسی کنید تغییرات زیادی قابل رویت هستند.

تفاوت Asp.Net Core با Asp.Net MVC 5

تفاوت شماره ی 3 –  .NET ، ASP. و NET. CORE را به طور کامل در خود جای داده است.

تا به حال با چارچوب NET. کار کرده ایم و از آن بدت برده ایم پس هسته ی NET. دیگر چیست ؟

” Asp.Net Core یک فریم ورک کد نویسی عمومی است که ویندوز، لینوکس و مک را پشتیبانی می کند و در همه ی آن ها قابل اجرا است”

پس حالا می توانیم برنامه های تحت وب و قابل اجرا در مک و ویندوز داشته باشیم. Asp.Net Core در مک یا در ویندوز قابل اجرا بود.

تازه هنوز تمام نشده، حتی در لینوکس و مک هم می توان با کمک visual studio code یا هر ویرایشگر دیگری مثل Vim ،Atom و Sublime کد نویسی کرد.

تفاوت شماره ی 4 – هسته ی ASP.NET  نیازی به IIS برای هاستینگ ندارد.

تعجب نکنید، Asp.Net Core این بوده که برای بستر های مختلف قابل اجرا باشد. با این هدف مایکروسافت تلاش کرده تا برنامه های هسته ی APP.NET نیازی به IIS برای میزبانی نداشته باشند و در لینوکس دیگر نیازی به Nginx نباشد. برای درخواست اجرا در اینترنت از سرور Kestrel  استفاده می شود.

تفاوت شماره ی 5 شاخه ی wwwroot  برای فایل های استاتیک

این شاخه همان شاخه ی اصلی برنامه های تحت وب  در زمانی که در سرور اینترنت اجرا می شوند می باشد. فایل های استاتیک مثل Config.json  که در شاخه ی wwwroot نباشند هیچ گاه قابل دسترسی نخواهند بود و نیازی به تعریف قوانین جدیدی برای محدودیت دسترسی به فایل های حساس نیست.

این فایل های استاتیک ممکن است فایل کتابخانه ای، تصویر، css، جاوا اسکریپت، html و … باشند.

هسته ASP.NET

به علاوه ی این ویژگی های امنیتی شاخه ی wwwroot  کار های جامع مثل معادل سازی و جمع  بندی را ساده می کند که می توان آن ها را به سادگی با استفاده از ابزار هایی مثل Grunt در کد نویسی قرار داد.

نام wwroot را می توان در project.json زیر قسمت Demwwroot تعویض نمود.

تفاوت شماره ی 6 رویکردی جدید در برنامه نویسی سروری و کلاینت با کمک مدیریت وابستگی پکیج ها

هر برنامه نویس ASP.NET با شاخه ی References آشناست که تمامی DLL ها را در خود جای داده و پکیج های NuGet آشنا است.

مدیریت وابستگی پکیچ ها در سمت کلاینت مهم تر است چون نسبت به سمت سرور پیکج های بیشتری دارد. سمت کلاینت شما jQuery ،Bootstrap ،grunt و فریم ورک های جاوا مثل AngularJS ،Backbone و فایل های تصویری  و غیره خواهد بود.

مدیریت سمت کلاینت در جامعه ی اپن سورس با نام های Bower ،NPM شناخته می شود . این ها بخشی از ” وابستگی ها ” هستند.

تفاوت Asp.Net Core با Asp.Net MVC 5

تفاوت شماره ی 7 پکیج های سمت سرور درAsp.Net Core فضای کم تری اشغال می کنند.

از ابزار مدیریت پکیج NuGet برای اضافه کردن منبع اسمبلی ها، کتابخانه ها، فریم ورک ها و سایر پکیج هایی که از برنامه های دیگر گرفته می شوند استفاده می کردیم.

مثلا برای 30 برنامه که همه از پکیج های NuGet استفاده می کردند و هر کدام 70 مگ فضا ذخیره می گرفتند حدود 2 گیگ فضای  خالی لازم بود.

پس برنامه نویسان هوشمند به فکری چاره ای برای این مشکل شدند. حالا حتی اگر شما 100 برنامه ی نمونه در هسته ی Asp.net داشته باشید می توانید با کمک NET. همه ی آن ها را با فضای کمی ذخیره کنید.

تفاوت شماره ی 8 – DI یا وارد کردن کد های داخلی، این ویژگی در Asp.Net Core پشتیبانی می شود.

آرشیو های DI  در خود، کد هایی غیر مشترک و قابل تست را ذخیره می کنند که این کار برای بررسی واحد های کد های نوشته شده بسیار مهم است.

در برنامه های سنتی ASP.NET باید از DI های مجزایی مثل Unity و AutoFac استفاده می کردیم. باید پروژه ای جداگانه برای استفاده از DI ها می نوشتیم که کار اضافی بود.

حالا در  برنامه های Asp.Net Core این DI ها باز نویسی شده و سرویس هایی برای استفاده و ایجاد آن ها در   نسخه ی جدید فراهم شده اند.

در حقیقت برنامه ی MVC یک DI درون خود دارد. بیایید Startup.cs را باز کنیم و به دنبال configurationservice برویم. هدف اصلی آن پیکر بندی خدماتی مثل EFU، ورود به سیستم با رمز، اضافه کردن MVC و سرویس های دستی دیگری شبیه ISmsSender ،IEmailServer می باشد.

تفاوت Asp.Net Core با Asp.Net MVC 5

تفاوت شماره ی 9 – راز های کاربری در Asp.Net Core

خیلی وقت ها داده های حساس خود را در زیر مجموعه ی پروژه قرار می دهیم و به اشتباه با سایر کد ها آنها را منتشر می کنیم و به آن ها TFS اضافه می کنیم .همه ی ما با این مشکل برخورد داشته ایم. Asp.Net Core هم اکنون مفهمومی به نام راز های کاربری دارد.

Secret manager مکانیزمی جامع ارائه می کند که می توان داده های حساس را خارج از کد نویسی ذخیره نمود. ” ابزار secret manager داده های حساس شما را رمز گذاری و از آن ها به شکل داده های محافظت شده نگه داری نمی کند. این ابزار فقط برای کد نویسی مورد استفاده قرار می گیرد.”

نتیجه گیری :

تفاوت های زیادی درمقایسه با نسخه های قبلی ASP.NET MVC را بدون حتی نوشتن یک کد نشان دادیم که این گویای تلاش زیاد مایکروسافت برای اپن سورس شدن سیستم های خود می باشد

نظرات کاربران

دیدگاهتان را بنویسید

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

نوشته های دیگر در دسته بندی مقالات آموزشی

ایندکس مطالب با سرعتی باور نکردنی

آموزش سرعت بخشیدن به ایندکس شدن مطالب در کوتاه ترین زمان

10سوال برتر وب سایت کورا

معرفی 10 سوال برتر برنامه نویسی از وب سایت محبوب و مطرح کورا (Quora)

بهترین فریم ورک های PHP در سال ۲۰۱۸

معرفی بهترین و پر طرفدار ترین فریم ورک های زبان برنامه نویسی PHP