NET Framework
NET Framework
NET Framework
NET Framework
From Wikipedia, the free encyclopedia Jump to: navigation, search This article is about the Microsoft technology. For the top-level domain, see .net. For other uses, see .NET. .NET Framework
Developer(s)
Microsoft 13 February 2002; 9 years Initial release ago (2002-02-13) 4.0 (4.0.30319.1) / 12 April 2010; Stable release 20 months ago (2010-04-12) 4.5 / 13 September 2011; 3 Preview release months ago (2011-09-13) Windows 98 or later, Windows Operating system NT 4.0 or later Type Software framework MS-EULA, BCL under Microsoft License Reference Source License[1] msdn.microsoft.com/netframewor Website k The .NET Framework (pronounced dot net) is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability (each language can use code written in other languages). Programs written for the .NET Framework execute in a software environment (as contrasted to hardware environment), known as the Common Language Runtime (CLR), an application virtual machine that provides important services such as security, memory management, and exception handling. The class library and the CLR together constitute the .NET Framework. The .NET Framework's Base Class Library provides user interface, data access, database connectivity, cryptography, web application development, numeric algorithms, and network communications. Programmers produce software by combining their own source code with the .NET Framework and other libraries. The .NET Framework is intended to be used by most new applications created for the Windows platform. Microsoft also produces a popular integrated development environment largely for .NET software called Visual Studio.
Contents
[hide]
3.1 Common Language Infrastructure (CLI) 3.2 Security 3.3 Class library 3.4 Memory management
4 Standardization and licensing 5 Criticism 6 Obsolescence 7 Alternative implementations 8 References 9 External links
[edit] History
Main article: .NET Framework version history
The .NET Framework stack. Microsoft started the 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.[2] 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.[3] On 12 April 2010, .NET Framework 4 was released alongside Visual Studio 2010. The .NET Framework family also includes two versions for mobile or embedded device use. A reduced version of the framework, the .NET Compact Framework, is available on Windows CE
platforms, including Windows Mobile devices such as smartphones. Additionally, the .NET Micro Framework is targeted at severely resource-constrained devices. Version 1.0 1.1 2.0 3.0 3.5 4.0 4.5 Version Number 1.0.3705.0 1.1.4322.573 2.0.50727.42 3.0.4506.30 3.5.21022.8 4.0.30319.1 4.5.40805 Release Date 2002-02-13 2003-04-24 2005-11-07 2006-11-06 2007-11-19 2010-04-12 2011-09-13 (Developer Preview) Visual Studio 2008 Visual Studio 2010 Visual Studio '11' Visual Studio Visual Studio .NET Visual Studio .NET 2003 Visual Studio 2005 Default in Windows Windows XP Tablet and Media Center Editions[4] Windows Server 2003 Windows Server 2003 R2 Windows Vista, Windows Server 2008 Windows 7, Windows Server 2008 R2
A more complete listing of the releases of the .NET Framework may be found on the List of .NET Framework versions.
Simplified Deployment The .NET Framework includes design features and tools which help manage the installation of computer software to ensure it does not interfere with previously installed software, and it conforms to security requirements. Security The design is meant to address some of the vulnerabilities, such as buffer overflows, which have been exploited by malicious software. Additionally, .NET provides a common security model for all applications. Portability While Microsoft has never implemented the full framework on any system except Microsoft Windows, the framework is engineered to be platform agnostic,[5] and crossplatform implementations are available for other operating systems (see Silverlight and the Alternative implementations section below). Microsoft submitted the specifications for the Common Language Infrastructure (which includes the core class libraries, Common Type System, and the Common Intermediate Language),[6][7][8] the C# language, [9] and the C++/CLI language[10] to both ECMA and the ISO, making them available as open standards. This makes it possible for third parties to create compatible implementations of the framework and its languages on other platforms.
[edit] Architecture
Garbage Collection, security, and interoperability. By implementing the core aspects of the .NET Framework within the scope of the CLI, this functionality will not be tied to a single language but will be available across the many languages supported by the framework. Microsoft's implementation of the CLI is called the Common Language Runtime, or CLR. Main article: .NET assembly The CIL code is housed in .NET assemblies. As mandated by specification, assemblies are stored in the Portable Executable (PE) format, common on the Windows platform for all DLL and EXE files. The assembly consists of one or more files, one of which must contain the manifest, which has the metadata for the assembly. The complete name of an assembly (not to be confused with the filename on disk) contains its simple text name, version number, culture, and public key token. The public key token is a unique hash generated when the assembly is compiled, thus two assemblies with the same public key token are guaranteed to be identical from the point of view of the framework.[dubious discuss] A private key can also be specified known only to the creator of the assembly and can be used for strong naming and to guarantee that the assembly is from the same author when a new version of the assembly is compiled (required to add an assembly to the Global Assembly Cache). ..
[edit] Security
.NET has its own security mechanism with two general features: Code Access Security (CAS), and validation and verification. Code Access Security is based on evidence that is associated with a specific assembly. Typically the evidence is the source of the assembly (whether it is installed on the local machine or has been downloaded from the intranet or Internet). Code Access Security uses evidence to determine the permissions granted to the code. Other code can demand that calling code is granted a specified permission. The demand causes the CLR to perform a call stack walk: every assembly of each method in the call stack is checked for the required permission; if any assembly is not granted the permission a security exception is thrown.
Framework class library is divided into two parts: the Base Class Library and the Framework Class Library. The Base Class Library (BCL) includes a small subset of the entire class library and is the core set of classes that serve as the basic API of the Common Language Runtime.[11] The classes in mscorlib.dll and some of the classes in System.dll and System.core.dll are considered to be a part of the BCL. The BCL classes are available in both .NET Framework as well as its alternative implementations including .NET Compact Framework, Microsoft Silverlight and Mono. The Framework Class Library (FCL) is a superset of the BCL classes and refers to the entire class library that ships with .NET Framework. It includes an expanded set of libraries, including Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation among others. The FCL is much larger in scope than standard libraries for languages like C++, and comparable in scope to the standard libraries of Java.
increase the efficiency of garbage collection, as older objects tend to have a larger lifetime than newer objects.[14] Thus, by removing older (and thus more likely to survive a collection) objects from the scope of a collection run, fewer objects need to be checked and compacted.[14]
[edit] Criticism
More technical concerns and criticism relating to .NET include:
Applications running in a managed environment tend to require more system resources than similar applications that access machine resources more directly. Unobfuscated managed CIL bytecode can often be easier to reverse-engineer than native code.[18][19] One concern is over possible loss of trade secrets and the bypassing of license control mechanisms. Since Visual Studio .NET (2002), Microsoft has included a tool to obfuscate code (Dotfuscator Community Edition).[20] Newer versions of the framework (3.5 and up) are not pre-installed in versions of Windows below Windows 7 (although newer versions are available via Windows Update). For this reason, applications must lead users without the framework through a procedure to install it. Some developers have expressed concerns about the large size of the .NET Framework runtime installers for end-users. The size is around 54 MB for .NET 3.0, 197 MB for .NET 3.5, and 250 MB for .NET 3.5 SP1 (while using web installer the typical download for Windows XP is around 50 MB, for Windows Vista - 20 MB). The size issue is partially solved with .NET 4 installer (x86 + x64) being 54 MB and not embedding full runtime installation packages for previous versions. The .NET 3.5 SP1 full installation package includes the full runtime installation packages for .NET 2.0 SP2
as well as .NET 3.0 SP2 for multiple operating systems (Windows XP/Server 2003 and Windows Vista/Server 2008) and for multiple CPU architectures (x86, x86-64, and IA64).
The first service pack for version 3.5 mitigates this concern by offering a lighterweight client-only subset of the .NET Framework. Two significant limitations should be noted, though.[21] Firstly, the client-only subset is only an option on an existing Windows XP SP2 system that currently has no other version of the .NET Framework installed. In all other scenarios, the client-only installer will install the full version of the .NET Framework 3.5 SP1. Secondly, the client-only framework does not have a 64-bit option. However, the 4 release of the .NET Framework Client Profile will be available on all operating systems and all architectures (excluding Itanium) supported by the full .NET Framework.[22]
The .NET Framework currently does not provide support for calling Streaming SIMD Extensions (SSE) via managed code. However, Mono has provided support for SIMD Extensions as of version 2.2 within the Mono.Simd namespace; Mono's lead developer Miguel de Icaza has expressed hope that this SIMD support will be adopted by the CLR ECMA standard.[23] Streaming SIMD Extensions have been available in x86 CPUs since the introduction of the Pentium III. Some other architectures such as ARM and MIPS also have SIMD extensions. In case the CPU lacks support for those extensions, the instructions are simulated in software. While the standards that make up .NET are inherently cross-platform, Microsoft's full implementation of .NET is only supported on Windows. Microsoft does provide limited .NET subsets for other platforms such as XNA for Windows, Xbox 360 and Windows Phone 7, Silverlight for Windows and Mac OS X. Alternative implementations of the CLR, base class libraries, and compilers also exist (sometimes from other vendors). While all of these implementations are based on the same standards, they are still different implementations with varying levels of completeness in comparison to the full .NET version Microsoft ships for Windows and are on occasion incompatible.[citation
needed]
[edit] Obsolescence
In June 2011, Microsoft announced, and Steven Sinofsky reiterated: "For the web to move forward and for consumers to get the most out of touch-first browsing, the Metro style browser in Windows 8 is as HTML5-only as possible, and plug-in free. The experience that plug-ins provide today is not a good match with Metro style browsing and the modern HTML5 web." Adobe Flash was also deprecated as a web solution.[24] This triggered a wave of concern among developers, some concerned that Microsoft was signalling an intent to abandon the .NET foundation entirely. It was later clarified that the XAML user interface library for Windows, offering a choice of programming languages including C#, Visual Basic and C++ would continue to support Silverlight.[25]
for identifying any or all such patent rights."[26] It is more difficult to develop alternatives to the base class library (BCL), which is not described by an open standard and may be subject to copyright restrictions. Additionally, parts of the BCL have Windows-specific functionality and behavior, so implementation on non-Windows platforms can be problematic. Some alternative implementations of parts of the framework are listed here.
Microsoft's .NET Micro Framework is a .NET platform for extremely resourceconstrained devices. Suman includes a small version of the .NET CLR and supports development in C# (though some developers were able to use VB.NET[27], albeit with an amount of hacking, and with limited functionalities) and debugging (in an emulator or on hardware), both using Microsoft Visual Studio. It also features a subset of the .NET base class libraries (about 70 classes with about 420 methods), a GUI framework loosely based on Windows Presentation Foundation, and additional libraries specific to embedded applications. Mono is an implementation of the CLI and the .NET Base Class Library (BCL), and provides additional functionality. It is dual-licensed under free software and proprietary software licenses. It includes support for ASP.NET, ADO.NET, and Windows Forms libraries for a wide range of architectures and operating systems. It also includes C# and VB.NET compilers. Portable.NET (part of DotGNU) provides an implementation of the Common Language Infrastructure (CLI), portions of the .NET Base Class Library (BCL), and a C# compiler. It supports a variety of CPUs and operating systems. Microsoft's Shared Source Common Language Infrastructure is a non free implementation of the CLR component of the .NET Framework. However, the last version only runs on Microsoft Windows XP SP2, and was not updated since 2006, therefore it does not contain all features of version 2.0 of the .NET Framework. CrossNet is an implementation of the CLI and portions of the .NET Base Class Library (BCL). It is free software using the open source MIT License. As of September 2011, it seems that CrossNet development is not active since October 2007.
[edit] References
1. ^ a b Scott Guthrie (3 October 2007). "Releasing the Source Code for the NET
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=75b0bc1d-c26c-4bacac68-2b4d431cabb5&displaylang=en. Retrieved 4 May 2011. "Windows XP Tablet Edition and Windows XP Media Center Edition already contain .NET Framework 1.0 Service Pack 2."
5. ^ "Scott Guthrie: Silverlight and the Cross-Platform CLR". Channel 9. 30 April 2007.
http://channel9.msdn.com/shows/Going+Deep/Scott-Guthrie-Silverlight-and-the-CrossPlatform-CLR.
international.org/publications/standards/Ecma-334.htm.
10. ^ "Standard ECMA-372 C++/CLI Language Specification". ECMA. 1 December 2005.
http://www.ecma-iointernational.org/publications/standards/Ecma-372.htm.
11. ^ a b "Base Class Library". http://msdn.microsoft.com/netframework/aa569603.aspx.
Framework". Archived from the original on 3 July 2007. http://web.archive.org/web/20070703083608/http://msdn.microsoft.com/msdnmag/issues /1100/GCI/. Retrieved 1 June 2008.
13. ^ a b c "Garbage collection in .NET".
Microsoft .NET Framework". Archived from the original on 26 June 2007. http://web.archive.org/web/20070626080134/http://msdn.microsoft.com/msdnmag/issues /1200/GCI2/default.aspx. Retrieved 1 June 2008.
15. ^ ISO/IEC 23271:2006 - Information technology - Common Language Infrastructure
(CLI) Partitions I to VI
16. ^ ISO/IEC 23270:2006 - Information technology - Programming languages - C# 17. ^ "Microsoft's Empty Promise". Free Software Foundation. 16 July 2009. Archived from
the original on 5 August 2009. http://www.fsf.org/news/2009-07-mscp-mono. Retrieved 3 August 2009. "However, there are several libraries that are included with Mono, and commonly used by applications like Tomboy, that are not required by the standard. And just to be clear, we're not talking about Windows-specific libraries like ASP.NET and Windows Forms. Instead, we're talking about libraries under the System namespace that provide common functionality programmers expect in modern programming languages"
18. ^ "Reverse Engineering Risk Assessment".
http://www.preemptive.com/images/documentation/Reverse_Engineering_Risk_Assessm ent.pdf.
19. ^ Gartner, Inc. as reported in "Hype Cycle for Cyberthreats, 2006", September 2006, Neil
22. ^ "'.NET Framework 4 Client Profile - Introduction'". Archived from the original on 4
http://www.osnews.com/story/24846/Windows_8_HTML5_JS_Comment_Causes_Panic _Among_Developers
26. ^ ISO 9001:2008, Foreword 27. ^ http://www.christec.co.nz/blog/archives/317
.NET Framework Developer Center .NET Framework 3.5 (MSDN) .NET Framework 4.0 (MSDN) [show]
v d e
.NET Framework
A r c h i t e c t u r e
Base Class Library Common Language Runtime Code Access Security Assembly Metadata COM Interop
C o
m m o n L a n g u a g e I n f r a s t r u c t u r e ( C L I ) C Common1 L I L a n g u a g e s
Managed
F# J# JScript .NET
Windows PowerShell
Axum A# Boo Cobra M Oxygene IronScheme (IronLisp) IronPython IronRuby Nemerle Phalanger P#
Other2
C o m p o n e n t s
ADO.NET Entity Framework Data Services ASP.NET AJAX MVC Dynamic Data Language Integrated Query CardSpace ClickOnce Communication Foundation Dynamic Language Runtime Forms Presentation Foundation Remoting Workflow Foundation
O t h e r i m p l e m e n t a t i o n s
Mono Compact Framework XNA Framework Micro Framework Portable.NET Silverlight SSCLI DotGNU
C o m p a r i s o n s U p c o m i n g
Java and C# C# and Visual Basic .NET Java and .NET platforms
"Jasper" "Roslyn"
P a s t T o o l s
1
"Acropolis"
CLR Profiler
Languages that had been supported, is supported, or will be supported, in Visual Studio or .NET Framework. 2 Non-academic or research languages with relatively large user-bases. [show]
v d e
i a W e MSHTML RSS Platform JScript VBScript BHO XDR SideBar Gadgets b D a t a Data Access Components Extensible Storage Engine ADO.NET ADO.NET Entity a Framework Sync Framework Jet Engine MSXML OLE DB OPC c c e s s N e t w o Winsock (LSP) Winsock Kernel Filtering Platform Network Driver Interface Specification r Windows Rally BITS P2P API MSMQ MS MPI DirectPlay k i n g C o m m u n iMessaging API Telephony API WCF c a t i o n A Win32 console Windows Script Host WMI (extensions) PowerShell Task Scheduler d Offline Files Shadow Copy Windows Installer Error Reporting Event Log Common Log m System File i
n i s t r a t i o n a n d m a n a g e m e n t C o m p o n e n COM COM+ ActiveX Distributed Component Object Model .NET Framework t m o d e l L Base Class Library (BCL) Microsoft Foundation Classes (MFC) Active Template Library i(ATL) Windows Template Library (WTL) b r a r
i e s D e v i c e Windows Driver Model Windows Driver Foundation (KMDF UMDF) WDDM NDIS d UAA Broadcast Driver Architecture VxD r i v e r s S e c u Crypto API (CAPICOM) Windows CardSpace Data Protection API Security Support r Provider Interface (SSPI) i t y . N ASP.NET ADO.NET Base Class Library (BCL) Remoting Silverlight TPL WCF E WCS WPF WF T S Factory Enterprise Library Composite UI CCF CSF EFx o f t w a r e f a c t o r
i e s I P MSRPC Dynamic Data Exchange (DDE) Remoting WCF C A c c e s s iActive Accessibility UI Automation b i l i t y T DirectWrite Text Services Framework Text Object Model Input method editor Language e Interface Pack Multilingual User Interface Uniscribe x t a n d m u l t i l i n g u a l s u p p
o r t [show]
v d e
Microsoft
B o a r d o f d i r e c t o r s O p e r a t i n g
Steve Ballmer Dina Dublon Bill Gates Raymond Gilmartin Reed Hastings Maria Klawe David Marquardt Charles Noski Helmut Panke
Windows (components) Windows Embedded Windows Home Server Windows Mobile Windows Phone Windows Server Xbox 360 system software
s y s t e m s
D e s k t o p s o f t w a r e M o b i l e s o f t w a r e
Bob Dynamics MDOP Encarta Expression Flight Simulator Forefront Home Internet Explorer Make Compatible MapPoint Math Money Office Portable Workspace Creator Security Essentials Skype Streets & Trips Student Virtual PC Visual Studio Works
Internet Explorer Mobile Office Mobile Windows Phone Live Windows Embedded CE Microsoft Tellme Bing Mobile Visual Studio Express for Windows Phone Expression Blend
S e r v e r s o f t w a r e T e c h n o l o g i e s
SQL Server IIS PWS Exchange BizTalk Commerce TMG Server System Center SharePoint Search Server Lync Server Terminal Services Microsoft Host Integration Server Active Directory DirectX .NET Windows Media PlaysForSure App-V Hyper-V Silverlight Mediaroom Microsoft Auto Microsoft Tag HDi
Ignition Microsoft Store Microsoft Pinpoint Microsoft Wave MSN (Games MSNBC msnbc.com ninemsn) TechNet Windows Live (Groups Hotmail ID Messenger Spaces) Microsoft Popfly Windows Phone Marketplace Games for Windows Live Xbox Live (Arcade Marketplace) Zune Social
t i e s
Live
G a m i n g
Microsoft Game Studios Zone XNA Xbox Xbox 360 Games for Windows Kinect
H a r Released d w a
LifeCam Lifechat SideWinder Courier Venus Zune (30 80 / 120 4 / 8 / 16 HD) Fingerprint Jazz Audio System Cordless Phone Ultra-mobile PC Pocket PC Roundtable Response Point Kin MSN TV Broadband Networking
Prototypes
r e
Discontinued
E d u c a t i o n a n d r
MCPs MSDNAA MSCA Microsoft Press Microsoft MVP Student Partners Research
e c o g n i t i o n L i c e n s i n g C o n f e r e n c e s C r i t i c i s m
Windows Windows 9x (section) Windows 2000 (section) Windows Me (section) Windows XP Windows Vista Xbox 360 Internet Explorer (section) Windows refund iLoo (section)
L i t i g a t i o n A c q u i s i t i o n s
Alcatel-Lucent v. Microsoft European Union Microsoft competition case United States v. Microsoft Microsoft v. Lindows Apple v. Microsoft Microsoft vs. MikeRoweSoft
Altamira Software aQuantive Azyxxi Blue Ribbon Soundworks Bungie Calista Technologies Colloquis Connectix Consumers Software Danger Farecast FASA Studio Fast Search & Transfer Firefly Forethought GIANT Company Software Groove Networks Hotmail Jellyfish.com LinkExchange Lionhead Studios Massive Incorporated Onfolio PlaceWare Powerset ProClarity
Rare ScreenTonic Skype Communications Teleo Tellme Networks Twisted Pixel Games Vermeer Technologies Visio Corporation VXtreme WebTV Networks Winternals Yupi
Annual Revenue: $62.484 billion USD (2010) Employees: 89,000 (2010) Stock Symbol: MSFT Website: www.microsoft.com
Further information: List of Microsoft topics Retrieved from "http://en.wikipedia.org/w/index.php? title=.NET_Framework&oldid=469999598" Categories:
Microsoft development tools .NET framework 2002 software Computing platforms Microsoft application programming interfaces All accuracy disputes Articles with disputed statements from June 2010 All articles with unsourced statements Articles with unsourced statements from September 2009 Articles with unsourced statements from April 2010 Log in / create account
Hidden categories:
Views
Article Talk
Variants
Actions Search
Top of Form
Special:Search
Bottom of Form
Navigation
Toolbox
Main page Contents Featured content Current events Random article Donate to Wikipedia Help About Wikipedia Community portal Recent changes Contact Wikipedia What links here Related changes Upload file Special pages Permanent link Cite this page Create a book Download as PDF
Interaction
Print/export
Printable version Afrikaans Azrbaycanca Bosanski Catal esky Dansk Deutsch Espaol Euskara Franais Hrvatski Bahasa Indonesia slenska Italiano Lietuvi Magyar Malti Bahasa Melayu Nederlands Norsk (bokml) O'zbek Polski Portugus
Languages
Slovenina Slovenina / Srpski Suomi Svenska Trke Ting Vit This page was last modified on 7 January 2012 at 00:47. Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. See Terms of use for details. Wikipedia is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. Contact us Privacy policy About Wikipedia Disclaimers Mobile view