Quick Overview of .NET Core and ASP .NET Core
Tags: aws, dotnet
Published: 2020-06-18 12:56:50

What is .NET Core and Why use it?

.NET Core, a new version of .NET Framework, is known to be a free, open-source, general-purpose development platform maintained by Microsoft.

.NET Core Framework can be used to build different types of applications such as mobile, desktop, web, cloud, IoT, machine learning, microservices, game, etc. It includes the core features that are required to run a basic .NET Core application. Other features are provided as NuGet packages, which can be added in the application as needed.  In this way, the .NET Core application speed up the performance, reduce the memory footprint and becomes easy to maintain.

What can .NET Core do?
                                                                                  1.Cross-platform& Container support

ASP.NET Applications runs on Windows, macOS and multiple distributions of Linux. It also supports different CPU architectures. Containers are eating the clouds these days. Docker, Kuberenetes and other technologies are all the rage. ASP.NET Core allows developers to utilize all of these new technologies.

2.High performance& Asynchronous via Async/Await

Performance is one of the important requirements in the application features. All I/O in ASP.NET Core is asynchronous. Servers implement the Stream interface, which has both synchronous and asynchronous overloads. The asynchronous ones should be preferred to avoid blocking thread pool threads. Blocking threads can lead to thread pool starvation. 

Most modern applications spend most of their time and CPU cycles waiting for database queries, web service calls, and other I/O operations to complete. One of the reasons ASP.NET Core is faster is its extensive use of asynchronous patterns within the new MVC and Kestrel frameworks.

3.Multiple environments and development mode

ASP.NET Core introduces improved support for controlling application behavior across multiple environments, such as development, staging, and production. Environment variables are used to indicate which environment the application is running in, allowing the app to be configured appropriately. 

4.Dependency Injection

ASP.NET Core is designed from scratch to support Dependency Injection. ASP.NET Core injects objects of dependency classes through constructor or method by using built-in IoC container.

5.Swagger OpenAPI 

Swagger is a set of open-source tools built around the OpenAPI Specification that can help you design, build, document and consume REST APIs. Swagger has become the most popular technology for designing and describing RESTful APIs. Its use allows developers to document and develop APIs while maintaining synchronization with the code.

What is ASP .NET Core?

ASP.NET Core is an open source and cloud-optimized web framework from Microsoft. 
ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps. It includes the MVC framework, which now combines the features of MVC and Web API into a single web programming framework. 

Why use ASP .NET Core?

The features of ASP .Net Core are listed below:

1. Supports Multiple Platform:ASP.NET Core applications can run on Windows, Linux, and Mac. So there is no need to build different apps for different platforms using different frameworks.

2. Fast: ASP.NET Core no longer depends on System.Web.dll for browser-server communication. ASP.NET Core allows us to include packages that we need for our application. This reduces the request pipeline and improves performance and scalability.

3. IoC Container: It includes the built-in IoC container for automatic dependency injection which makes it maintainable and testable.

4. Integration with Modern UI Frameworks: It allows you to use and manage modern UI frameworks such as AngularJS, ReactJS, Umber, Bootstrap, etc. using Bower (a package manager for the web).

5. Hosting: ASP.NET Core web application can be hosted on multiple platforms with any web server such as IIS, Apache etc. It is not dependent only on IIS as a standard .NET Framework.

6. Code Sharing: It allows you to build a class library that can be used with other .NET frameworks such as .NET Framework 4.x or Mono. Thus a single code base can be shared across frameworks.

7. Side-by-Side App Versioning: ASP.NET Core runs on .NET Core, which supports the simultaneous running of multiple versions of applications.

8. Smaller Deployment Footprint: ASP.NET Core application runs on .NET Core, which is smaller than the full .NET Framework. So, the application which uses only a part of .NET CoreFX will have a smaller deployment size. This reduces the deployment footprint.

Want to know about ASP.NET Core Security?

Security is obviously one of the most important things to build into your web service. ASP.NET Core enables developers to easily configure and manage security for their apps. ASP.NET Core contains features for managing authentication, authorization, data protection, HTTPS enforcement, app secrets, anti-request forgery protection, and CORS management. 

Overview of ASP.NET Core MVC

ASP.NET Core MVC is a lightweight, open source, highly testable presentation framework that is used for building web apps and APIs using the Model-View-Controller design pattern. 

ASP.NET Core MVC provides a patterns-based way to build dynamic websites that enables a clean separation of concerns. It gives you full control over markup, supports TDD-friendly development and uses the latest web standards.

A web application can be built on top of the ASP.NET Core, and more specifically, the ASP.NET Core MVC framework. Technically, an entire application can be built using only middleware, but ASP.NET Core MVC gives the features that can be used for easily creating HTML pages and HTTP-based APIs. 

Components of ASP.NET Core MVC Framework

The ASP .NET Core MVC design pattern has the following design components which are listed below:
• Controllers - define the end points / routes for the web API. Controllers are the entry point into the web API from client applications via http requests.
• Models - represent request and response models for controller methods, request models define the parameters for incoming requests, and response models can be used to define what data is returned.
• Services - contain business logic, validation and data access code.
• Entities - represent the application data.
• Helpers - anything that doesn't fit into the above folders.

Features of ASP.NET Core MVC

Routing

ASP.NET Core MVC is built on top of ASP.NET Core's routing, a powerful URL-mapping component that lets you build applications that have comprehensible and searchable URLs. Routing is responsible for matching incoming HTTP requests and dispatching those requests to the app's executable endpoints. Endpoints are the app's units of executable request-handling code.

Model Binding

ASP.NET Core MVC model binding converts client request data (form values, route data, query string parameters, HTTP headers) into objects that the controller can handle. As a result, your controller logic doesn't have to do the work of figuring out the incoming request data; it simply has the data as parameters to its action methods.

Model Validation

ASP.NET Core MVC supports validation by decorating the model object with data annotation validation attributes. The validation attributes are checked on the client side before values are posted to the server, as well as on the server before the controller action is called.

Action Filters

Filters in ASP.NET Core allow code to be run before or after specific stages in the request processing pipeline.
Built-in filters handle tasks such as:

• Authorization (preventing access to resources a user isn't authorized for).
• Response caching (short-circuiting the request pipeline to return a cached response).

Razor view engine

ASP.NET Core MVC uses the Razor view engine to render views. Razor is a compact, expressive and fluid template markup language for defining views using embedded C# code. Razor is used to dynamically generate web content on the server. You can cleanly mix server code with client side content and code.

Supporting Web APIs

ASP.NET Core supports creating RESTful services, also known as web APIs, using C#. To handle requests, a web API uses controllers. Controllers in a web API are classes that derive from Controller Base.

A RESTful API is an application program interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. And also referred to as a RESTful web service or REST API .

ASP.NET Core is a high-performance, open-source multiplatform framework for creating modern cloud applications that are connected to the Internet. Before embarking on the development of an application with ASP.NET Core, it is recommended to validate that the new framework covers your needs regarding APIs. 

As an ASP.NET web development company, our certified developers will provide custom solutions to match all your business requirements.