Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

What Is ASP.NET MVC? (And Other Beginner Questions)

DZone's Guide to

What Is ASP.NET MVC? (And Other Beginner Questions)

Today, I want to answer some relatively fundamental questions a few readers asked me in the past on how to get started, like what is MVC, and other beginner questions.

· Web Dev Zone
Free Resource

Start coding today to experience the powerful engine that drives data application’s development, brought to you in partnership with Qlik.

Ever since I started DanylkoWeb, I've been focused on ASP.NET development specifically targeting MVC.

As I've mentioned before, MVC is quite a breath of fresh air to WebForm developers.

However, I've never discussed the basics of ASP.NET along with MVC. Someone new who visits my site would be quite thrown off by the advanced code I place in my posts. A while ago, I created a terminology guide, but never really answered reader questions about the who's, what's, and where's of ASP.NET MVC.

Today, I want to answer some relatively fundamental questions a few readers asked me in the past on how to get started, like what is MVC and other beginner questions.

NOTE: This post is specifically meant for beginners interested in getting started with ASP.NET and it's related technologies.

What Is MVC?

MVC is an acronym that stands for Model-View-Controller. It's a programming concept originally introduced in the 1970's by Trygve Reenskaug using Smalltalk-76. It's also apparent in some JavaScript frameworks like AngularJS, Aurelia, Ember, and Meteor.

What Is ASP?

ASP stands for Active Server Pages and is Microsoft's web technology introduced in 1996. It was originally called Classic ASP and in 2002, it was transformed into ASP.NET.

What Is .NET?

.NET is a software framework written by Microsoft that runs on various platforms including Windows and Linux.

What Is ASP.NET?

ASP.NET is the successor to the Classic ASP technology (see previous) developed by Microsoft and is broken down into two types of web development: Web Forms (in 2002) and MVC (in 2008). If you want to create ASP.NET websites, it's recommended that you use Microsoft's Visual Studio to optimize your website development.

What Is ASP.NET MVC?

ASP.NET MVC is Microsoft's vision of a Model-View-Controller (MVC) concept integrated into their ASP.NET technology to build modern websites.

What Is ASPX?

ASPX is a file extension that relates to web pages created using Microsoft's Web Forms. An example would be MainPage.aspx. It's comprised of mostly HTML with optional CSS and JavaScript.

What Is ASP.NET Web Forms?

A proprietary technology developed by Microsoft to manage state and form data across multiple web pages. The innate ability of the Internet provides state-less pages. Microsoft created stateful pages by introducing the Web Forms method.

Most Web Form pages have an ASPX file that contains the HTML along with a code-behind (.cs or .vb) file with the same name to attach code to that page.

Based on our example above, our MainPage.aspx would also have a complimentary MainPage.aspx.cs file. In the Web Forms world, you can't have one without the other.

For more information, head to Microsoft's site for a complete explanation of What is Web Forms?

What Is Code-behind?

Code-behind is the C# (or VB.NET) code file that sits behind the ASPX file. It's specifically used with the Web Forms technology and compiles into an assembly or DLL.

The idea is to provide code assisting in the functionality of your specific ASPX web pages.

It's strictly a server-side language and is meant to process code for a particular page on the server and then serve the HTML to the browser.

What's the Difference Between a Website and a Web Application?

A majority of Microsoft web developers are used to the idea of Web Applications because when published, they become compiled, meaning they run faster on the server.

Websites, in Microsoft terms, are sites not compiled at design-time, but only when the page on IIS is requested making the response time slower to serve a page to a user. The next time the same page is requested, it reuses the compiled code.

A Website also doesn't contain a project file to organize your web pages (either a .csproj or .vbproj) where Web Applications use project and solution files (.sln).

For additional differences between a website and a web application, refer to Microsoft's Web Application Projects vs Web Site Projects in Visual Studio.

What Is IIS?

IIS stands for Internet Information Server and is Microsoft's web server to run ASP.NET web sites.

You may also hear the term IIS Express which is a smaller version of IIS for developers to test their code locally in a browser before deploying the application. It ships with Visual Studio.

How Many Versions of ASP.NET Are There?

Currently, there are twelve versions.    
  • Version 1.0 (January 16, 2002)
  • Version 1.1 (April 24, 2003)
  • Version 2.0 (November 7, 2005)
  • Version 3.0 (November 6, 2006)
  • Version 3.5 (November 19, 2007)
  • Version 4.0 (April 12, 2010)
  • Version 4.5 (August 15, 2012)
  • Version 4.5.1 (October 17, 2013)
  • Version 4.5.2 (May 5, 2014)
  • Version 4.6 (July 20, 2015)
  • Version 5.0 RC1 (November 18, 2015)
  • Version 5.0 (June-ish, Q2 2016)

How Do I Create an ASP.NET Web Application? (Or How to Develop a Website Using ASP.NET?)

To create an ASP.NET web application, you need an IDE (Integrated Development Environment) like Visual Studio to organize all of your files for your website.

An IDE helps in two ways:

  1. As mentioned, it organizes your files into a manageable project.
  2. It dramatically enhances your development by adding time-saving features not included in text editors.

An IDE can create a simple boilerplate web application rapidly instead of creating every single file by hand.

Where to Host ASP.NET Websites?

There are way too many to put on this page. The majority of Microsoft web developers are also moving towards Azure for their hosting needs, but you could very easily host your website with someone else.

Personally, I host my web sites on GoDaddy (afflink) and pay less than $10 a month for my "virtual real estate." I've had two issues with them in over 15 years so I can probably cut them some slack. ;-) 

Some of the other great ASP.NET hosting sites are:

Next to Azure, these are the best ASP.NET hosting sites out there.

How Do I Learn ASP.NET?

Blogs and Microsoft's Virtual Academy (free) are probably the best way to learn, but if you are looking for something more, may I recommend PluralSight. 

PluralSight is my primary source for learning since I've been with them for over 2 years personally.

Another great online learning site is Udemy.com. They provide a large list of courses with very reputable instructors. I even wrote a beginner's guide for ASP.NET MVC for them.

NOTE: If you are interested in learning about ASP.NET MVC, I will be offering an ebook to show you how to create a website from scratch using ASP.NET MVC.

Sign up to be notified when the ebook is published.

Conclusion

I hope these basic questions can get you started on your way to learning web development using Microsoft's ASP.NET technology.

If you have any more questions, please post them below and I will add them making this a complete list for the new web developer wanting to learn ASP.NET.

For the veterans out there, did I miss any basic questions? What do some newbie's ask you? Post your comments in the sidebar.   


Create data driven applications in Qlik’s free and easy to use coding environment, brought to you in partnership with Qlik.

Topics:
web forms ,asp.net mvc ,visual studio ,asp.net ,mvc

Published at DZone with permission of Jonathan Danylko, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}