یکشنبه , ۳۰ تیر ۱۳۹۸
خانه - دسته‌بندی نشده - مقایسه Asp.Net MVC و Asp.Net Core

مقایسه Asp.Net MVC و Asp.Net Core

Difference Between ASP.NET MVC5 And ASP.NET Core



درسال 2016 مایکروسافت از فریم ورک جدید خود یعنی .Net Core رونمایی کرد. این فریم ورک نسخه جدیدی از فریم ورک قبلی مایکروسافت نبود . بلکه یک فریم ورک کاملا جدید و از صفر نوشته شده بود. در دنیای امروز هر توسعه دهنده ای دوست دارد تا برنامه یا نرم افزار خود را بر پایه بستری پیاده سازی کند که فاکتورهایی نظیر امنیت،انعطلاف پذیری و … را داشته باشد. بنابر این اگر ما علاقه مند به استفاده از .Net Core  هستیم بهتر است قبل از آن کمی درمورد تفاوت های آن با نسخه پیش ، امکاناتی که برای ما فراهم می کند و امکاناتی که از ما می گیرید را بشناسیم. در این مقاله ما در مورد تفاوت ها بحث خواهیم کرد.

چند سکویی بودن

Aps .Net core یک فریم ورک چند سکویی ( cross-platform ) . با استفاده از این فریمورک ما می توانیم آپلیکیشن خود را بر روی هر سیستم عاملی نصب و توسعه دهیم. این سیستم عامل میتواند ویندوز، مک، لینوکس و غیره باشد.

ساختار پروژه کاملا متفاوت

در یک آپلیکیشن Asp.Net Core ساختار پروژه و فولدر بندی ها تغییر کرده اند. از تغییرات اساسی که میتوان به آن اشاره کرد حذف شدن فایل web.config است. این سوال برای ما به وجود می آید که تنظیماتی که در این فایل قابل انجام بود اکنون کجا نوشته می شود.در Asp.Net Core فایلی تحت عنوان appsettings.json به پروژه اضافه شده است که قسمتی از تنظیمات برنامه در آن قرار میگیرد. و همانگونه ک میبینید این فایل به فرمت JSON ارائه شده است. یک پوشه جدید به نام wwroot به پروژه اضافه شده است که نگهدارنده تمامی محتوایی است که به سمت مرورگر ارسال می شود مثل فایل های استاتیک ،تصاویر،فایل های HTMLو فایل های CSS و js. تصویر زیر تفاوت ساختاری پروژه های ASp .net MVC و Apn.net core را نشان می دهد.

عدم وابستگی به IIS

کمی پیش تر گفتیم که این فریم ورک Cross-Platform است و ما می توانیم آن را بغیر از IIS روی سایر وب سرور ها مثل  Nginx, Apache, Docker نصب کنیم. در این حالت وب سرور اصلی (Kestrel) نقش یک وب سرور داخلی را بازی می کند.

نصب و راه اندازی

In case of installation of an associated application that is developed within the .Net framework, it’s perpetually one package installation and conjointly needed some runtime surroundings for the Windows in operating systems. But since .Net Core could be cross-platform, therefore application developed during this framework got to be prepackaged and put in severally for the package. Developers have to compile the Nuget packages including within the .Net Core.


Since .NET Core doesn’t support all the options and functionalities provided by the most recent version of .NET Framework. However, it’s going to be used as a collection of the .NET Framework. Also, .NET Core continues to be compatible with .NET Framework through the .NET traditional Library. Hence, the developers can still run the applications developed with .NET Framework once upgrading to .NET Core.


Both .NET Framework and .NET Core permits developers to require advantage of sturdy category libraries. But .NET Core uses a redesigned common language runtime named as CoreCLR, and choices a customary assortment of libraries named as CoreFX. Hence, the developers have the option to decide and use entirely the libraries required by each application and enhance the application’s performance by removing superfluous libraries.


.NET Framework does not embrace any durable framework or tools to the mobile app development. But .NET Core compatible with Xamarin with the help of the .NET commonplace Library. Hence, developers can make the most of Xamarin to place in writing cross-platform mobile apps in C# with a shared code base with help of same APIs. They’re going to a lot of using the tools provided by Xamarin to customize the mobile app for individual mobile platforms like Android, iOS and Windows Phone.


In case of .Net Core, this framework makes the developer life very easy to develop microservice oriented systems which is too much completed in case of standard .Net Framework. Intrinsically systems embrace a variety of freelance and dynamic microservices, the developers have to be compelled to concentrate on individual microservices. .NET Core permits programmers to develop custom microservices by mistreatment variable programming languages, technologies and frameworks. Also, the developers can build a powerful system by combining multiple microservices seamlessly.


.NET Core is additional sensible than .NET Framework to bolster the performance and quantifiability of applications. It permits developers to bolster the performance of applications drastically whereas not deploying any hardware or infrastructure. Also, it permits developers to create, check and deploy applications directly at the environment of the cloud. Hence, the developers can switch to .NET Core to bolster the performance and quantifiability of their applications whereas not putt overtime and energy.

Source : https://goo.gl/pgjPfm

We can add reference of any assembly, library or any third party package with the help of Nuget Packages. When we run the download of these packages using NuGet Manager Console, all the packages have been downloaded in the Packages folder within the Project folder hierarchy. ASP.NET Core came up with storing all the packages related to its development in Users folder and whereas creating ASP.NET Core applications, Visual Studio will reference them from Users folder. This feature is called Runtime Store for .NET Core a try of presently though you have got around 100 sample ASP.NET Core applications, all of them area unit referencing from dotnet in Users folder that’s almost few MBs entirely.


In case of .Net Frameworks, we mean developers are very much familiar with how to reference a dll or a Nuget Packages in a project or solution using Visual Studio IDE. So, with the help of Visual Studio IDE, we can deploy our applications in operating systems including Windows, Linux or Unit.

Its Server facet management of dependencies. Client-side dependency management is a lot of necessary as a result of client-side has a lot of totally different packages from the server facet. Client aspect will surely have jQuery, Bootstrap, grunt, any JavaScript frameworks like AngularJS, Backbone etc, images, vogue files. Here, “Bower” and “NPM” are the name of two most important open source community for maintaining Client-Side package management as part of the Dependencies.


Dependency Injection (DI) achieves loosely coupled, additional testable code in the applications. In ASP.NET MVC 5/4 or classic ASPX based mostly applications, we tend to use to own separate DI containers used like Unity, AutoFac, StructureMap etc. We had to form up our project to use DI, its additional effort.

In ASP.NET Core applications, dependency injection is inherent i.e. no setup headache for DI. simply produce some services and obtainable to use DI. In the case of sample .Net Core MVC Applications, sample projects always used inherited DI in the code (especially in Startup.cs file). With the help of this files, we can implement any type of configuration like EF, Authentication etc and also implement custom service as we required.

درباره ی محمد لطفی

برنامه نویس و توسعه دهنده .Net هستم. از یادگیری و آموزش لذت می برم. برنامه نویسی رو از دانشگاه شروع کردم و الانم در نیک آموز مهارت های خودم رو توسعه می دم.

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

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