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.

TechEmpower

Conclusions

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.

Xamarin Now Free for Small Teams

free-mobile-cross-platform-development

Unfortunately in the mobile world there was no consolidation on a single platform like it’s the case with desktop computers where Windows has about 90% of the market. So if you want a desktop app you will either do a Mac app for an exclusive audience of less than 10% of the market, or more often you will target Windows. But who’s doing desktop apps now, right? (full disclosure: I still do!)

Today we are all about cloud and mobile apps and in the mobile world we have Android with 80% of the word-wide market share, but we can’t discount the lucrative audience of iOS at about 15%, and maybe even Windows Phone which is hanging on for dear life at near 3%.

Since the mobile revolution started in 2008 developers were looking for a solution to create their apps for both iOS and Android. Some solutions appeared, including: Xamarin, Qt, PhoneGap, Cordova, Unity3D (for games) and others.

So if you are a desktop developer you will prefer Xamarin/C# or Qt/C++, if you are a web developer you will prefer PhoneGap or Cordova, and if you are a games developer you will prefer Unity3D/C#. So C# has a great presence in the mobile cross platform development world.

Xamarin is a great solution for C# developers and not only, with a great community behind it, but until now it was too expensive for a small team. When I say expensive I mean 1k$ per platform per developer per year. So for a small team of 5 developers building for iOS and Android, Xamarin will set you back with 10k$ per year. Surely, you will not add Windows to that mix for another 5k$ per year, right?

As Miguel de Icaza acknowledged yesterday at the Microsoft Build conference:

Xamarin was a niche product, a product for those that wanted to spend a lot of money on it.

Since Microsoft acquired Xamarin last month it was clear that they will make it more accessible to developers, not because they just love developers but because they really need developers to build apps for their fledgling mobile offering. And if building an app for Windows 10 Mobile from your existing code base is a small investment, then you will be tempted.

This week, at the annual Microsoft Build conference, Xamarin is taking centre stage. Microsoft announced yesterday that the core Xamarin tools are now available as part of the free Visual Studio Community edition, so free for academic use, open source developers, or teams of up to five (concurrent) developers. However, some of the more advanced Xamarin features will only be part of Visual Studio Professional and Enterprise.

The icing on the cake? Microsoft also announced that in the coming months it will make the Xamarin SDK not only open source but open source under the very permissive MIT license! The runtime, libraries and command line tools, will be included in the .NET foundation.

So will the developers abandon Objective-C/Swift and Java in favor of C# or is Microsoft too late to the mobile party? I for one, with 7 different apps already in the App Store, I’m not eager to rewrite all of them in C#, but if I want to port one of them to Android, or I plan to make a new app, it will certainly be C#/Xamarin!

What about you?