PDF version of this report
You must have Adobe Acrobat reader to view, save, or print PDF files. The reader
is available for free
download.
Microsoft .NET Technology
Copyright 2020, Faulkner Information
Services. All Rights Reserved.
Docid: 00017810
Publication Date: 2006
Report Type: TUTORIAL
Preview
Microsoft .NET offers a basic framework for programmers and primarily works
in a Windows environment. Microsoft built .NET for ease of application
development. This open-source framework is available in version 4.8, although a
full v5.0 is expected for later in 2020. This report outlines Microsoft’s .NET framework, its outlook, and recommendations for those interested in implementing .NET in their organizations.
Report Contents:
Executive Summary
[return to top of this report]
The .NET application framework from Microsoft was originally introduced in
mid-2000.
Related Faulkner Reports |
Microsoft Company Profile |
Service Oriented Architecture |
As an application development framework, .NET provides the system and network services that
are required for apps to "get the job done." This application framework is available not only for PCs, but for handheld and mobile
devices and, via the ".NET Micro Framework" (now an open source project), for the
embedded space.
Version 4.8 of the .NET framework was released in April 2019. This latest
incarnation introduces new features in terms of base classes, WCF (Windows
Communication Foundation), WPF (Windows Presentation Foundation), and common
language runtime. Specific enhancements include:
- Reduced FIPS impact on cryptography
- Use of an updated version of ZLib, a native external library for data
compression to provide an implementation for the deflate algorithm - Introduction of ServiceHealthBehavior
- Support from Windows Presentation Foundation for Per-Monitor V2 DPI
Awareness and Mixed-Mode DPI scaling - Optimization to the Just-in-time compiler and Native Image Generator
- Anti-malware scanning for all assemblies
Table 1 compares other major versions of Microsoft .NET.
Version | Release Date | Features |
---|---|---|
4.7 |
April 2017 |
|
4.6 |
October 2015 |
|
Support for .NET Framework 4, 4.5, and prior versions ceased on
January 12, 2016. These releases include, among others, v4.0 (April 2010)
and v3.5 (November 2007). A
full comparison between all editions, past and present, is available via
the Microsoft Web site.
Description
[return to top of this report]
Microsoft’s .NET framework
provides developers a free, open-source platform to build different
applications for the Web, Windows, Windows Phone, Windows Server, and Microsoft
Azure. .NET supports multiple languages, editors, and libraries for app
creation. .NET apps can be created in the C#, F#, or Visual Basic programming
languages. According to Microsoft, the .NET Framework is intended to:
- Provide a consistent object-oriented programming environment regardless of
whether the object code is stored and executed locally, executed locally but
Internet-distributed, or remotely executed. - Offer code-execution environment that minimizes software deployment and
versioning issues. - Provide a code-execution environment that promotes safe execution of code,
even code created by an unknown party. - Promote a code-execution environment that alleviates performance issues or
scripted or interpreted environments. - Ensure a more consistent developer experience across varying types of
apps. - Build all communication on industry standards to ensure that code based on
.NET Framework integrates with other code.
.NET Framework consists of CLR (common language runtime) and Framework Class
Library components: The CLR execution engine is designed to handle the actual
running of apps, whereas the Framework Class Library offers tested, reusable
code. In addition, the .NET Framework provides the following services for running
apps:
- Memory management.
- A common type system.
- A class library.
- Development frameworks and technologies such as ASP.NET for Web apps;
ADO.NET for data access; Windows Communication Foundation for
service-oriented apps; and Windows Presentation Foundation for Windows
desktop apps. - Language interoperability.
- Version compatibility.
- Side-by-side execution.
- Multi-targeting of platforms.
.NET Core
.NET Core is a modular, cross-platform and open-source implementation of .NET
and includes some of the same APIs as the .NET Framework. It consists of
runtime, framework, compiler, and tool components designed to support various
operating systems. .NET Core can be used in device, cloud, and embedded/Internet
of Things scenarios. It is made available through smaller feature-centric
packages for a more agile development model allowing for a smaller app surface.
.NET Core allows for the reuse of code regardless of platform target.
The latest version of .NET Core is v3.1.5, which was released in June 2020.
The release carries both security and non-security fixes. New features include:
- Visual Studio Compatibility
- Docker Image Support
- Azure App Services Support
- Improved OS Support (Alpine 3.12 and Centos 8)
- Patching for DOS vulnerability
- Additional CoreCLR, CoreFX, ASP.NETCore, and Core-Setup
- macOS Notarization Changes
Current View
[return to top of this report]
Microsoft sought to lure Java developers to .NET by offering developers
the ability to use any supported programming language to write Web
applications to run (at least initially) on Windows. Microsoft saw its
competition as the Java Enterprise System (Java ES). Java ES (now abandoned)
was introduced as a unifying branding for Sun’s products and its vision of
"services on demand" or "network dial tone." Its strategy was to make it
easier to compare its diverse product offerings to Microsoft’s unifying .NET
product. Since Oracle’s purchase of Sun, it has positioned itself as "the
steward of Java software".
Mono was a competitor of .NET. Initially, it was a Novell-sponsored open source development platform
now led by Xamarin (which in turn was acquired by
Microsoft), based on the .NET framework. Mono allows software developers to build Linux and cross-platform applications using a .NET compatible set of
tools, Mono Tools for Visual Studio. Mono leveraged Microsoft’s submission of C# and related development technology to ECMA International for standardization, which including the .NET common-language runtime (CLR). The open source Mono offering is designed to enable software developers to create .NET applications that will work on Linux, Windows, Solaris, and other operating systems.
It has also been released for iOS and Android development. However, Mono hasn’t
been without controversy as some have criticized that it is using parts of the
.NET Framework that Microsoft has patented.
To that point, one of the most frequently heard criticisms of Microsoft’s tools, including those for building .NET applications, is that they are costly, as opposed to many Java development tools, which are either inexpensive or free. This argument ignores the fact that by far the greatest economic consideration in any software project is developer productivity. Development tools for .NET applications are an outgrowth of the mature, and widely respected Microsoft Visual Studio product. Microsoft’s record of delivering ROI on its developer tools is one of the key reasons for the vitality of the broader Windows ISV market.
To address the criticism, and to open .NET development to those who couldn’t
afford Visual Studio, the company now offers several free versions, known as
Visual Studio Code and Visual Studio Community. Microsoft also announced the creation of
the .NET Foundation at its 2014 BUILD developers conference, releasing
components to the open source community. The Foundation stewarded 24
projects to begin with. Today, the .NET Foundation is supporting 556
projects with over 11,000 contributors. Microsoft contributed ASP.Net, the
Entity Framework, a preview of the .Net Compiler Platform (codenamed
"Roslyn"), the VB and C# programming languages, the .Net Micro Framework,
and .Net Rx at first, and has since added more .NET components and
libraries, with even more to follow. Xamarin, Microsoft’s acquired maker of
cross-platform mobile development tools, contributed its MimeKit and Mailkit
libraries, Xamarin Mobile, Xamarin Auth and more. Other Foundation members
include representatives from Glimpse, Umbraco, IdentityMine, GitHub and a
handful of other companies.
Outlook
[return to top of this report]
Microsoft .NET and Visual Studio continue to concentrate on productivity features for developers, and in particular for team development. Modeling and testing
are two key areas of strength for the framework and its closely allied development environment.
Modeling tools include the Architectural
Explorer. AE allows architects to create an architectural diagram of an application and then use it to enforce architectural consistency on software builds. AE supports the Object Management Group’s Unified Modeling Language and domain-specific languages.
Microsoft has announced that release 4.8 is the last major version of the
.NET Framework. In late 2020, Microsoft will release .NET 5. This version, which
is now in preview, will work to:
- Produce a single .NET runtime and framework to use everywhere.
- Blend.NET Core, .NET Framework, Xamarin, and Mono.
- Build the product out from a single code-base that developers can work on
and use to improve scenarios.
Recommendations
[return to top of this report]
Those developing an enterprise-class Web application should consider
.NET. Using .NET enables development staff already well-versed in Visual
Basic or Visual C++ to leverage their existing knowledge without needing to
worry about learning the intricacies of remote object technology, network
protocols, or another programming language. In addition, Visual Studio’s
popularity ensures a large pool of potential employees should staff be
required. NET Framework 4.8 runs on Windows Server 2019, Windows Server 2016, Windows
Server 2012 R2, Windows Server 2012, and Windows Server 2008 R2 SP1, as well as
Windows 10, 8.1, and 7 SP1.
It’s important to note that come November 2020 or somewhere around that time,
Microsoft will roll out the full version of .NET 5, which spells the end for
.NET Framework — although the vendor will continue to support .NET Framework
4.8. There are expected to be more possibilities, however, with .NET 5.
Web Links
[return to top of this report]
.NET Foundation: https://www.dotnetfoundation.org/
Microsoft: https://www.microsoft.com/
Mono Project: https://www.mono-project.com/
Oracle: https://www.oracle.com/
[return to top of this report]