RSS
Логотип
Баннер в шапке 1
Баннер в шапке 2

Microsoft.NET Framework

Product
Developers: Microsoft
Last Release Date: 2023/11/17
Technology: Application Development Tools

Content

.NET Framework is a software technology from Microsoft designed to create ordinary programs and web applications.

2023:.NET 8 Release

On November 17, 2023, it became known that Microsoft presented the release of the open platform.NET 8, created thanks to the unification of the.NET Framework,.NET Core and Mono products. Based on.NET 8, you can create multi-platform applications for browser, cloud, desktop, IoT devices and mobile platforms using unified libraries and a common build process that is independent of the type of application. .NET SDK 8,.NET Runtime 8 and ASP.NET Core Runtime 8 assemblies are built for Linux, macOS and Windows..NET Desktop Runtime 8 is available for Windows only. The.NET 8 branch is classified as LTS and will be accompanied for three years until November 2026. Project-related developments are distributed under the MIT license.

.NET 8

As reported,.NET 8 includes Runtime with the RyuJIT JIT compiler, API specifications, WPF libraries, Windows Forms, WinUI, Entity Framework, dotnet CLI, as well as tools for developing microservices, libraries, server, graphics and console applications. Separately published stack for developing web applications ASP.NET Core 8.0, ORM layer Entity Framework Core 8.0 (drivers are available, including for SQLite and PostgreSQL), WPF 8 library (Windows Presentation Foundation), Windows Forms 8 framework for GUI development, Aspire 8 platform for creating Cloud Native applications, MAUI 8 framework for developing multi-platform user interfaces, as well as releases of C # 12 and F# 8 languages. Support for.NET 8.0 and C# 12 is included in the free Visual Studio Code Editor .

Release Opportunities:

  • Performance optimization performed. By default, an updated code generator is enabled that supports Dynamic Profile-Guided Optimization. Using an updated code generator provides up to a 20% increase in application performance. In addition, this version adds support for AVX-512 instructions to optimize the performance of parallel operations on vector data. For primitive types, an interface has been updated that allows you to directly parse and format data in UTF-8 format without transcoding. In TechEmpower tests, JSON API performance increased by 18%, and Fortunes increased by 24%.
  • Added.NET Aspire stack designed to develop cloud-native applications using.NET technologies..NET Aspire provides a large set of components that may be required when building applications that run in cloud environments, including tools for telemetry collection, configuration, health checks, and fault tolerance.
  • Expanded tools for packaging applications in isolated containers. By default, it is possible to publish container images without Dockerfile and without the root user. Reduced the size of the base image of the container with.NET platform components. A minimalistic version of the image has been added to run applications compiled into executable files (Native AOT). A more secure version of images based on Chiseled Ubuntu has been added.
  • The efficiency of compiling into self-contained executable files (Native AOT) has been optimized, in which the entire project is initially compiled into the machine code of the target platform without using intermediate code and without using JIT.
  • Enhanced the capabilities of software interfaces that can be used in machine learning systems. For example, the System.Numerics library optimizes compatibility with generative AI systems. Added examples for creating chatbots, generating content and accessing Azure AI services.
  • Blazor, a platform for creating C# web applications, has reduced page loading time, optimized scalability, and allows the use of Blazor Server and Blazor WebAssembly in one application to create programs that combine server and client functions. Added Jiterpreter, a faster WebAssembly runtime that optimizes the rendering of the interface by 20%. Enhanced authentication, authorization, and identification capabilities.
  • The MAUI framework for developing multi-platform user interfaces has been expanded, which provides the ability to use one codebase to build interfaces for Windows, macOS, iOS and Android. Added Experimental Compilation Support (Native AOT). Added support for Xcode 15 and Android API 34 platforms. Graphic elements and buttons have been upgraded, the processing of mouse clicks and events from the keyboard has been optimized.
  • C# 12 adds support for modified syntax to create primary constructors in any classes and structures, and optimizes the creation of arrays, span, and other collection types. Tools have been provided to set default values for lambda expression parameters. Processing of optional arguments is simplified. Added the ability to create aliases of any type using the "alias" directive.


//Create a list
<int>List a = [1, 2, 3, 4, 5, 6, 7, 8];
//Creation of span arrays
<char>Span b = ['a', 'b', 'c', 'd', 'e', 'f', 'h', 'i'];
// Use the spread operator to concatenate
int[] array1 = [1, 2, 3];
int[] array2 = [4, 5, 6];
int[] array3 = [7, 8, 9];
int [] fullArray = [.. array1,.. array2,.. array3] ;//content will be [1, 2, 3, 4, 5, 6, 7, 8, 9]

  • Core ASP.NET for one-page (SPA: single-page application) and web applications (Blazor) provides support for Cookie and token authentication. An updated user interface for authentication is proposed. Enhanced protection against XSRF/CSRF attacks.
  • The Entity Framework Core provides additional complex types that can be used as objects. Added support for hierarchical data in SQL Server.
  • The NuGet package manager optimizes the audit of packages in projects and provides information about the presence of known vulnerabilities.
  • .NET Runtime has added a proactive compilation mode (AOT) for WebAssembly (WASM) and Android platforms.
  • WPF added the OpenFolderDialog and enabled hardware acceleration in RDP.
  • The debugger provides a display of summary debug data and implements debug layers for commonly used.NET types[1].

