.NET Framework


.NET Framework (正體)

Free Web Hosting with Website Builder

.NET Framework

开发 Microsoft
最近版本 3.5.30729.1 (3.5 SP1) / 2008年8月11日
操作系统 Windows XPSP2或以上版本
类型 系统平台
许可协议 Proprietary software
网站 www.microsoft.com/net/
查看  讨论  编辑  历史

.NET Framework 是由微软开发,一个致力于敏捷软件开发Agile software development)、快速应用开发(Rapid application development)、平台无关性和网络透明化的软件开发平台。.NET是微软为下一个十年服务器桌上型软件工程迈出的第一步。NET 包含许多有助于InternetIntranet应用迅捷开发的技术。

.NET Framework是微软公司继 Windows DNA 之后的新开发平台。.NET Framework 是以一种采用系统虚拟机运行的编程平台,以通用语言运行时(Common Language Runtime)为基础,支持多种语言(C#VB.NETC++Python等)的开发。

.NET 也为编程界面(API)提供了新功能和开发工具。这些革新使得程序设计员可以同时进行Windows应用软件网络应用软件以及元件和服务(web service)的开发。.NET 提供了一个新的反射性的面向对象程序设计编程界面。.NET 设计得足够通用化从而使许多不同高级语言都得以被汇集

Sun公司的Java 编程语言Java 2 Platform, 企业版技术是.NET平台的竞争对手之一,它们有很多概念也是互通的。

目录

版本

.NET Framework 1.0

完整版本号 - 1.0.3705

这是最初的 .NET 构架,发行于2002年。它可以以一个独立的可重新分发的包的形式或在一个软件发展工具包集中被获得。它也是第一个微软Visual Studio .NET的发行版的一部分(也被称作 Visual Studio .NET 2002)。

.NET Framework 1.1

完整版本号 - 1.1.4322

这是首个主要的.NET 框架升级版本,发行于2003年。它可以以一个独立的可重新分发的包的形式或在一个软件发展工具包集中被获得。它也是第二个微软Visual Studio .NET版本的一部分(也被称作Visual Studio .NET 2003)。它也是首个被Windows操作系统-Windows Server 2003所内置的 .NET 框架版本。

自 1.0 版本以来的改进:

  • 内置了对 mobile ASP.NET 控件的支持。这在 1.0 版本是以附加功能方式实现的,现在已经集成到框架的内部。
  • 安全方面的变更 - 使得 Windows 窗体代码以可靠的行为执行,从而可以在 Internet 环境内安全运行,并且加入了 ASP.NET 应用程序的代码安全访问功能。
  • 内置了对 ODBCOracle 数据库的支持。这在 1.0 版本是以附加功能方式实现的,现在已经集成到框架的内部。
  • .NET Compact Framework- 这是一个用于智能设备(例如Pocket PC或者SmartPhone)的 .NET 框架的子集。
  • IPv6的支持。
  • 大量的 API 变更。如需要详细的变更列表,请查阅 GotDotNet: API Changes between versions of the .NET Framework

.NET Framework 2.0

完整版本号 - 2.0.50727.42 发行于2005年10月27日

  • The 2.0 Redistributable Package 免费下载 Microsoft
  • The 2.0 Software Development Kit 免费下载 Microsoft
  • 这些元件都包含在 Visual Studio 2005 和 SQL Server 2005 里面。测试版免费下载 http://msdn.microsoft.com/getthebetas/ 通过MSDN宇宙版可以免费下载RTM版本。

自 1.1 版本以来的改进:

  • 大量的 API 变更。需要查看一个详细的清单的话,请查阅 GotDotNet: API Changes between versions of the .NET Framework
  • 一个新的 API 让需要管理一个 .NET 运行库实例的非 .NET 的应用程序可以做到这点。这个新的 API 对 .NET 运行库的各种功能,包括:多线程,内存分配,代码加载等 (详细说明) 提供了很好的控制。它最初是为Microsoft SQL Server能够有效率的使用 .NET 运行库而设计的,因为Microsoft SQL Server拥有它自己的日程管理器和内存管理器。

.NET Framework 2.0 SP1

随 .NET Framework 3.5 同时发行,请参看 .NET Framework 3.5。

.NET Framework 2.0 SP2

随 .NET Framework 3.5 SP1 同时发行,请参看 .NET Framework 3.5 SP1。

.NET Framework 3.0

主条目:.NET Framework 3.0

发布日期2006/11/21。曾用名WinFX。依然使用.NET Framework 2.0版本的CLR(公共语言运行时),并加入了适应未来软件发展方向的4个框架:

WPFWindows Presentation Foundation
提供更佳的用户体验, 用来开发Windows Forms程序以及流览器应用程序(参见WPF/E).
WCFWindows Communication Foundation
提供SOA(面向服务的软件构架)支持的安全的网络服务(Web Service)框架.
WWFWindows Workflow Foundation
提供一个设计与发展工作流程导向 (Workflow-oriented) 应用程序基础支持的应用程序界面。
Windows CardSpace 
提供一个 SSO 的解决方案,每个使用者都有各自的 Card。

.NET Framework 3.0 SP1

随 .NET Framework 3.5 同时发行,请参看 .NET Framework 3.5。

.NET Framework 3.0 SP2

随 .NET Framework 3.5 SP1 同时发行,请参看 .NET Framework 3.5 SP1。

.NET Framework 3.5

这个版本将包含一个支持C#和VB.Net中心的语言特性的编译器,以及对语言集成查询(Language-Integrated Query)的支持。该版本随Visual Studio 2008一起发布。

同时,.NET Framework 3.5 自动包含 .NET Framework 2.0 SP1 以及 .NET Framework 3.0 SP1,用于为这两个版本提供安全性修复,以及少量新增的类库(如 System.DateTimeOffest),此版本提供的新功能有:

  • 扩展方法(Extension Method)属性(Attribute),用于为扩展方法提供支持
  • LINQ 支持,包括 LINQ to Object、LINQ to ADO.NET 以及 LINQ to XML
  • 表达式目录树(Expression Tree),用于为 Lambda 表达式 提供支持
  • ASP.NET AJAX

.NET Framework 3.5 SP1

.NET Framework 3.5 SP1 自动包含 .NET Framework 2.0 SP2 以及 .NET Framework 3.0 SP2。该版本随Visual Studio 2008 SP1 发布,此版本提供了下列的新功能:

  • ASP.NET 动态数据。
  • ADO.NET Entity Framework。
  • 对 SQL Server 2008 的数据提供程序支持。
  • 对 .NET Framework 客户端配置文件(Client Profile)的支持。

.NET Framework 4.0

.NET Framework 4.0 主要增加了并行支持,目前处于 CTP 测试版本,随 Visual Studio 2010 CTP 版本共同发布。


企业基础 .NET提供开发软件的独立平台,内置高度安全的网络系统,相当倚重软件元件以及元件导向程序。在这方面它完全取代前者(COM)

CLR 与 CLI

CLI运作图

.NET的初级组成是CLI和CLR。CLI是一套运作环境说明,包括一般系统、基础类库和与机器无关的中间代码,全称为通用中间语言(CLI)。CLR则是确认操作密码符合CLI的平台。在CIL执行前,CLR必须将指令及时编译转换成原始机器码。

所有CIL都可经由.NET自我表述。CLR检查元数据以确保正确的方法被调用。元数据通常是由语言编译器生成的,但开发人员也可以通过使用客户属性创建他们自己的元数据。

如果一种语言实现生成了CLI,它也可以通过使用CLR被调用,这样它就可以与任何其他.NET语言生成的数据相交互。CLR也被设计为操作系统无关性。

当一个汇编体被加载时,CLR执行各种各样的测试。其中的两个测试是确认与核查。在确认的时候,CLR检查汇编体是否包含有效的元数据和CIL,并且检查内部表的正确性。核查则不那么精确。核查机制检查代码是否会执行一些“不安全”的操作。核查所使用的算法非常保守,导致有时一些“安全”的代码也通不过核查。不安全的代码只有在汇编体拥有“跳过核查”许可的情况下才会被执行,通常这意味着代码是安装在本机上的。

通过.NET,你可以用SOAP和不同的Web services进行交互。

标准化和版权

2000年8月,微软惠普英特尔共同制定CLI和C#编程语言的标准规格。2001年12月,以上两者通过并成为ECMA标准规格。(ECMA 335ECMA 334)。ISO亦于2003年4月跟随(ISO/IEC 23271ISO/IEC 23270)。

这会有一定的风险,但它可以鼓励标准联合的实现,以提供一座桥梁来把非Windows的软件转变为微软.NET。将此推广为标准的一个团体是国际.NET联合会(INETA)。

尽管微软及其他合作伙伴持有CLI及C#的专利,ECMA和ISO要求所有专利都应该遵守“合理与非歧视准则”。除此之外,这些公司亦同意让使用者免费使用这两项专利。

不过,这并不包括.NET Framework内并不为ECMA/ISO标准涵盖的范围,这包括了:Windows FormsADO.NETASP.NET。微软对上述部件所持有的专利,使开发者未必能够为非微软平台开发出一套完整的作品。

.NET vs. Java EE

公共语言基础(CLI),公共中间语言(CIL)以及 C# 与 Sun 的 Java 虚拟机和 Java 之间有不少的相似之处,因此它们无疑是强烈的竞争者。它们两者都使用它们各自的中间码(在微软,它们叫做公共中间语言(CIL),而在 Sun,它们叫字节码)。CIL 被设计来即时编译(JIT), 而 Java 的字节码在最初的时候则是设计成用于解释运行,而非即时编译。.NET 现在只在 Windows 上被完美地支持,而 Java 则可在很多平台上被完好支持。然而,现在一些正在开发中的实现版本例如Mono或者Shared source CLI可以用于在类 Unix 操作系统例如LinuxFreeBSDMac OS X上运行 .NET 应用程序。Sun 的一个产品,J2EE提供与微软的一些捆绑于 Windows 中的技术例如COM+(先前的MTS)和MSMQ等效的功能。

Java和.NET可经由IKVM, 一个在.NET平台上实现的Java虚拟机作更多的沟通。

Java有其专门的远程程序调用技术RMI(Remote Method Invocation), RMI的另一版本RMI-IIOP更可兼容CORBA

.NET vs. COM

不要将网域名称中的.com.net与这里的COM、.NET混淆在一起.

前一版软件元件技术由 Microsoft 所提出的 COM,该技术被用来建立大型(large-scale)的软件系统上,使用 COM+ 或 MTS 对于传统分布式元件有强化的作用。当 .NET 将 COM-objects 封装成 .NET 元件以及将.NET 元件封装成 COM-objects 后,Microsoft 分别将他命名为 Runtime Callable Wrapper (RCW) 和 COM Callable Wrapper (CCW)。很明显的,Microsoft 最终将以 .NET 全面取代 COM 成为软件元件的架构。Microsoft 希望开发者能够在 Win32 平台上使用 .Net 取代 COM,而已经存在的服务则通过抽象界面来使用(如:目前交易的 .Net 元件仍然使用 COM+)。

.Net Remoting & XML WebServices

.NET remoting 属于进程(process)内沟通的抽象方法。 Microsoft® .NET Remoting提供一个丰富可扩充的框架给存在两个不同 AppDomain 中的 Object,使得在不同进程(进程)和不同机器中能够进行无缝地沟通。.NET Remoting 提供一种强大但简单的可编程化模型并且在执行阶段支持数据交换。

XML Web services 将基础的功能区块布署到网络的不同计算机上。开放标准的通讯协议以及人和应用程序可以通过 Web Services 集成应用程序的环境来合作。应用程序可以从不同的来源使用多个XML Web Services 来建构应用程序而不需要知道他们在哪里以及如何来运作。

.NET 的语言

CLI被设计成支持任何面向对象的编程语言,分享共同对象模型与大型共同类库。.NET支持超过40种编程语言。这些编译器大都是免费的(厂商卖的是IDEs)。

大部分的语言都做了重大改变以搭配.NET Framework。厂商通常利用这个机会来同时改变语言的其他特性。

微软开发的.NET平台编程语言

  • C#,一个以C++Java语法为基础开发的一个全新的面向对象语言,是.NET开发的首选语言。
  • Visual Basic .NET,一个加强了面向对象支持的,支持多线程Visual Basic版本。
  • C++/CLI,一个C++的 .NET 平台版本变种。
  • JScript .NET,一个编译版本的 MicrosoftJScript语言。
  • J#,一个对应于Java和 J++(微软自己开发的Java变种)的 .NET 平台版本。

第三方使用 .NET 的编程语言

ASP.NET & ADO.NET

主条目:ASP.NET

ASP.NET 是内含于 .NET Framework 中,专门用来发展 Web 应用程序的一组类库集。

主条目:ADO.NET

ADO.NET 是内含于 .NET Framework 中,专门处理与数据来源沟通的数据访问类库集,被 Windows FormsASP.NET 应用程序大量使用,可说是 .NET Framework 中唯一的数据访问界面。

可供选择的实现版本

微软的 .NET Framework 是 .NET 技术的旗舰级实现版本,在此之外还有一些其他实现版本。

  • 微软的Shared Source Common Language Infrastructure是微软的 .NET Framework 的一个源码共享的实现版本。它可运行于Windows XPFreeBSD,和Mac OS X10.2。
  • Mono是一个开源的 .NET 运行时和开发库实现版本。Mono 现正由XimianNovell的一部分)和开源软件发展社区负责开发。它正迅速发展成熟,现已经包含了对 ASP.NET 和 ADO.NET 的支持,同时也正在加强对Windows Forms库的支持。它提供了一个 C# 编译器,而一个 VB.NET 编译器现在也已经处于 pre-beta 阶段。Mono 项目还包含了一些新的库和技术的开发:
    • Gtk: 一个GTK+GUI工具包的 .NET 封装。
    • xSP: 一个用 C# 编写的支持运行 ASP.NET 应用程序的网页服务器软件。
    • MonoDevelop:SharpDevelop的一个移植版本, 是一个符合GPL标准的面向 Gtk# 和 Mono 的 .NET 集成开发环境。
    • Novell.Directory.Ldap 类库:Lightweight Directory Access Protocol(LDAP) for .NET 的一个免费的实现版本。
    • SerialPortNet: Aserial portlibrary for .Net & Mono implementing .NET 2.0 specifications.
  • DotGNUPortable.NET不及 Mono 成熟,这得归咎于 Portable.NET 并不是在最初的时候就使用了微软的开发框架。

参考


参见

外部链接

官方

非官方

  • (简体中文)中国著名的 .NET 开发 Blog 站点博客堂
  • (简体中文)中国专注于 .NET 技术的 Blog 站点博客园






Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History