楼主: idotnet

.NET Framework版本命名与部署常见问题解答

[复制链接]
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
11#
发表于 2009-7-24 11:41 | 只看该作者
2.4 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.

When an assembly is loaded the CLR performs various tests. Two such tests are validation and verification. During validation the CLR checks that the assembly contains valid metadata and CIL, and whether the internal tables are correct. Verification is not so exact. The verification mechanism checks to see if the code does anything that is 'unsafe'. The algorithm used is quite conservative; hence occasionally code that is 'safe' does not pass. Unsafe code will only be executed if the assembly has the 'skip verification' permission, which generally means code that is installed on the local machine.

.NET Framework uses appdomains as a mechanism for isolating code running in a process. Appdomains can be created and code loaded into or unloaded from them independent of other appdomains. This helps increase the fault tolerance of the application, as faults or crashes in one appdomain do not affect rest of the application. Appdomains can also be configured independently with different security privileges. This can help increase the security of the application by isolating potentially unsafe code. The developer, however, has to split the application into subdomains; it is not done by the CLR.

使用道具 举报

回复
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
12#
发表于 2009-7-24 11:42 | 只看该作者
2.5 Class library
The .NET Framework includes a set of standard class libraries. The class library is organized in a hierarchy of namespaces. Most of the built in APIs are part of either System.* or Microsoft.* namespaces. These class libraries implement a large number of common functions, such as file reading and writing, graphic rendering, database interaction, and XML document manipulation, among others. The .NET class libraries are available to all .NET languages. The .NET 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.[10] 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 WinForms, 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.

使用道具 举报

回复
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
13#
发表于 2009-7-24 11:58 | 只看该作者
2.6 Memory management
The .NET Framework CLR frees the developer from the burden of managing memory (allocating and freeing up when done); instead it does the memory management itself. To this end, the memory allocated to instantiations of .NET types (objects) is done contiguously[11] from the managed heap, a pool of memory managed by the CLR. As long as there exists a reference to an object, which might be either a direct reference to an object or via a graph of objects, the object is considered to be in use by the CLR. When there is no reference to an object, and it cannot be reached or used, it becomes garbage. However, it still holds on to the memory allocated to it. .NET Framework includes a garbage collector which runs periodically, on a separate thread from the application's thread, that enumerates all the unusable objects and reclaims the memory allocated to them.

The .NET Garbage Collector (GC) is a non-deterministic, compacting, mark-and-sweep garbage collector. The GC runs only when a certain amount of memory has been used or there is enough pressure for memory on the system. Since it is not guaranteed when the conditions to reclaim memory are reached, the GC runs are non-deterministic. Each .NET application has a set of roots, which are pointers to objects on the managed heap (managed objects). These include references to static objects and objects defined as local variables or method parameters currently in scope, as well as objects referred to by CPU registers.[11] When the GC runs, it pauses the application, and for each object referred to in the root, it recursively enumerates all the objects reachable from the root objects and marks them as reachable. It uses .NET metadata and reflection to discover the objects encapsulated by an object, and then recursively walk them. It then enumerates all the objects on the heap (which were initially allocated contiguously) using reflection. All objects not marked as reachable are garbage.[11] This is the mark phase.[12] Since the memory held by garbage is not of any consequence, it is considered free space. However, this leaves chunks of free space between objects which were initially contiguous. The objects are then compacted together, by using memcpy[12] to copy them over to the free space to make them contiguous again.[11] Any reference to an object invalidated by moving the object is updated to reflect the new location by the GC.[12] The application is resumed after the garbage collection is over.

The GC used by .NET Framework is actually generational.[13] Objects are assigned a generation; newly created objects belong to Generation 0. The objects that survive a garbage collection are tagged as Generation 1, and the Generation 1 objects that survive another collection are Generation 2 objects. The .NET Framework uses up to Generation 2 objects.[13] Higher generation objects are garbage collected less frequently than lower generation objects. This helps increase the efficiency of garbage collection, as older objects tend to have a larger lifetime than newer objects.[13] 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.[13]

使用道具 举报