2022:.NET 7 Release

On November 10, 2022, it became known that Microsoft presented a significant release of the open platform.NET 7, created thanks to the unification of the.NET Framework,.NET Core and Mono products. Based on.NET 7, you can create multi-platform applications for browser, cloud, desktop, IoT devices and mobile platforms using unified libraries and a common build process that is independent of the type of application. .NET SDK 7,.NET Runtime 7 and ASP.NET Core Runtime 7 builds are built for Linux, macOS and Windows..NET Desktop Runtime 6 is available for Windows only. Project-related developments are distributed under the MIT license. The.NET 7 branch will be supported for 18 months until May 14, 2024.

.NET 7

As reported,.NET 7 includes Runtime with the RyuJIT JIT compiler, API specifications, WPF libraries, Windows Forms, WinUI, Entity Framework, dotnet CLI, as well as tools for developing microservices, libraries, server, graphics and console applications. Separately published stack for developing web applications ASP.NET Core 7.0, ORM layer Entity Framework Core 7.0 (drivers are available, including for SQLite and PostgreSQL), WPF 7 library (Windows Presentation Foundation), the Windows Forms 7 framework for GUI development, the Orleans 7 platform for creating Cloud Native applications, the MAUI 7 framework for developing multi-platform user interfaces, as well as releases of C # 11 and F# 7. Support for.NET 7.0 and C# 11 is included in the free Visual Studio Code Editor .

Updated Release Features:

  • The basic class library (BCL, Base Class Library) was unified for use in various types of applications, including programs for desktop systems, web applications, cloud platforms, mobile applications, games, embedded programs and machine learning systems. You can use the same common SDK, Runtime, and library set to develop different types of applications.
  • It is possible to bind the application to the API corresponding to the.NET 7 release through the definition of the target platform "net7.0," for example, "<TargetFramework>net7.0</TargetFramework>." To bind to APIs specific for some platforms, when defining a goal, you can detail the platform type, for example, by specifying "net7.0-android."
  • Support for the ARM64 architecture has been optimized and work has continued to achieve parity in the performance of.NET applications when running on x86 and ARM64 architectures. Runtime optimizes the efficiency of using L3 cache on ARM64 systems. LSE instructions are used to delimit memory access from parallel threads, which led to a 45% reduction in delays. The library has added handlers using vector types Vector64, Vector128 and Vector256, as well as EncodeToUtf8 and DecodeFromUtf8 functions based on vector instructions, which provided an increase in their performance by up to 60% (for NarrowUtf16ToAscii and GetIndexOfFirstNonAsciiChar functions, the performance increase reaches 35%). In general, the speed of passing tests on the ARM64 platform increased by 10-60%.
  • Linux platform support has been optimized, including packages with.NET 6 added to the regular Ubuntu 22.04 repositories and an optimized, compact and ready-to-use docker image for quickly deploying containers with.NET-based applications.
  • Added support for 64-bit IBM Power architecture (ppc64le).
  • The. NET Upgrade Assistant tool is offered to optimize the translation of old applications to the.NET 6 or.NET 7 branches. The updated version has expanded support for migrating applications from ASP.NET to ASP.NET Core, added analyzers and code correcters for WinForms, WPF and class libraries, implemented support for analyzing executable files, added support for the UWP (Universal Windows Platform) platform.
  • Enhanced cloud-native and PaaS platform capabilities. It is possible to create applications packaged in isolated containers using the dotnet publish command.
  • Advanced tools to monitor the status of applications and collect metrics about their operation. Added events and methods to analyze application activity and performance.
  • C# 11 adds support for raw string literals, which can include special characters without the need to escape them (such literals are highlighted by three quotes). Generalized interfaces (generic) for mathematical functions are proposed and it is possible to determine static elements in virtual interfaces, which made it possible to use generalized programming methods to perform mathematical operations without accurate information about the type of values.
  • The capabilities of the standard library have been expanded. Added System.Formats.Tar API to work with Tar archives. The time function (TimeStamp, DateTime, etc.) adds support for microseconds and nanoseconds. System.Text.Json implements the ability to control serialization and deserialization of.NET types.
  • The dotnet new command line interface has added support for auto-completion of typical project templates by pressing the Tab key.
  • The .NET SDK provides the ability to restrict the use of supplied project templates, for example, you can determine in which operating systems the template is allowed.
  • NuGet has added a centralized package management mode that allows you to manage dependencies for several projects at once.
  • Optimized performance of the JIT compiler. Support for the On Stack Replacement (OSR) mechanism has been added to change the code of methods already running, which allows optimizations to be made to methods that take a long time to execute without waiting for the current call to complete (the TechEmpower test notes an optimization of the performance of the first requests by 10-30%).
  • Optimized optimization efficiency based on the results of code profiling (PGO - Profile-guided optimization), which allows you to take into account the features determined during the execution of the program.
  • Added support for compiling into self-contained executable files (Native AOT), in which the entire project is initially compiled into the machine code of the target platform without using intermediate code and without using JIT.

