تفاوت asp.net core و asp.net mvc

تفاوت asp.net core و asp.net mvc
تاریخ بروزرسانی : 02 خرداد 1398 | تعداد بازدید : 3109 | زمان خواندن مقاله : 5
ASP.NET،

در این مقاله قصد داریم هر دو تکنولوژی Asp.Net mvc  و Asp.net core را مورد مطالعه و بررسی قرار دهیم. با وجود اینکه هر دو تکنولوژی جدید هستند به نظر می رسد بهترین روش برای یادگیری هر آنچه در این تکنولوژی های جدید وجود دارد مقایسه با نسخه قبلی آن است. با ما همراه باشید.

قبل از آنکه بخواهم مطلب را شرح دهم، می خواهم شما عزیزان را با آموزش asp.net mvc آشنا کنم، در این دوره جامع شما می توانید یک پروژه خبری را از صفر پیاده سازی کنید و مزیت این دوره آن است که شما عزیزان بعد از آموزش دیدن می توانید به صورت عملی شروع کنید و پا به پای مهندس عباسی کد نویسی کنید و پروژه خبری را پیاده سازی کنید.

خب بریم که به مطلب امروزمون بپردازم.

تفاوت های زیاد و قابل توجهی بین این دو تکنولوژی در ساختار راه حل و برنامه نویسی وجود دارد.

Asp.net core یک چهارچوب سازنده برای ایجاد و طراحی صفحات وب است و یک منبع کاملا Open Source است. اینکه یک تکنولوژی کاملا Open Source  باشد کار ساده و پیش پا افتاده ای نیست. مایکروسافت کارهای شگفت انگیزی انجام داده تا بتواند درحوضه ساخت صفحات وب حرفی برای گفتن  داشته باشد.

آموزش سی شارپ

نگاهی سریع به پیشرفت های asp.net core

  1. دارای قابلیت کراس پلت فرم(Cross Platform): این ویژگی باعث شد تا برنامه هایی که با این نکنولوژی ایجاد می شوند به راحتی روی هر پلت فرم و سیستم عاملی اجرا شوند.
  2. این تکنولوژی به عنوان یک ابزار جدید برای طراحی سایت و توسعه صفحات وب شناخته شده است.
  3. قابلیت میزبانی IIS
  4. پشتیبانی مجتمع برای ایجاد و استفاده  از nuget
  5. پشتیبانی از تزریق وابستگی

حال می خواهیم تفاوت این دو را با استفاده از ایجاد یک برنامه در هر دو حالت بررسی کنیم. با ما همراه باشید.

1-پشته وب یکسان برای ASP.NET Core MVC و API های وب

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

ASP.NET Core MVC در حال حاضر دارای پشته ی وب یکسان برای MVC و Web API است. تصویر زیر پنجره ای را نشان می دهد که مربوط به MVC و Web API GREYED است در حالی که MVC 5 گزینه ای برای افزودن API Web را می دهد.

زبان برنامه نویسی ASP.NET

2-تغییرات ساختار پروژه (project solotion):

اگر به تصاویر زیر دقت کنید متوجه می شود که در ASP.Net MVC Core فایل های Web.config, Global.asax وجود ندارند. کلیه تنظیمات فایل ها (به جای این فایل ها) در فایلی به نام  appsettings.json  قرار می گیرند که توسط فایل Startup فراخوانی می شوند. اگر به فولدر پروژه ها نگاه کنیم متوجه تغییرات زیادی می شویم.

3-ویژگی Cross-Platform :

یکی از جالب ترین ویژگی هایی که در تکنولوژی Asp.net Core مورد توجه برنامه نویسان طراحی سایت قرار گرفته ویژگی Cross-Platform است.  با وجود این ویژگی در این نسخه از .Net به راحتی می توان برنامه هایی که تولید می شوند را در هر سیستم عاملی ازجمله ویندوز، لینوکس، مک(mac) اجرا کرد و همچنین می تواند به راحتی روی انواع سخت افزارها و در صنعت IOT مورد استفاده قرار بگیرد.

4–عدم وابستگی به استفاده از میزبان IIS :

با توجه به اینکه Asp.Net Core دارای ویژگی چندمنظوره یا همان Cross Platform است مایکروسافت تصمیم گرفت که نه تنها از IIS استفاده کند بلکه از سرور وب لینوکس بتواند به عنوان میزبان استفاده کند. در حال حاضر Kestrel یک میزبان وب داخلی برای پردازش درخواست ها خواهد بود.

 

پیشنهاد ویژه: دوره داریم اونم چه دوره ای!!! با دیدن دوره آموزش سی شارپ پیشرفته شما می توانید تمامی مفاهیم پیشرفته سی شارپ را یک جا قورت دهید.

 

5-پوشه wwwroot برای فایل های استاتیک

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

این فایل های استاتیک ممکن است شاما مواردی چون فایل های ساده HTML، جاوا اسکریپت، CSS، تصاویر، کتابخانه و غیره باشند.

علاوه بر مزایای امنیتی، پوشه wwwroot همچنین وظایف رایج مانند بسته بندی و مینی سازی را ساده می کند که اکنون می تواند به آسانی در فرآیند ساخت استاندارد و ابزارهای خودکار استفاده مانند Grunt ادغام شود . نام پوشه "wwwroot" نیز می تواند تغییر کند.

Asp.Net core and Asp.net5

 

 

6-رویکرد جدید به سمت سرور و سمت سرویس گیرنده وابستگی مدیریت بسته ها

هر برنامه نویس .Net می داند که پوشه Refrence حاوی فایل های DLL, Nuget است. بنابراین مدیریت سرور سمت Clinte مهم تر است چون سمت سرویس گیرنده دارای بسته های متفاوت تر و بیشتری از سمت سرور است.

سم کلاینت معمولا دارای فایل های بیشتری مانند bootstrap, javascript, Angular JS,CSS و فایل های تصویری است. بنابراین مدیریت بسته های سمت کلاینت در تکنولوژی های Open source با دو نام شناخته می شوند: LibMan,NPM که هر دو این ها بخشی از وابستگی ها هستند.

7–صرفه جویی در مصرف حافظه سمت سرور در ASP.NET Core:

در این تکنولوژی از مدیریت بسته های Nuget استفاده شده تا بتواند یک مرجع را به کتابخانه یا چهرچوب (Framework)  اضافه کند.

30 نمونه از برنامه های    Asp.net وجود دارند که در همه آنها از بسته های NuGet برای ارجاع وابستگی ها استفاده می کنند که تقریبا 70 مگابایت فضای دیسک را استفاده می کنند. برخی از توسعه دهندگان SMART این مسئله را می دانند، و برخی از راه حل های خود را دارند.

Asp.Net Core تمام این بسته ها را در پوشه Users قرار می دهد و ویژیوال استادیو برای اجرای برنامه های کاربردی خود بسته ها را از پوشه Users ارجاع می دهد. این ویژگی در .Net Core با نام   Runtime Store   شناخته می شود.