Wednesday, 26 October 2022

.net core

.net core

NET Core Overview

.NET Core is a new version of .NET Framework, which is a free, open-source, general-purpose development platform maintained by Microsoft. It is a cross-platform framework that runs on Windows, macOS, and Linux operating systems.

.NET Core Framework can be used to build different types of applications such as mobile, desktop, web, cloud, IoT, machine learning, microservices, game, etc.

.NET Core is written from scratch to make it modular, lightweight, fast, and cross-platform Framework. It includes the core features that are required to run a basic .NET Core app. Other features are provided as NuGet packages, which you can add it in your application as needed. In this way, the .NET Core application speed up the performance, reduce the memory footprint and becomes easy to maintain.

Why .NET Core? 

There are some limitations with the .NET Framework. For example, it only runs on the Windows platform. Also, you need to use different .NET APIs for different Windows devices such as Windows Desktop, Windows Store, Windows Phone, and Web applications. In addition to this, the .NET Framework is a machine-wide framework. Any changes made to it affect all applications taking a dependency on it. Learn more about the motivation behind .NET Core .

Today, it's common to have an application that runs across devices; a backend on the web server, admin front-end on windows desktop, web, and mobile apps for consumers. So, there is a need for a single framework that works everywhere. So, considering this, Microsoft created .NET Core. The main objective of .NET Core is to make .NET Framework open-source, cross-platform compatible that can be used in a wide variety of verticals, from the data center to touch-based devices.

Overview of ASP.NET Core

ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, Internet-connected apps.

With ASP.NET Core, you can:

  • Use your favorite development tools on Windows, macOS, and Linux.
  • Deploy to the cloud or on-premises.

Why choose ASP.NET Core?

Millions of developers use or have used ASP.NET 4.x to create web apps. ASP.NET Core is a redesign of ASP.NET 4.x, including architectural changes that result in a leaner, more modular framework.

ASP.NET Core provides the following benefits:

  • A unified story for building web UI and web APIs.
  • Architected for testability.
  • Razor Pages makes coding page-focused scenarios easier and more productive.
  • Blazor lets you use C# in the browser alongside JavaScript. Share server-side and client-side app logic all written with .NET.
  • Ability to develop and run on Windows, macOS, and Linux.
  • Support for hosting Remote Procedure Call (RPC) services using gRPC.
  • Ability to host on the following:
  • Tooling that simplifies modern web development.

Client-side development

ASP.NET Core integrates seamlessly with popular client-side frameworks and libraries, including BlazorAngularReact, and Bootstrap. For more information, see ASP.NET Core Blazor and related topics under Client-side development.

ASP.NET Core target frameworks

ASP.NET Core 3.x or later can only target .NET Core. Generally, ASP.NET Core is composed of .NET Standard libraries. Libraries written with .NET Standard 2.0 run on any .NET platform that implements .NET Standard 2.0.

There are several advantages to targeting .NET Core, and these advantages increase with each release. Some advantages of .NET Core over .NET Framework include:

  • Cross-platform. Runs on Windows, macOS, and Linux.
  • Improved performance
  • New APIs
  • Open source. 

Characteristics of .NET Core

The following are the major characteristics of .NET Core −

Open source
Cross-platform
Flexible deployment
Command-line tools
Compatible
Modular
The .NET Core Platform
          Open source

  • .NET Core is an open source implementation, using MIT and Apache 2 licenses.

  • .NET Core is a .NET Foundation project and is available on GitHub.

  • As an open source project, it promotes a more transparent development process and promotes an active and engaged community.

  • Cross-platform

  • Application implemented in .NET Core can be run and its code can be reused regardless of your platform target.

  • It currently supports three main operating systems (OS)

    • ➣Windows

    • ➣Linux

    • ➣MacOS

  • The supported Operating Systems (OS), CPUs and application scenarios will grow over time, provided by Microsoft, other companies, and individuals.

  • Flexible deployment

  • There can be two types of deployments for .NET Core applications −

    • ➣Framework-dependent ➣deployment

    • ➣Self-contained deployment

  • With framework-dependent deployment, your app depends on a system-wide version of .NET Core on which your app and third-party dependencies are installed.

  • With self-contained deployment, the .NET Core version used to build your application is also deployed along with your app and third-party dependencies and can run side-by-side with other versions.

  • Command-line tools

  • All product scenarios can be exercised at the command-line.

  • .NET Core is compatible with .NET Framework, Xamarin and Mono, via the .NET Standard Library

  • .NET Core is released through NuGet in smaller assembly packages.

  • .NET Framework is one large assembly that contains most of the core functionalities.

  • .NET Core is made available as smaller feature-centric packages.

  • Compatible

  • This modular approach enables the developers to optimize their app by including just those NuGet packages which they need in their app.

  • Modular

  • The benefits of a smaller app surface area include tighter security, reduced servicing, improved performance, and decreased costs in a pay-for-what-you-use model.

.NET Core Platform contains the following main parts −

  • .NET Runtime − It provides a type system, assembly loading, a garbage collector, native interop and other basic services.

  • Fundamental Libraries − A set of framework libraries, which provide primitive data types, app composition types and fundamental utilities.

  • SDK & Compiler − A set of SDK tools and language compilers that enable the base developer experience, available in the .NET Core SDK.

  • ‘dotnet’ app host − It is used to launch .NET Core apps. It selects the runtime and hosts the runtime, provides an assembly loading policy and launches the app. The same host is also used to launch SDK tools in much the same way.










2 comments: