.Net core is officially launched. This is completely new framework in place of just an upgrade of .Net Framework! In 1 week of my learning of .Net core I found it very exciting with great features. Here is a list of features I am excited about –
- Cross Platform – So we are not bound to Windows now. We can develop and use on Linux, Mac or Windows.
- Cloud Optimized – It is cloud optimized, so you can deploy and debug over cloud.
- Open Source – .Net core is completely open source including documentation. So we can extend as per requirement.
- Not tied to IIS – it does not tied to IIS. System.Web is dropped which was tied with IIS. dnx host the execution and middle-wares executes in pipeline to process the request. Kestrel, Weblistener, IIS Express. Kestrel & Weblistener are light weight web servers and could be embed in app.
- .Net core provides dynamic in memory compilation. So no more compilation of code after every small change. Just change and check
- Light Weight – It is a light weight framework. We don’t need to install complete framework and libraries like .Net framework. But we just need to install Core framework with minimal required in all platform and then we can install pipeline modules as packages. We do need to install framework on deployment server but we can deploy it with out app.
- We do not have Global.asax & web.config in .Net core but we have startup.cs and can add configuration using json files(project.json, appsettings.json) and we can configure these in startup.cs class using ConfigurationBuilder & IHostingEnvironment.
- Dependency Injection is default and we can configure/inject services using ConfigureServices method in startup.cs. These services adds in container and could be used in View, Model & Controllers.
- We have three package managers – Nuget, NPM for node.js, Gulp, Grunt & Bover for client side script & css packages like jQuery, bottstrap.
- Configure method in startup.cs is called by runtime. It configure the http request pipeline (middleware). Component required for our app can only be configure as middleware.
- Tag Helper – Razor is still exist but tag helpers are there which are more html friendly then razor. By overriding base TagHelper we can create our own taghelpers.
- We can create View Components as a reusable component drive from ViewComponent class.
- WebAPI is dropped in .Net core. Web API and MVC are unified and commpnly called as MVC. Both are drives from Controller class.
- wwwroot folder to contain all the static files or assets to server to client like css, images, html files, js files etc.
- Hosting Environment – Hosting.Environment is to set the environment for Development, Staging and Production. launchsettings.json use for this. It allows different css, js and others in dev, staging or production. Also we can have multiple statrtup or configure metadata for different environment.
.Net core seems very powerful and futuristic. I am in learning phase and will be adding more interesting features in the process. Thanks!