What is ASP.NET Core?
Today, I answer a number of beginner questions about what is .NET 5.0, ASP.NET Core, ASP.NET MVC, ASP.NET, .NET and many others.
Disclosure:
I get commissions for purchases made through links in this post.
UPDATE: This is a recycled, updated post from May of 2016.
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 for ASP.NET MVC, but never really answered reader questions about the who's, what's, and where's of the .NET Platform.
Today, I want to answer some relatively fundamental questions a few readers asked me in the past on how to get started, like what exactly is .NET, 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 .NET?
.NET is a software framework written by Microsoft that runs on various platforms including Windows and Linux.
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 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 are 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 are 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 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 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 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.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 ASP.NET Core?
ASP.NET Core is the next version of ASP.NET. It's a complete rewrite of ASP.NET, it's open-source, cross-platform, and extremely optimized for performance. While the core framework hasn't changed, certain components of ASP.NET were restructured and more streamlined (i.e. Middleware) to improve performance (as noted here).
What is ASP.NET Core 5?
ASP.NET 5 is the next major version after ASP.NET Core. Since the .NET Framework was on 4.x and ASP.NET Core was on version 3.x, Microsoft absorbed the 4.x .NET Framework into Core and settled on a new version of 5.0 for the .NET Platform.
Here's why they decided to go with version 5.
"We skipped version numbers 4.x to avoid confusion with .NET Framework 4.x and we dropped "Core" from the name to emphasize that this is the main implementation of .NET going forward. .NET 5.0 supports more types of apps and more platforms than .NET Core or .NET Framework." - Microsoft
As you can see, the latest name of ASP.NET is called Core 5.0.
But wait, ASP.NET Core 6.0 is coming.
What's the difference between a web site 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.
Web Sites, 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 Web Site 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 web site 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 web site.
An IDE helps in two ways:
- As mentioned, it organizes your files into a manageable project.
- 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. ASP.NET hosting provides a number of options, but the majority of Microsoft web developers are also moving towards Azure for their hosting needs. You could very easily host your website with someone else.
Personally, I host my web sites on GoDaddy (affiliate link) 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 other great ASP.NET hosting sites are:
- DiscountASP.NET (affiliate link) (3 months free)
- HostGator (affiliate link)
- BlueHost (affiliate link)
- WinHost (affiliate link)
- Arvixe
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 (affiliate link) is my primary source for learning since I've been with them for over 5 years personally.
Another great online learning site is Udemy.com. Udemy even has a course for Becoming a Professional Web Developer (affiliate link). They provide a large list of courses with very reputable instructors. I also wrote a beginner's guide for ASP.NET MVC for them.
If you are just starting out with .NET, I would also recommend the best ways to learn C# before digging into ASP.NET MVC or ASP.NET Core.
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 questions do others ask you? Post your comments below.