2017

Support for.NET Core 2.0 with Red Hat products

On August 25, 2017, Red Hat announced plans to provide support for.NET Core 2.0 as part of its Open Source technology family..NET Core 2.0 allows you to create.NET applications for various platforms and deploy them on both Red Hat Enterprise Linux, Red Hat OpenShift Container Platform, and other platforms.

.NET Core 2.0

.NET Core 2.0 is now part of the Red Hat Developer Program, supports.NET Standard 2.0, which provides optimized platform compatibility and portability for any runtime and.NET workloads. It also helps optimize application packaging with easier access to the ASP.NET Core 2.0 web application development stack and the Entity Framework Core 2.0 ORM layer. In addition, when used with Red Hat Enterprise Linux or Red Hat OpenShift Container Platform,.NET Core 2.0 allows you to create modern containerized applications in the programming languages ​ ​ C#, F# and Visual Basic.

Support in Red Hat products

Red Hat will offer full enterprise-grade.NET Core support within its portfolio, empowering developers to use.NET Core 2.0 to develop and deploy applications on the following platforms:

  • Red Hat Enterprise Linux
  • Red Hat Enterprise Linux Atomic Host
  • Red Hat OpenShift Container Platform
  • Red Hat OpenShift Online
  • Red Hat OpenShift Dedicated
  • Red Hat OpenStack Platform

Availability

In the near future,.NET Core 2.0 will be available for the corresponding Red Hat products as packages in the repository (rpm) or as container images.

File:Aquote1.png
By supporting.NET on the Red Hat Enterprise Linux platform, we can offer the market a fully open development platform, provided with enterprise-level support and ensuring reliable industrial operation of.NET workloads on systems other than Windows, "said Harry Mower, Director of Developer Programs, Red Hat.
File:Aquote2.png

.NET Core 2.0 Release

On August 14, 2017, Microsoft announced the release of.NET Core 2.0, an open source modular.NET platform. This version provides a significant increase in Runtime and Framework performance. In addition, support for.NET Standard 2.0 is implemented, which more than doubles the number of APIs available to developers..NET Core 2.0 is already available in Azure Web Apps.[2]

List of major changes:

  • Runtime:
    • Significant performance improvements for Runtime and Framework;
    • Implemented.NET Standard 2.0;
    • 6 more platforms are supported, including Debian Stretch, macOS High Sierra, etc.;
    • RyuJIT is the x86 JIT in.NET Core 2.0;
    • Pre-supported Linux ARM32.

  • SDK:

    • dotnet restore is now an implicit command;
    • NET Core and.NET Standard projects can reference.NET Framework NuGet packages and projects;
    • .NET Core SDK can be collected from open source repository.

  • Visual Studio:

    • Live Unit Testing supports.NET Core;
    • Code navigation improvements implemented;
    • C# Azure Functions are supported out of the box;
    • CI/CD support is provided in containers.

Developers can install.NET Core 2.0 along with.NET Core 1.0 and 1.1. Existing.NET applications can continue to use Runtime 1.0 and 1.1 as needed.

The source code of the.NET Core components is distributed under the MIT and Apache 2 licenses, ASP.NET Core comes under the Apache 2 license. In addition to Windows, support for Red Hat Enterprise Linux 7, CentOS 7, Debian 8/9, Fedora 25/26, SUSE Linux Enterprise Server 12 SP2 +, openSUSE 42.2 +, Oracle Linux 7 , Ubuntu 14.04/16.04/17.04, Linux Mint 17/18, macOS[3] announced[4]

Presentation of.NET Core 2.0, August 14, 2017.

.NET Core is a modular platform for creating web applications and microservices, a cross-platform (Windows, Mac, Linux) analogue of the.NET Framework with open source. It contains the CoreCLR environment - a cross-platform implementation of CLR, which includes a JIT compiler - RyuJIT..NET Core also includes CoreFX - a set of libraries whose functionality partially coincides with BCL (Base Class Library).

