ASP.NET MVC Hosting – What Is The Difference Between ASP.NET MVC 6 and ASP.NET MVC 5?

ASP.NET MVC Hosting

ASP.NET MVC framework can be used for creating great web applications. By dividing an application into the model, the view, and the controller mvc make it easier to manage. MVC is a lightweight framework and integrated with all existing ASP.NET features, such as forms authentication and Windows authentication, URL authorization, membership and roles, output and data caching, session and profile state management, health monitoring, the configuration system, and the provider architecture. MVC design pattern aims to separate content from presentation and data-processing from content. This MVC separation helps you manage complex applications and simplifies group development. i.e. One developer can work on the view, a second developer can work on the controller logic, and a third developer can focus on the business logic in the model.

What Is The Difference Between ASP.NET MVC 6 and ASP.NET MVC 5?

The best way to learn what’s new in any technology is to compare with its previous version. Here will be understanding the difference between ASP.NET MVC 6 and ASP.NET MVC 5 by creating sample application and comparing project solution  structure between them.

Well we have many difference(s) between ASP.NET MVC 6 and ASP.NET MVC 5 in solution structure itself, lets explore them without code been written.

ASP.NET 5 is a lean and composable framework for building web and cloud applications. ASP.NET 5 is fully open source.

Microsoft is bringing up ASP.NET 5 as fully open source framework, they are working very hard to get RC ready very soon.

Quick look of ASP.NET 5 improvements

  • Build and run cross-platform ASP.NET apps on Windows, Mac and Linux
  • Built on .NET Core, which supports true side-by-side app versioning
  • New tooling that simplifies modern Web development
  • Single aligned web stack for Web UI and Web APIs
  • Cloud-ready environment-based configuration
  • Integrated support for creating and using NuGet packages
  • Built-in support for dependency injection
  • Ability to host on IIS or self-host in your own process

Difference between ASP.NET MVC 6 and ASP.NET MVC 5 in 10 points

Firstly create ASP.NET MVC 6 application and ASP.NET MVC 5 using Visual Studio 2015 Community Edition against .NET Framework 6.

Single aligned web stack for MVC 6 and Web APIs

ASP.NET MVC 5 will give us option of choosing MVC or Web API or both while creating web application. It was because web stack for MVC 5 and Web API was not the same.

Project(Solution) Structure Changes

If you see ASP.NET MVC 6 solution explorer on right hand side, there is no Web.config, Global.asax. Then how it deals with configuration settings, authentication and application start specific code execution.

“Project.json”, “Config.json” are some files which does those work of missing files from ASP.NET MVC 5. There are many changes if we examine folder by folder.

ASP.NET MVC 6 targets Full .NET  and .NET Core

We have being working on full .NET framework, it is amazing experience till now and will continue to be. Then what is .NET core?

.NET Core is a cross-platform implementation of .NET that is primarily being driven by ASP.NET 5 workloads.

Oh cross-platform !! Yes, now we can develop ASP.NET MVC 6 or ASP.NET 5 against .NET core/ Full .NET and run in either Windows or Linux or Mac.

ASP.NET MVC 6 doesn’t need IIS for hosting

Don’t get surprised, the goal of ASP.NET 5 is to be cross platform using .NET core framework. With this in mind Microsoft decided to host ASP.NET 5 applications not only on IIS but they can be self hosted or use kestrel web server on linux.

Things are quite in development stages apart from IIS hosting but soon we can host them on any OS.

Check hosting.ini file of sample ASP.NET MVC 6 application, “Microsoft.AspNet.Server.WebListener”  as acts self hosting service.

wwwroot is now place for static files

The wwwroot folder represents the actual root of the web app when running on a web server. Static files like config.json, which are not located in wwwroot will never be accessible, and there is no need to create special rules to block access to sensitive files.

These static files might be plain HTML, Javascript, CSS, images, library etc.

New approach to Server side and client side dependency management of packages.

Any .NET developer would be familiar that References folder holds all DLLs,  Nuget packages for particular .NET Framework, While in ASP.NET 5 development in Visual Studio we can target DNX 4.5.1 and DNX Core 5.0.

Leverage the experience of working in Visual Studio IDE and deploy ASP.NET 5 applications either in Windows, Linux or Mac using DNX Core 5.0. Its Server side management of dependencies.

