Technology .NET Framework and Mono
.NET Framework — a software platform, mobile binary environment released by Microsoft in 2002 and enables to run the compiled applications on any hardware platform in the Windows environment. The platform is performing (binary) environment Common Language Runtime (CLR), capable to perform both conventional programs and web server applications. NET Framework supports the creation of programs written in different programming languages.
It is believed that platform .NET Framework has been the response of Microsoft on the scoring by the time the great popularity of the Java platform of Sun Microsystems (now owned by Oracle).
Although .NET is a proprietary technology of Microsoft and officially designed to work under operating systems Microsoft Windows, but there are independent projects (especially it’s Mono-and Portable.NET) that allows you to run programs .NET on many other operating systems.
Development of the platform started in 1999. January 13, 2000 announced new strategy of the company, dubbed Next Generation Windows Services (abbr. NGWS, Rus. The new generation of Windows services). The new strategy was to unite into a single set of existing and future developments by Microsoft to enable users to work with the world wide web from wireless devices with access to the Internet, as with desktop computers. It was stated that despite the enormous capabilities of home computers, the Corporation believes it is important to ensure services are of new generation and on devices other than PCs, that is “netbooks” based on server support.
Due to the small capacity power sources of mobile devices, storage and transfer applications should be made by servers, while at that time almost all user information and stored on computers locally. Then the idea of transition to “serverzertifikat” models had strong support among the leaders of the largest IT companies, as promised, the security binding according to the end user from the server.
Microsoft at that time there were many reasons for the transition to the new strategy. The company dominated the market of operating systems and web browsers, has a lot of developments in the field of software for Internet portals including MSN and WebTV, and also had interests in companies engaged in the provision of rental via the Internet. In addition, the Corporation has had many different (and often incompatible) environments, and programming technologies as development tools for programmers, that is, for Visual Basic there was a set of applications, and C++. Therefore, one of the design goals of the new platform was to bring together all of the most successful developments under a single platform and unifying.
In addition, the task was to follow all the current trends in the field of programming at the time. So, for example, the new platform was supposed to directly support object-orientation, type safety, garbage collection and structured exception handling. In addition, corporations had to provide your response to the gaining popularity of the Java platform from Sun.
According announced at the time the plans, they included the development of a new version of the operating system, and a new version of the IDE for programmers, which would be designed to develop web-based applications. In addition, transferred to the new platform was to be Microsoft Office. Example new services introduced by Microsoft, is the Passport is an electronic wallet that allows users to register once for making online purchases without having to enter different sites, credit card numbers and personal data.
The basis for the company’s new strategy was the development of Windows DNA 2000, submitted in September 1999. Windows DNA 2000 combines new version of SQL Server and new software tools to facilitate the development of web applications.
The first step to a new version of the platform was Windows 2000, which was one of the pieces of technology called Windows Distributed interNet Applications (DNA) 2000, in which presented the latest on the moment diagram of three-tier programming model, first introduced in Windows NT 4.0.
At the time this scheme consisted of a client computer (Windows or web app), the middle level, components based on COM+ and database (usually SQL Server. NGWS had to change the path of development of Windows DNA for exclusive use of XML as a data exchange standard. XML was chosen because it was the development of HTML markup language, which is the main markup language on the world wide web, and in addition it provided a convenient way of describing the data. In the model of NGWS each part of a three-tier structure (client application, middleware and database) had to interact with others, using XML packages. To simplify the development of code using XML, it was assumed that the new version of Visual Studio will generate the XML code, freeing developers from having to manually write the XML.
For example, it was planned that the developers can write a web site for e-Commerce entirely on a new version of Visual Basic, and due to the fact that information exchange will occur using XML, developers can create client applications that work on Linux, Solaris and Mac OS. That is, in order for the application or operating system can communicate with each other was just a standard support.
To demonstrate his intention Microsoft launched website Passport, logging on to the user free of charge to get an electronic wallet (eWallet), oprisavci the process of shopping in online stores.
Six months later, Microsoft renamed the platform to Microsoft.Net declaring that “the strategy of the Corporation, will entirely be determined by the platform .Net”, and all Microsoft products will eventually be rewritten to support this platform. In addition to this change was supposed to affect server applications — Microsoft SQL Server, Exchange, BizTalk, and Microsoft Office package had to be converted to Office.Net.
By this time it was timed and the publication of a document entitled Microsoft .NET: Realizing the Next Generation Internet (eng. Microsoft .NET: Creating the next generation Internet) on the official Microsoft website. It provided a General overview of the new platform, and the emergence of a new platform described as a “revolution”. This document was first given a description (albeit brief) the technical implementation of the platform. So, developers were offered instead of manual entering of a large mass of code to collect their applications from ready-made blocks that should accelerate the development. Such “building blocks” refers, in particular, the following modules:
Identity (Rus. Personality) is a technology that combines Windows authentication and Microsoft Passport, designed to provide different levels of security, from passwords and e-wallets, and ending with smart cards and biometric identification devices.
November 12, 2000, Microsoft published on its website .NET Framework SDK Beta 1, contains everything necessary for first experiences with the new platform. However, due to “dampness” of the program, the company recommended to put it only on computers that are intended solely for tests. This SDK can only run on Windows 2000, Windows NT 4.0 (which contains NTOP for support ASP.NET), Windows 98, and Windows ME, and stable work shortly before it released SQL Server 2000 is not guaranteed. This version contained a huge number of errors starting problems when installing and finishing not full support their own namespace depending on the version of Windows.
The basic idea during development .NET Framework has been the freedom of the developer by providing him the possibility to create different types of applications that can run on different types of devices and in different environments.
The second principle was to focus on systems that are running operating systems Microsoft Windows.
Program .NET Framework, written in any supported programming language, first translated by the compiler into a single .NET intermediate byte-code, Common Intermediate Language (CIL) (formerly called Microsoft Intermediate Language, MSIL). In terms of the .It turns out the NET Assembly, eng. assembly. Then the code is either executed by the virtual machine CLR, or is utility NGen.exe in executable code for a specific target processor. Using a virtual machine is preferable, because it saves developers from having to worry about the peculiarities of hardware. In the case of using a virtual machine CLR, integrated the JIT compiler on the fly (just in time) converts intermediate byte code into native code of the processor. Modern technology allows dynamic compilation to achieve high performance. The virtual machine is the CLR itself takes care of basic security, memory management and exception system, and frees you from the work piece.
Architecture .NET Framework are described and published in the specifications of the Common Language Infrastructure (CLI) developed by Microsoft and approved by ECMA and ISO. The CLI is described in data types .NET metadata format the structure of the program, the system of execution of byte code and much more.
The object classes .NET, available for all supported programming languages, see the library Framework Class Library (FCL). FCL includes classes in Windows Forms ADO.NET, ASP.NET Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation, and others. The core of the FCL is called the Base Class Library (BCL).
Development environment support .NET:
- Microsoft Visual Studio (C#, Visual Basic .NET, Managed C++, F#)
- Embarcadero RAD Studio (Delphi for .NET); previously Borland Developer Studio (Delphi for .NET, C#)
App .NET you can also develop in a text editor, simply invoking the compiler from the command line.
Version history .NET Framework
Microsoft began to develop .NET Framework in 1999 under the name “Next Generation Windows Services” (NGWS). In 2000 was released the first beta version .NET 1.0.
|Version||The version number||Release date||Visual Studio||By default in Windows|
|1.0||1.0.3705.0||May 1, 2002||Visual Studio .NET|
|1.1||1.1.4322.573||April 1, 2003||Visual Studio .NET 2003||Windows Server 2003|
|2.0||2.0.50727.42||July 11, 2005||Visual Studio 2005|
|3.0||3.0.4506.30||November 6, 2006||Visual Studio 2005 + extensions||Windows Vista, Windows Server 2008|
|3.5||3.5.21022.8||November 9, 2007||Visual Studio 2008||Windows 7, Windows Server 2008 R2|
|4.0||4.0.30319.1||12 APR 2010||Visual Studio 2010|
.NET Framework 1.0
First edition .NET Framework was released on 5 January 2002 of the year for Windows 98, NT 4.0, 2000 and XP. General support by Microsoft ended July 10, 2007, and extended support ended 14 July 2009.
.NET Framework 1.1
Next release .NET Framework was released 1 APR 2003 . It was the first version, automatically installed by the operating system (Windows Server 2003). For older operating systems .NET Framework 1.1 was available as a separate installation package. General support by Microsoft ended on 14 October 2008, and extended support ends on 8 October 2013.
.NET Framework 2.0
Version 2.0 was released simultaneously with Visual Studio 2005, SQL Server 2005 and BizTalk 2006. With the release of version 2.0 added support for custom (generalized, source, generic) classes, anonymous methods, full support for 64-bit platforms, x64 and IA-64.
.NET Framework 3.0
Version .NET Framework 3.0, released in 2006 year, originally it was called WinFX, which reflect its essence: the extension .NET Framework 2.0 with all the libraries and adding four new components:
- Windows Presentation Foundation (WPF) is a presentation graphics using XAML
- Windows Communication Foundation (WCF)
- Windows Workflow Foundation (WF)
- Windows CardSpace
.NET Framework 3.5
Released in November 2007 .NET 3.5 as the version 3.0 uses the CLR of version 2.0. Innovations in comparison with .NET Framework 3.0 include:
C# 3.0 and VB.NET 9.0
Added LINQ providers and LINQ to Objects, LINQ to XML and LINQ to SQL
ASP.NET AJAX is included in the delivery.
Enhanced functionality of WF and WCF.
Added System namespace.CodeDom.
.NET Framework 4.0
Microsoft has announced .NET 4.0 Sep 29, 2008. The first beta version appeared on 20 may 2009 , along with a beta version of Visual Studio 2010. Innovations include:
- Parallel Extensions PLINQ (Parallel LINQ) and TPL (Task Parallel Library), is designed to simplify programming for multiprocessor and distributed systems;
- Innovations in the Visual Basic and C#;
- Technology Managed Extensibility Framework (MEF);
- Full support for IronPython, IronRuby and F#;
- Support subsets .NET Framework and ASP.NET in the “Server Core”;
- Support For Code Contracts;
- Modeling tools of Oslo and the M programming language designed for creating domain-specific languages and models
Final version .NET Framework 4.0 was released 12 APR 2010 , together with the final version of Visual Studio 2010.
The programming languages .NET
One of the main ideas of Microsoft .NET is the compatibility of software components written in different languages. For example, a service written in C++ for Microsoft .NET, can access 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 the exception generated by the method written in C# can be caught and handled in Delphi. Each library (Assembly) in .NET has information about its version, which allows to eliminate possible conflicts between different versions of assemblies.
Languages bundled with Microsoft Visual Studio
J# — the last time was included in Visual Studio 2005
C++/CLI — a new version of Managed C++
F# is a member of the family of ML programming languages included in Visual Studio 2010
Not built-in, but actively supported languages
Support .NET is not active.
Ada — see A#
Boo, based on Python
Component Pascal (closer to Oberon than to Pascal)
Delphi: Delphi 8, Delphi 2005-2010, Delphi XE
IronRuby — an implementation of the Ruby language
IronPython — implementation of Python
Nemerle is a hybrid functional/imperative language
Oberon for .NET (ETH) — minor extensions for .NET. The project was suspended.
Zonnon is fully integrated in Visual Studio
Criticism of the implementation of Microsoft technologies .NET Framework
The implementation of the platform .NET Framework and caused a lot of criticism. One of the main objects of criticism is the less efficient use of system resources compared to other technologies. For example, multiple applications running in a managed environment tend to capture more resources than application of the same type, but having more direct access to computer resources.
The discontent of developers is the fact that managed CIL bytecode, not subjected to obfuscation, can be easily decompiled compared to the natural code. This vulnerability can result in the loss of trade secrets or give the possibility of bypassing mechanisms of control of observance of license agreements.
A new version of the framework (3.5 and later) has caused a new wave of discontent that they are not predostavlyayutsya in versions of Windows prior to the release of Windows 7, forcing users to spend considerable time to install them.
From a technical point of view, the platform also has been criticized because of the lack of support calls Streaming SIMD Extensions (SSE) in managed code. However, in Mono solved this problem by adding support for SIMD Extensions version 2.2 in the namespace Mono.Simd. Another reason for criticism is to support standards, effectively limiting cross-platform implementation .NET Framework, resulting in full implementation of the platform is present only for Windows. In part, the lack of mobility compensate the development of several versions of the platform for mobile devices, as well as truncated versions .NET Framework for other operating systems. However, despite the proximity of the standards adopted in the development of these versions, the ultimate realization of full compatibility do not possess.
The Mono Project
Mono is a project to create a full-fledged incarnation of the system .NET Framework on the basis of free software. The main developer of the project Mono — Xamarin, formerly Novell. After the conclusion of the Microsoft agreement with Novell, the Mono platform was officially recognized by the implementation .NET on Unix-like operating systems: Linux, Mac OS X and others. (Although the Mono works successfully under Microsoft Windows). However, the agreement only applies to Novell and Novell clients; technology ASP.NET, ADO.NET and Windows Forms not been standardized ECMA/ISO and their use in Mono is threatened by legal claims from Microsoft (claims are only possible in countries where there are patents on software). Mono provides an implementation of ASP.NET, ADO.NET and Windows.Forms, but at the same time recommends not to use these APIs.
The project is headed by Miguel de Icaza, a well-known developer, founder of the GNOME project. The implementation of Mono are available for the following operating systems:
- Microsoft Windows
- Linux, BSD (FreeBSD, OpenBSD, NetBSD),
- Mac OS X
- Apple iOS,