.NET Core provides a subset of the.NET Framework API, but also a number of native APIs.

2016:.NET Core 1.0 Release

On June 27, 2016,.NET Core version 1.0, an open source modular.NET platform, was released. Along with the release of version 1.0, Microsoft Visual Studio 2015 Update 3 became available, which supports development for.NET Core.

On November 16, 2016,.NET Core version 1.1 was released.

2014:.NET Server Source Open

On November 13, 2014, Microsoft announced the opening of full access to the source code of the.NET platform server and expanded its capabilities to work with Linux and Mac.

"Today there are many devices on the market, so developers need a universal tool that is suitable for working with any platform and form factor," said Pavel Betsis, President of Microsoft in Russia. "With Visual Studio and.NET capabilities, we offer a comprehensive solution for creating and managing applications across all devices and platforms."

Cross-platform development was made possible through access to a complete set of open source.NET platform server technologies, including ASP.NET,.NET compiler,.NET Core Runtime, infrastructure, and application libraries.

2012:.NET Framework 4.5 Release

.NET Framework 4.5 was released on August 15, 2012..NET Framework 4.5 offers several fundamentally new features that will allow developers to significantly increase personal performance when creating applications with managed code:

Languages. C# and Visual Basic now include built-in support for writing asynchronous code, which can be created as easily as synchronous. F# includes type providers, which facilitates access to these programs and F# components.

Performance. To improve performance, primarily server applications and services, the Common Language Runtime has been significantly upgraded. Now, managed applications can run faster and run at faster speeds and less latency thanks to add-ons such as server-side garbage collection in the background, multi-threaded background compilation, and profile-based optimization.

Network..Net Framework 4.5 includes high-quality network libraries, which provides continuous support for cloud services on different types of devices. The ability to combine modern HTTP libraries and web sockets ensures high-quality service development.

In addition to these improvements,.Net Framework 4.5 offers improved HTML5 support, new Entity Framework capabilities and mobile application development using ASP.Net, as well as many other new capabilities for developers creating client and cloud applications.

2010:.NET Framework 4.0 Release

The final version of.NET Framework 4.0 was released on April 12, 2010, along with the final version of Visual Studio 2010.

The Microsoft.NET Framework 4.0 distribution package installs the CLR and associated files required for applications developed for the.NET Framework 4.0. Microsoft.NET Framework 4.0 - contains new functionality and improvements in basic classes (BCL) in addition to those previously presented in.NET 4 Beta 1. Many of these improvements were made through feedback and recommendations from customers obtained through Microsoft Connect.

According to April 2010, one of the main ideas of Microsoft.NET is the compatibility of various services written in different languages. For example, a service written in C++ for Microsoft.NET might refer to a class method from a library written in Delphi; in C#, you can write a class inherited from a class written in Visual Basic.NET, and an exception created by a method written in C# can be intercepted and processed in Delphi. Each library (assembly) in.NET has version information, which allows you to eliminate possible conflicts between different versions of assemblies.

.NET is a proprietary technology of Microsoft Corporation. However, after concluding an agreement with Novell [1], Mono technology was recognized as a.NET implementation on Unix-like systems (GNU Linux/, Mac OS X). However, the agreement concerns Novell and Novell customers, also ASP.NET, ADO.NET and Windows.Forms technologies have not been standardized by ECMA/ISO and their use in Mono is at risk of claims from Microsoft (claims are possible only in countries where patents exist for software[2]). Mono provides an implementation of ASP.NET, ADO.NET and Windows.Forms, but at the same time recommends bypassing these. API[2]

.NET Application Development Environments:

  • Microsoft Visual Studio (C#, Visual Basic.NET, Managed C++),
  • SharpDevelop,
  • MonoDevelop,
  • Eclipse,
  • Borland Developer Studio (Delphi for.NET, C#),
  • PascalABC.NET, etc.

Applications can also be developed in a text editor and use a console compiler.

Similar to Java technology, the.NET development environment creates bytecode for execution by a virtual machine. The input language of this machine in.NET is called MSIL (Microsoft Intermediate Language), or CIL (Common Intermediate Language, a later version), or simply IL. The use of bytecode allows you to get cross-platform at the level of a compiled project (in terms of.NET: assembly), and not only at the level of source text, as, for example, in C. Before starting an assembly in the CLR execution environment, the bytecode is converted by the JIT compiler built into the environment (just in time, compilation on the fly) into machine codes of the target processor. It is also possible to compile the assembly into native code for the selected platform using the NGen.exe utility supplied with the.NET Framework.

It should be noted that one of the first JIT compilers for Java was also developed by Microsoft. Modern dynamic compilation technology allows you to achieve a level of performance similar to traditional "static" compilers (for example, C++), and the question of performance often depends on the quality of a particular compiler.

Notes