Started to learn MVC and WebAPI from scratch, have been working with non-web stuffs (mostly protocols and win-service) for a very long time and just want to get my head around with the Modern Microsoft way to do web stuffs using ASP.NET MVC and / or WebAPI.
So I decided to add my learning notes here as Modern ASP.NET (MAN - slug) blog post series so it can help other starters to jingle and mingle with web using ASP.NET MVC and / or WebAPI.
Current version of ASP.NET MVC is 5.1 and ASP.NET WebAPI is 2.1
So to answer my own question:
What makes the base for any ASP.NET MVC, ASP.NET WebAPI web application and what code base it stands on?
ASP.NET MVC 5.1
I created a new ASP.NET project from Visual studio (.NET 4.5.1) and used "Empty" as template and MVC (checked) for "Add folders and core references for", "No Authentication" and un-checked for "Host in the cloud" - Create / OK.
Navigate to "Manage NuGet" > "Installed packages" - you will see four packages referenced.
- Microsoft.Web.Infrastructure - 1 library
Microsoft.Web.Infrastructure.dll
- Microsoft ASP.NET Razor - 1 library
System.Web.Razor.dll
- Microsoft ASP.NET Web Pages (depends on 1 and 2) - 4 libraries
System.Web.Helpers.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll
System.Web.WebPages.Deployment.dll
and someweb.config
settings. - Microsoft ASP.NET MVC (depends on 2 and 3) - 1 library
System.Web.Mvc.dll
and someweb.config
settings.
So to enable MVC in your web application project template, minimum these four building block packages are required.
ASP.NET WebAPI 2.1
I created a new ASP.NET project from Visual studio (.NET 4.5.1) and used "Empty" as template and WebAPI (checked) for "Add folders and core references for", "No Authentication" and un-checked for "Host in the cloud" - Create / OK.
Navigate to "Manage NuGet" > "Installed packages" - you will see five packages referenced.
- Json.NET - 1 library
Newtonsoft.Json.dll
- Microsoft ASP.NET Web API 2.1 Client Libraries (depends on 1) - 1 library
System.Net.Http.Formatting.dll
- Microsoft ASP.NET Web API 2.1 Core Libraries (depends on 2) - 1 library
System.Web.Http.dll
and someweb.config
settings. - Microsoft ASP.NET Web API 2.1 Web Host (depends on 3) - 1 library
System.Web.Http.WebHost.dll
. - Microsoft ASP.NET Web API 2.1 (depends on 4) - no library - wrapper packages
So to enable WebAPI (which is the new way of doing the RESTFUL service) in your web application project template, minimum these five building block packages are required.
All libraries referenced in ASP.NET WebAPI project contains version 5.1.. and still ASP.NET WebAPI is called ASP.NET WebAPI 2.1 - Explained here why?.