Microsoft .NET
The visual studio version 6.0 has several drawbacks especially in developing web applications. To overcome these drawbacks of visual studio 6.0, Microsoft started a project with the name Next Generation Windows Services (NGWS) in 1998. But later it was renamed to .Net in the year 2000 and first beta version of .net was released in 2000. .net is available as two products, .net framework and visual studio.net. To create and execute .net applications, .net framework is compulsory but not visual studio.net. Only purpose of VS.Net is to make application development easy and fast by providing GUI. When VS.Net is not available then you can develop .Net applications using notepad. Different versions of .Net framework and its corresponding VS.Net released up to now are as follows.
.Net Framework Visual Studio.Net
1.0 2002
1.1 2003
2.0 2005
3.0 ------
3.5 2008
4.0 2010
On the operating systems like Windows XP with Service Pack 3, Windows 2003 with Service Pack 1, Windows Vista and Windows 7 operating systems you can install both .net framework 4.0 as well as visual studio.net 2010. Recommended O/S is Windows Vista or Windows 7.
What is .Net?
.Net is collection of languages, technologies and servers. It contain languages like C#.net, VB.net, VC++.net and Visual F#.Net provided by Microsoft and several third party languages like C++.Net, Cobol.Net, Pascal.Net and Eiffel.Net. it contain technologies like ASP.Net, ADO.Net, Ajax and Silver Light. It contains servers like SQL Server, Biz talk Server and Share Point Portal Server.
In the name .Net, “.” Refers to object oriented programming and "Net" refers to Network applications and overall meaning of the name .Net is developing network applications using object oriented programming languages.
What is Platform Independence?
When programs of a language can be executed on any O/S then that language is said to be platform independent. To work with .Net, .Net framework is required and Microsoft releases .Net framework only for windows O/S and they released .Net framework specification to open standard by following which a company called Novell develops .Net framework for non windows O/S with the name Mono. But Mono is also available only for few O/Ss like Unix. Linux, Solaris and Mac and Mono is not providing all the features of .net framework released by Microsoft and hence Mono is not equal to .net framework and hence .net is platform dependent.
What is CPU platform Independence?
When programs of a language can be executed on any CPU platform then that language is said to be CPU platform independent or hardware independent. .Net applications can be executed on any CPU platform and hence .Net is CPU platform independent.
What is Language Independence?
In .Net a component created in one .Net language can be directly used in another .Net language without any modification to the code and hence .Net is language independent. when a component is created in C#.net then if the same is required in a project in VB.Net then it can be used in VB.Net without modifying the code.
.Net Framework
.Net framework is an integrated component of operating system that supports development and execution of next generation windows services and XML web services. .net framework architecture is as follows.
Complete .Net is .Net framework and in the diagram only important components of .Net Framework are listed. Here explanation was given related the four components Common Language Specification(CLS), Common Type System(CTS), Base Class Libraries(BCL) and Common Language Runtime(CLR).
Common Language Specification (CLS)
In .Net Microsoft wants to provide support for multiple languages. To integrate multiple languages in to one single technology, all those languages must follow a set of rules. CLS in .Net Framework is a set of rules and an object oriented programming model to be followed by every .net language. When a language follows these set of rules and object oriented programming model then that language is said to be CLS Compliant i.e. the language will be a .net language. Main purpose of CLS in .Net framework is to integrate multiple languages into .Net
Common Type System (CTS)
Every data type in .net is internally represented either in the form a class or structure. All the classes and structures related to data types in .net are collectively called as CTS. Even every .net language provides its own keywords for data types, internally all the languages use same classes and structures available in CTS. For example, in C#.net, datatype for integer data is "int" and in VBNet it is "integer". But when a variable is declared as "int" in c#.net or "integer" in vb.net, finally after compilation they will use the same structure from CTS i.e. "Int32". All the structures and classes available in CTS are common for all .net languages and purpose of this in .net framework is to support language independence in .Net
Base Class Libraries (BCL)
In C and C++ header files are available that provides library functions that can be directly used in any C or C++ program. Similar to header files in C and C++, in .net framework we have BCL that provide types that can be used in any .net application, where a type can be a class or structure or enumeration or interface or delegate. A class library is divided in to namespaces and namespaces will contain types. When you want to use a type from class library in your application then you have to add the reference of namespace that contains the type you want to use to your application and for this vb.net provides imports statement and C# provides using statement. This is similar to writing #include statement in C and C++. Total strength of .Net is in Base class libraries and without using at least one type from these base class libraries you cannot develop a .Net application. BCL are common for all .net languages to support language independence.
Common Language Runtime (CLR)
CLR is the runtime environment in which .net applications are executed. .Net applications are executed in CLR and not in execution environment provided by O/S. CLR is same as execution environment provided by O/S and hence CLR is also called as Virtual Executing System (VES). CLR forms as a layer on top of the operating system and provides its services between operating system and .net. CLR Architecture is as follows.
Class Loader
When a .Net application is executing then Class loader is responsible to verify what are the class libraries referred by that .net application and load all those class libraries in to memory to make them available for .net application. Class loader is not responsible for loading application code in to memory.
Code Manager
Code manager is responsible for loading .net application code in to memory and manage it until .net application is closed. The .net application code that is loaded in to memory and is running under the control of code manager is called as managed code and the .net application code that is loaded in to memory but is not under the control of code manager and is under the control of O/S is called as unmanaged code. Examples of unmanaged code are the code that communicates with O/S files and folders and network connections.
Garbage Collector
Garbage collector is responsible for automatic memory management for the .net application. Allocating memory for the variable and objects created in .net application and de-allocate memory when their life time is expired is the responsibility of garbage collector. Complete memory management in .Net applications is automatic and it is under the control of garbage collector.
Security Manager
In .net applications security can be provided either by using Role Based Security (RBS) or Code Access Security (CAS). In whatever the way security is provided, executing security related code is the responsibility of security manager.
Exception Manager
Exception manager is responsible for Exception handling in .net. It is responsible to verify whether there is any possibility for exceptions, raise the exceptions and execute exception handling code if available and otherwise terminate the application abnormally.
Thread Manager
Executing multiple tasks at a time is called as multi tasking. When you want to perform multi tasking in your .Net applications, then you need to create multiple threads in the application and in this case managing and executing those multiple threads created in the .Net application is the responsibility of thread manager.
Just In Time (JIT) Compiler
Every .net language has its own compiler and it compiles application according to the syntax of that language. But all .net language compilers will produce same code after compilation i.e. Microsoft Intermediate Language (MSIL) code or Common Intermediate Language (CIL) code. Advantage of MSIL code is it is CPU platform independent and also language independent. But MSIL code is not understandable by processor. JIT Compiler is responsible to compile MSIL code to CPU native code understandable by processor. CLR contains multiple JIT compilers, one for each CPU platform.
Microsoft started development on the .NET Framework in the late 1990s originally under the name of Next Generation Windows Services (NGWS). By late 2000 the first beta versions of .NET 1.0 were released. Version 3.0 of the .NET Framework is included with Windows Server 2008 and Windows Vista. Version 3.5 is included with Windows 7, and can also be installed on Windows XP and the Windows Server 2003 family of operating systems. On April 12, 2010, .NET Framework 4 was released alongside Visual Studio 2010.
Version
|
VersionNumber
|
Release Date
|
Visual Studio
|
Default in Windows
|
|
1.0.3705.0
|
2002-02-13
|
|
Windows XP Tablet and Media Center Editions
|
|
1.1.4322.573
|
2003-04-24
|
Visual Studio.NET 2003
|
Windows Server 2003
|
|
2.0.50727.42
|
2005-11-07
|
Visual Studio 2005
|
Windows Server 2003 R2
|
|
3.0.4506.30
|
2006-11-06
|
|
Windows Vista, Windows Server 2008
|
|
3.5.21022.8
|
2007-11-19
|
Visual Studio 2008
|
Windows 7, Windows Server 2008 R2
|
|
4.0.30319.1
|
2010-04-12
|
Visual Studio 2010
|
|
|
4.5.40805
|
2011-09-13 (Developer Preview)
|
Visual Studio '11'
|
Windows 8, Windows Server 8
|
.NET Framework 1.1
This is the first major .NET Framework upgrade. It is available on its own as a redistributable packageor in a software development kit, and was published on 3 April 2003. It is also part of the second release of Microsoft Visual Studio .NET(released as Visual Studio .NET 2003). This is the first version of the .NET Framework to be included as part of the Windows operating system, shipping with Windows Server 2003.
Changes in 1.1 in comparison with 1.0
Built-in support for mobile ASP.NETcontrols. Previously available as an add-on for .NET Framework, now part of the framework.
Security changes – enable Windows Forms assemblies to execute in a semi-trusted manner from the Internet, and enable Code Access Securityin ASP.NET applications.
Built-in support for ODBC and Oracle databases. Previously available as an add-on for .NET Framework 1.0, now part of the framework.
Internet Protocol version 6 (IPv6) support.
Numerous API changes.
.NET Framework 2.0
The 2.0 Redistributable Package can be downloaded for free from Microsoft, and was published on 22 January 2006.
The 2.0 Software Development Kit (SDK) can be downloaded for free from Microsoft.
Version 2.0 without any Service Pack is the last version with support for Windows 98 and Windows Me. Version 2.0 with Service Pack 2 is the last version with official support for Windows 2000 although there have been some unofficial workarounds published online to use a subset of the functionality from Version 3.5 in Windows 2000. Version 2.0 with Service Pack 2 requires Windows 2000 with SP4 plus KB835732 or KB891861 update, Windows XP with SP2 or later and Windows Installer3.1 (KB893803-v2)
Changes in 2.0 in comparison with 1.1
Generics
Language support for generics built directly into the .NET CLR.
Full 64-bit support for both the x64 and the IA-64 hardware platforms.
Numerous API changes.
SQL Server integration – .NET 2.0, VS 2005, and SQL Server 2005 are all tied together. This means that instead of using T-SQL, one can build stored procedures and triggers in any of the .NET-compatible languages.
A new hosting API for native applications wishing to host an instance of the .NET runtime. The new API gives a fine grain control on the behavior of the runtime with regards to multithreading, memory allocation, assembly loading and more (detailed reference). It was initially developed to efficiently host the runtime in Microsoft SQL Server, which implements its own scheduler and memory manager.
Many additional and improved ASP.NET web controls.
New data controls with declarative data binding.
New personalization features for ASP.NET, such as support for themes, skins, master pages and webparts.
Membership provider
Partial classes
Nullable types
Anonymous methods
Iterators
Data tables
.NET Framework 3.0
.NET Framework 3.0, formerly called WinFX, was released on 21 November 2006. It includes a new set of managed code APIs that are an integral part of Windows Vistaand Windows Server 2008 operating systems. It is also available for Windows XP SP2 and Windows Server 2003 as a download. There are no major architectural changes included with this release; .NET Framework 3.0 uses the Common Language Runtime of .NET Framework 2.0. Unlike the previous major .NET releases there was no .NET Compact Framework release made as a counterpart of this version. Version 3.0 of the .NET Framework shipped with Windows Vista. It also shipped with Windows Server 2008 as an optional component (disabled by default).
.NET Framework 3.0 consists of four major new components:
Windows CardSpace, formerly code-named InfoCard; a software component which securely stores a person's digital identities and provides a unified interface for choosing the identity for a particular transaction, such as logging in to a website.
.NET Framework 3.5
Version 3.5 of the .NET Framework was released on 19 November 2007, but it is not included with Windows Server 2008. As with .NET Framework 3.0, version 3.5 uses the CLR of version 2.0. In addition, it installs .NET Framework 2.0 SP1, (installs .NET Framework 2.0 SP2 with 3.5 SP1) and .NET Framework 3.0 SP1 (installs .NET Framework 3.0 SP2 with 3.5 SP1), which adds some methods and properties to the BCL classes in version 2.0 which are required for version 3.5 features such as Language Integrated Query (LINQ). These changes do not affect applications written for version 2.0, however.
As with previous versions, a new .NET Compact Framework 3.5 was released in tandem with this update in order to provide support for additional features on Windows Mobile and Windows Embedded CE devices.
Service Pack 1
The .NET Framework 3.5 Service Pack 1 was released on 11 August 2008. This release adds new functionality and provides performance improvements under certain conditions, especially with WPF where 20-45% improvements are expected. Two new data service components have been added, the ADO.NET Entity Framework and ADO.NET Data Services. Two new assemblies for web development, System.Web.Abstraction and System.Web.Routing, have been added; these are used in the ASP.NET MVC Framework and, reportedly, will be utilized in the future release of ASP.NET Forms applications. Service Pack 1 is included with SQL Server 2008 and Visual Studio 2008 Service Pack 1. It also featured a new set of controls called "Visual Basic Power Packs" which brought back Visual Basic controls such as "Line" and "Shape". Version 3.5 SP1 of the .NET Framework shipped with Windows 7. It also shipped with Windows Server 2008 R2 as an optional component (disabled by default).
.NET Framework 4
Key focuses for this release are:
.NET Framework 4.5 (Upcoming)
A preview version of .NET Framework 4.5 (Developer Preview: 4.5.40805) has been released on September 14, 2011.