In this article we will learn about Introduction to ASP.Net Core. .NET Core is a free, open-source framework for building modern, scalable, and high-performance cross-platform software applications. Please read my all articles of ASP.Net MVC in this link.
What is ASP.Net Core?
- .NET Core is a general-purpose framework that may be used to build software applications for Windows, Linux, and MacOS. Unlike other software frameworks.
- .NET Core is the most versatile framework and can be used to build all kinds of software including Web applications, Mobile apps, Desktop applications, Cloud services, Microservices, APIs, Games, and IoT applications. Unlike other frameworks, .NET Core is not limited to a single programming language and supports C#, VB.NET, F#, XAML, and TypeScript. These programming languages are open source and managed by independent communities.
- .NET Core offers the most advanced, mature, and extensive class libraries, common APIs, multi-language support, and tools. Visual Studio 2019 and Visual Studio Core are the most advanced and modern developer IDEs that make .NET Core one of the most productive platforms for developers.
By using ASP.net core, you can:
- Build and run cross-platform ASP.NET apps on Windows, Mac and Linux
- Built on .NET Core, which supports true side-by-side app versioning
- New tooling that simplifies modern Web development
- Single aligned web stack for Web UI and Web APIs
- Cloud-ready environment-based configuration
- Built-in support for dependency injection
- Tag Helpers which makes Razor markup more natural with HTML
- Ability to host on IIS or self-host in your own process
.NET Core 1.0 was released on June 27, 2016,along with Microsoft Visual Studio 2015 Update 3, which enables .NET Core development. .NET Core 1.0.4 and .NET Core 1.1.1 were released along with .NET Core Tools 1.0 and Visual Studio 2017 on March 7, 2017.
.NET Core 2.0 was released on August 14, 2017, along with Visual Studio 2017 15.3, ASP.NET Core 2.0, and Entity Framework Core 2.0. .NET Core 2.1 was released on May 30, 2018. .NET Core 2.2 was released on December 4, 2018.
.NET Core 3 was announced on May 7, 2019, at Microsoft Build. Currently preview builds are available. An official release is planned for September 2019. With .NET Core 3 the framework will get support for development of desktop application software, artificial intelligence/machine learning and IoT apps.
|Version||Release Date||Released with|
|.NET Core 1.0||2016-06-27||Visual Studio 2015 Update 3|
|.NET Core 1.1||2016-11-16||Visual Studio 2017 Version 15.0|
|.NET Core 2.0||2017-08-14||Visual Studio 2017 Version 15.3|
|.NET Core 2.1||2018-05-30||Visual Studio 2017 Version 15.7|
|.NET Core 2.2||2018-12-04||Visual Studio 2017 Version 15.9|
|.NET Core 3.0||2019-09||Visual Studio 2019|
.NET Core fully supports C# and F# and partially supports Visual Basic .NET.
Currently VB.NET compiles and runs on .NET Core, but the separate Visual Basic Runtime is not implemented. Microsoft announced that .NET Core 3 would include the Visual Basic Runtime. As of October 2018, C++/CLI is not yet supported, although support is planned on Windows.
Characteristics of .NET Core
Key characteristics of .NET Core include open source, cross-platform, modern, flexible, lightweight, fast, friendly, shareable, and built for future software development.
.NET Core is Free and Open Source
The .NET Core platform is free and open source. .NET Core source code project is available on Github. Any developer can get involved in .NET Core development. There are thousands of active developers participating in .NET Core development who are improving features, adding new features, and fixing bugs and issues.
.NET Core is managed by an independent and non-profit organization called the .NET Foundation. More than 60,000 developers and 3,700 companies are contributing to the .NET ecosystem.
.NET Core is free and licensed under MIT and Apache licenses.
.NET Core is Cross-platform
.NET Core supports and runs on Windows, macOS, and Linux operating systems. .NET Core is consistent across architecture including x64, x86, and ARM. The same assemblies and libraries can be imported and used on multiple platforms. The assemblies and libraries are built using one of the .NET languages, C#, VB.NET, or F#.
.NET Core is Sharable
.NET Core uses one consistent API model written in .NET Standard that is common to all .NET applications. The same API or library can be used with multiple platforms in multiple languages.
.NET Core is Modern
Unlike some older frameworks, .NET Core is designed to solve today’s modern needs, including being mobile friendly, build once run it everywhere, scalable, and high performance. .NET Core is designed to build applications that target all kind of devices, including IoTs and gaming consoles.
.NET supports modern language constructs with the help of C# version 8, like object-oriented and modular programming, generics, collections, lambdas, Language Integrated Query (LINQ), and asynchronous programming which makes developers productive.
Visual Studio 2019 and Visual Studio Code are the two most advanced and modern developer IDEs in the world. Both IDEs support today’s modern needs and are focused on cleanness, speed, and productivity.
.NET Core is Fast
.NET Core 3.0 is fast. Compared to the .NET Framework and .NET Core 2.2 and previous versions, .NET Core 3.0 is blazing fast. .NET Core is much faster than other server-side frameworks such as Java Servlet and Node.js.
.NET Core is Lightweight
.NET Core is lightweight. .NET Core can be included in your app or installed side-by-side user, machine-wide, or on a server. The .NET Core can be deployed in Docker containers.
.NET Core is Friendly
What types of apps can we build using .NET Core?
.NET Core is a general-purpose software development framework. It allows developers to build all kinds of software including Web, Desktop, Mobile, Cloud, Gaming, Internet of Things and more.
The .NET Core is better suited for cross-platform needs. .NET Core apps are supported on Windows, Linux, and macOS. Microsoft’s popular open source code editor, Visual Studio Code, is not supported on Linux and macOS. VS Code supports the modern needs of code editors including IntelliSense and debugging. Most third-party editors, such as Sublime, Emacs, and VI, work with .NET Core.
Web ApplicationsASP.NET Core is a core component of .NET Core ecosystem. ASP.NET Core is a framework for building web pages. ASP.NET Core is based on MVC architecture and provides common libraries to build the Web.
Razor is a new framework for building dynamic web pages using C# and TypeScript. Razor is a game-changing technology that allows C# developers to build Web apps in C#. If you want to learn more about Razor.
Mobile Mobile development is a key offering of .NET Core. Xamarin is a set of tools and libraries for building cross-platform mobile apps using C#. Xamarin allows developers to build native apps for iOS, Android, Windows, and macOS on a shared .NET codebase.
Desktop Applications.NET Core provides various frameworks and tools to build Desktop applications. Windows Forms, WPF, UWP, and Xamarin are four major frameworks to build desktop applications. .NET Core also supports interoperability between these frameworks.
Windows Forms is a technology to build Windows desktop applications. Windows Forms was one of the first components of .NET Framework.
WPF (Windows Presentation Foundation) is a newer technology to build Windows desktop applications. WPF was released as a part of the .NET Framework version.
UWP (Universal Windows Presentation) is a newer technology and was released after Windows 8. Today, UWP has matured. UWP uses XAML for the presentation layer (UI) and C# as the backend programming.
Microservices and Containers Microservices are a new design pattern that allows developers to build small modules of software services that can communicate with each other using well-defined contracts. Microservices make it easier to develop, test, and deploy isolated parts of your application. Once deployed, each microservice can be independently scaled as needed. Microservices architecture is supported in .NET Core, which allows cross-platform services to work with .NET Core including services developed with .NET Framework, Java, Ruby, or others.
- Microservices Using ASP.NET Core
Containers are the VMs of today. .NET Core’s modularity, lightweight, and flexibility make it easier to deploy .NET Core apps into containers. Containers contain an app as well as all configuration files and dependencies into a single, small, and independently deployable unit of software. Containers can be deployed on any platform, cloud, Linux, and Windows. .NET Core works well with both Docker and Azure Kubernetes Service.
Cloud Apps Cloud Apps are growing in popularity these days. Azure supports all kind of cloud apps. .NET Core and C# apps can be deployed on Azure via Visual Studio 2019.
Internet of Things IoT apps are growing. .NET Core supports IoT development via UWP framework for IoT devices running Windows 10 IoT Core. UWP can be used to build apps that run on IoT powered by Raspberry Pi, Minnow Board MAX, DragonBoard 410c, and others.
Machine Learning Machine Learning is a growing area for software developers.
Games Unity is one of the most popular game development frameworks. C# and UWP are used to build games for mobile, desktop, console, TV, VR, AR and the Web.
What is New in .NET Core 3.0?
The latest version of .NET Core, 3.0, was just released. C# 8 and Windows Desktop are two major additions to this release.C# 8 is the latest version of the C# language. C# 8 is a part of .NET Core. Windows Desktop is a new addition to .NET Core 3.0 that allows developers to build Windows desktop applications using Windows Forms, WPF, and UWP.Here is a list of other features and enhancements in .NET Core 3.0,
- MSIX Deployment for Windows Desktop
- MSIX is a new Windows app package format. It can be used to deploy .NET Core 3.0 desktop applications to Windows 10.
- Fast built-in JSON support
- IEEE Floating-point improvements
- .NET Platform Dependent Intrinsics
- Framework-dependent executables support
- Build copies dependencies
- Assembly Unloadability
- Windows Native Interop
- TLS 1.3 & OpenSSL 1.1.1 on Linux
- Improved Cryptography
- SerialPort for Linux
- ARM64 Linux support
- GPIO Support for Raspberry Pi
So far in this article about Introduction to ASP.Net Core.