Microsoft’s wilderness is very interesting. No wonder many are interested in developing applications ranging from desktop, game, mobile, robotics, to the web. Especially for the web world, many want to create web applications using a technology called ASP.NET and ASP.NET MVC. The programming language used is usually Visual Basic or C #.
But unfortunately, to create applications with this technology does require a lot of effort, starting from buying Windows licenses, Visual Studio licenses, and other supporting software to building applications in the wilderness of Microsoft. Of course this is easy if the license has been paid by the company.
Of course, this makes OSX and Linux users especially BSD unable to taste the sweetness of ASP.NET which can only be used on Windows. What’s more, after deploy, it can only be installed on Windows Server with IIS.
However, in recent years, it seems that Microsoft has begun to pay attention to making ASP.NET, ASP.NET MVC, and other Microsoft technologies to make applications more open source and cross platform.
ASP.NET Core Short Story
At first C#, started open source, but under a different machine with. NET usually, namely Mono. Mono itself was developed by Miguel De Icaza, one of the founders of the GNOME Desktop Environment and also the Co-Founder of Xamarin. At that time Mono had a number of features compatible with .NET such as ASP over Mono, and Moonlight which was similar to Silverlight. It was quite unique at that time where ASP could be hosted on non-Microsoft places such as Linux and other Unixes, it could also be hosted on the Apache Web Server.
Because of its great existence, Mono began to be noticed by Microsoft, especially when Miguel created something great called Xamarin. Where you can create native applications for mobile apps using C# and can be published to various devices such as iOS, Android, and Windows Phone with only one source code base.
Then finally under the initiative of Microsoft and the community, ASP.NET Core began to be developed to answer the needs of ASP.NET which is more enterprise and cross platform. Of course, open source and free. ASP.NET Core is predicted to be the next generation of the previous ASP.NET.
This framework is the result of a rewrite which is a merger of ASP.NET MVC and ASP.NET Web API. Previously the name that was carried was ASP.NET vNext then finally became ASP.NET Core with the initial version, namely 1.0. Currently version 5.0.
ASP.NET Core was also developed with granular mode on top of NuGet package manager, compared to its predecessor bundled in one .dll named System.Web.dll.
Some components include:
- Entity Framework
- and others
Currently, ASP.NET Core has been open source on Github https://github.com/aspnet/home, so you can contribute or monitor the development of ASP.NET Core directly here.
ASP.NET Core Features
The following is the initiation feature of ASP.NET Core that you can use right now:
- Cross platform, you can do development on any operating system like Windows 10, OSX, and Linux
- Can be deployed on top of IIS, Nginx, Apache, and other web servers
- Has features that are almost equivalent to previous ASP.NET such as MVC, Filters, Middleware, Authorization, static files, Configuration, Logging, and others.
- Supported by Visual Studio Code and Visual Studio
- Can use Entitiy Framework for databases such as SQL Server, SQLite3, and Azure SQL Database. For other databases you have to choose various libraries that are suitable for them
- Supported by NuGet package manager
- Free access to Azure services compared to other programming languages
- Websocket support by default
- JWT and OAuth support by default
- You can choose Web API mode if you want to build a RESTful web service
- Already have packages for software testing such as unit testing and integration testing
- Automatic migration tool which is almost similar to Django although it is still limited to SQL Server and SQLite3 only. (Other databases will be supported by the community).
- Resource learn very much supported by the community and Microsoft’s own
- And other features, especially support that is very easy if you want to be integrated with Azure