回复
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
14#
发表于 2009-7-24 12:01 | 只看该作者
3 Standardization and licensing
In August 2000, Microsoft, Hewlett-Packard, and Intel worked to standardize CLI and the C# programming language. By December 2001, both were ratified ECMA standards (ECMA 335 and ECMA 334). ISO followed in April 2003 - the current version of the ISO standards are ISO/IEC 23271:2006 and ISO/IEC 23270:2006.[14][15]

While Microsoft and their partners hold patents for the CLI and C#, ECMA and ISO require that all patents essential to implementation be made available under "reasonable and non-discriminatory terms". In addition to meeting these terms, the companies have agreed to make the patents available royalty-free.

However, this does not apply for the part of the .NET Framework which is not covered by the ECMA/ISO standard, which includes Windows Forms, ADO.NET, and ASP.NET. Patents that Microsoft holds in these areas may deter non-Microsoft implementations of the full framework.

On 3 October 2007, Microsoft announced that much of the source code for the .NET Framework Base Class Library (including ASP.NET, ADO.NET, and Windows Presentation Foundation) was to have been made available with the final release of Visual Studio 2008 towards the end of 2007 under the shared source Microsoft Reference License.[1] The source code for other libraries including Windows Communication Foundation (WCF), Windows Workflow Foundation (WF), and Language Integrated Query (LINQ) were to be added in future releases. Being released under the non Open-source Microsoft Reference License means this source code is made available for debugging purpose only, primarily to support integrated debugging of the BCL in Visual Studio.

使用道具 举报

回复
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
15#
发表于 2009-7-24 12:03 | 只看该作者
4 Versions
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.[16]


The .NET Framework stack.Version Version Number Release Date Visual Studio Default in Windows
1.0 1.0.3705.0 2002-02-13 Visual Studio .NET  
1.1 1.1.4322.573 2003-04-24 Visual Studio .NET 2003 Windows Server 2003
2.0 2.0.50727.42 2005-11-07 Visual Studio 2005  
3.0 3.0.4506.30 2006-11-06  Windows Vista, Windows Server 2008
3.5 3.5.21022.8 2007-11-19 Visual Studio 2008 Windows 7, Windows Server 2008 R2
4.0 Beta 1  2009-05-20 Visual Studio 2010  

A more complete listing of the releases of the .NET Framework may be found on the .NET Framework version list.

使用道具 举报

回复
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
16#
发表于 2009-7-24 12:06 | 只看该作者
The .net Framework Stack.

513px-DotNet_svg.png (39.56 KB, 下载次数: 30)

513px-DotNet_svg.png

使用道具 举报

回复
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
17#
发表于 2009-7-24 12:08 | 只看该作者
4.1 .NET Framework 1.0
This is the first release of the .NET Framework, released on 13 February 2002 and available for Windows 98, Me, NT 4.0, 2000, and XP. Mainstream support by Microsoft for this version ended 10 July 2007, and extended support ended 14 July 2009.[17]

使用道具 举报

回复
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
18#
发表于 2009-7-24 12:10 | 只看该作者
4.2 .NET Framework 1.1
This is the first major .NET Framework upgrade. It is available on its own as a redistributable package or 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. Mainstream support for .NET Framework 1.1 ended on 14 October 2008, and extended support ends on 8 October 2013. Since .NET 1.1 is a component of Windows Server 2003, extended support for .NET 1.1 on Server 2003 will run out with that of the OS - currently 14 July 2015.

使用道具 举报

回复
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
19#
发表于 2009-7-24 12:12 | 只看该作者
4.2.1 Changes in 1.1 on comparison with 1.0
Built-in support for mobile ASP.NET controls. 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 Security in 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.
.NET Compact Framework - a version of the .NET Framework for small devices.
Internet Protocol version 6 (IPv6) support.
Numerous API changes.

使用道具 举报

回复
论坛徽章:
5
八级虎吧徽章
日期:2008-12-08 16:10:57NBA季后赛纪念徽章
日期:2009-06-16 11:28:17
20#
发表于 2009-7-24 12:17 | 只看该作者
4.3 .NET Framework 2.0
Released with Visual Studio 2005, Microsoft SQL Server 2005, and BizTalk 2006.

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.
It is included as part of Visual Studio 2005 and Microsoft SQL Server 2005.
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.[18] 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 Installer 3.1 (KB893803-v2).
It shipped with Windows Server 2003 R2 (not installed by default).

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表