Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.
I’ve been wanting to create a ASP.NET Core Overview and series of blog posts on ASP.NET Core, but due to the number of betas and changes that came with those, I decided to hold off.
Although ASP.NET at the time of this post is still at RC1 (update 1) and not RTM yet, there likely may be some naming changes. Still, I think we are at a stable enough point where you can take this series and get a good feeling about where ASP.NET currently stands and how you get started writing your own apps.
This series will focus on development of ASP.NET Core applications using:
ASP.NET Core is a new open-source and cross-platform framework for developing web applications in .NET. It is a totally new version of ASP.NET built from the ground up.
Getting things straight
Before we jump to installation and getting a new project setup, I think it’s important to define some the pieces to the puzzle, as I was pretty confused early on. Even if you are familiar with ASP.NET 4 and are using MVC or WebAPI now, a lot has changed.
.NET Execution Environment (DNX)
The DNX is a SDK and Runtime environment that enables you to build and run .NET applications cross platform (Windows, Linux, and Mac). It does so by providing a standard execution environment across different flavors of .NET. Flavors? Yes. Flavors.
If you are primarily currently running and developing in Windows, then you are using the full “.NET Framework”. However, you can also target Mono or .NET Core
is an open source port of the .NET Framework sponsored by Xamarin
. Beyond the runtime environment supported by the DNX, it also includes a C# complier and Base Class Libraries compatible with the full .NET Framework.
Similar to Mono, this is a new open source runtime (CoreCLR) and libraries (CoreFX) that is cross platform. The main benefit to .NET Core because of its modularity, is the ability to deploy and run a .NET Core application on a target host without the need to have the .NET Framework installed. This also allows you to run different applications targeting different runtimes on the same host side by side.
I do believe there has been a bigger push by Microsoft and the community (hence this post) to reach out to developers that live in other ecosystems to advocate the use of .NET and ASP.NET Core.
With Visual Studio Code and Omnisharp, there is now a legitimate effort being put forward to create cross platform tooling outside of Windows where you can developg .NET and ASP.NET Core applications.
There is also a lot of effort being put into giving developers a incredibly easy path to being developing using ASP.NET Core applications.
Previously, if you were going to write an application in .NET, you had almost no options. Your tooling was forced to Windows and Visual Studio. This is no longer becoming the case. It seems the new motto is build anywhere, run anywhere.
Next post will be taking a look at DNX a bit more in detail, how to install, and how to create a new DNX Project.