Tag Archives: Roslyn

Why You Should Learn ASP.NET Core

1. It’s Future Proof

.Net Core is a paradigm shift for Microsoft, a huge change from the closed approach that many programmers loved to hate, to a completely open source world.

Is this the future for Microsoft? Sure Microsoft says so, but they also said the same about Silverlight and we all know how that ended up!

.Net Core is not Silverlight, going open source (under the very permissive MIT license) with their development stack it’s a monumental change with no going back because Microsoft is making a move that it should have done many years ago. All competing development stacks are open source so this is the only way for Microsoft to compete: Python, PHP, Ruby, Java, you name it.

But why would Microsoft go open source when there is no money to make there? Sure there is, the war is now waged between AWS, Azure, Compute  Engine and Softlayer as the backbone of the Internet. Azure was limited by the closed nature of ASP.NET (although it can run Linux) and by the deep seated anti-Microsoft sentiment in the web developer community. Open sourcing their development stack will solve the first problem and will go a long way solving the second.

2. It’s a Fresh Start

The original ASP.NET was released in 2002 and since then it has received a lot of updates and in the process it has become a very complex web application framework.

There is a time when incremental updates won’t do it so you need to start from scratch. ASP.NET Core is just that, a fresh start and a big improvement. By starting fresh it doesn’t have to support all the old technologies from a decade ago so it will be slimmer by only support the modern technologies like MVC.

Here is what ASP.NET Core brings to the table:

  1. Open source. A complete open source stack with a new compiler called Roslyn (built in C#), and a new web server called Kestrel;
  2. Native support for Linux and Mac alongside Windows. ASP.NET Core has been rebuilt from scratch with cross-platform as a priority so Linux and Mac are not second class citizens;
  3. Modular design. The entire ASP.NET Core is a modular framework distributed as NuGet packages;
  4. Combined application model. ASP.NET MVC, Web API, SignalR and Web Pages are merged into one framework, called MVC 6.
  5. Speed. ASP.NET Core is JIT compiled and not interpreted like most other web languages.

3. It’s Built for Speed

Most web languages and frameworks like PHP, Python, Ruby, Node.js are interpreted and not compiled. ASP.NET Core on the other hand is compiled just in time (JIT) which means that it would be compiled at the first run and afterwards executed with the speed of a machine compiled program (similar to a C++ program).

Even more, a JIT compiled language has advantages over a compiled language like C++ because it’s compiled at run time on a specific machine taking advantage of the machine’s architecture (CPU).

It’s still early days but the team behind ASP.NET Core has made speed a priority and they are making progress fast:

ASP.NET Core is now wicked sick fast at the fundamentals and is improving in our other tests. Oh, and of course we’re running it on Linux.



So there you have it. A modern web framework, open source, and focused on speed.

Sure it doesn’t have a big ecosystem and the ASP.NET libraries are just now being ported to ASP.NET Core but a lot of functionality is already baked in by Microsoft unlike other frameworks like Node.js where you have to rely on third-party libraries.

So if you are starting fresh you can’t go too wrong with ASP.NET Core but if you are porting an older ASP.NET project you need to check-out the dependencies first.