Client side dependency management is more important because client side has more different packages from server side. Client side will surely have jQuery, Bootstrap, grunt, any Javascript frameworks like AngularJS, Backbone etc, images, style files.

Client side package management in open source community has two great names “Bower” and “NPM”. They are part of “Dependencies”.

Server side packages save space in ASP.NET MVC 6

We have being using NuGet package manager to add reference to assemblies, library, framework or any third party packages. They would have being downloaded from NuGet which creates “Packages” folder in project structure.

30 sample ASP.NET MVC 5 applications, all of them use NuGet packages to reference dependencies each costly approx 70 MB disk space, so we end up nearly using 2GB disk space for storing packages even though they all are same.

Some SMART developers know this issue, they have some work around of their own.

ASP.NET 5 with DNX came up with storing all the packages related to its development in Users folder and while creating ASP.NET 5 applications, Visual Studio will reference them from Users folder.

Now even if you have 100 sample ASP.NET 5 applications, they all are referencing from DNX(4.5.1/ Core 5.0) in Users folder which is near to 400 MB as of now.

Inbuilt Dependency Injection (DI) support for ASP.NET MVC 6

Dependency Injection (DI) achieves loosely coupled, more testable code, its very important because its kind of coding standard.

In ASP.NET MVC 5/4 or classic ASPX based applications, we use to have separate DI containers used like Unity, AutoFac, StructureMap etc,. We had to build up our project to use DI, its additional effort.

Now in ASP.NET 5 or MVC 6 applications, dependency injection is inbuilt i.e. no setup headache for DI. Just create some services and get ready to use DI.

Infact sample MVC 6 application has DI inbuilt in it, lets open “StartUp.cs” and look for “ConfigureServices(IServiceCollection services)” method. Its main purpose is configuration of services like EF, Authentication, adding MVC and hand written custom services like IEmailServer and ISmsSender.

User Secrets of ASP.NET 5

Many times we keep sensitive data during our development work inside project tree, often we mistaken share these secrets with other through sharing of code, accidentally adding it TFS (source control). Once in while we might have experienced this.

ASP.NET 5 based applications have now concept of User Secrets; if we look at “project.json” file, we see that “userSecretsId” is present and Secret Manager tool uses this id to generate user secrets.

The Secret Manager tool provides a more general mechanism to store sensitive data for development work outside
of your project tree.

The Secret Manager tool does not encrypt the stored secrets and should not be treated as a trusted store. It is for development purposes only.

In Memory execution of code files leads to EMPTY BIN folder

This is most important feature shipped with ASP.NET 5 (MVC6) applications. We always had to stop execution so that we can edit code files and run again to reflect changes.

ASP.NET 5 has introduced in memory execution of code so that we don’t stop execution, make changes, build it and run application to see changes.

Without code being written, we will see how in memory code execution leads to EMPTY BIN folder.

Open sample ASP.NET MVC 6 application(if not open), build it and run it. We can see start up screen in our browser. If we go bin folder of this application, its EMPTY. Traditionally we would see DLLs, reference files & DLLS and other files.

ASP.NET 5 application compiled folder is “artifacts” – Folder containing compiled code.

Application start up page can be seen in browser, no compiled code in artifacts folder but still everything works fine. This is magic of IN MEMORY execution of asp.net 5 applications.

Looking for Cheap ASP.NET MVC Hosting?

We always very glad to help you! After make a research to find recommended ASP.NET MVC hosting for your ASP.NET MVC site, finally we choose ASPHostPortal as a winner for this category. Their team always ready to give the best services for their customers. Before that, please feel free to read the reviews about our ASP.NET MVC Hosting provider recommendation.

ASPHostPortal.com is a popular hosting company, who is committed to providing the most affordable world-class Windows ASP.NET hosting solutions for customers. The only focus of ASPHostPortal.com is Windows hosting, so its ASP.NET MVC hosting could come with the latest and stable Windows 2012 / Windows 2008 platform and many other key features.

ASPHostPortal.com is Microsoft No #1 Recommended Windows and ASP.NET Spotlight Hosting Partner in United States. Microsoft presents this award to ASPHostPortal.com for the ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2012, .NET 5/4.6/4.5, ASP.NET MVC 6/5.2/5.1, Silverlight 6 and Visual Studio Lightswitch. Click here for more information.

Rate this post