设计师和开发人员需要考虑.NET 框架从1.0版(V1.0)到1.1版(V1.1)的四处关键变化。这些变化是新近集成的特性、新功能、兼容性问题和安全的变化。现在让我们来一个个更加仔细看看。
对集成特性的支持
继V1.0加入新特性之后,微软继续发布新的特性,它们在MSDN可以下载。尽管大多数的公司会欢迎这些新的特性,但是将它们分开发布会越来越难确保在部署应用程序的时候,所有桌面系统和服务器都具有正确的驱动程序和附件。而在V1.1版里集成这些特性,设计师就能够指望所有先前可选的特性现在都可用了。对大多数公司有最重大影响的地方是对移动Web(Mobile Web)和本地数据库驱动程序的支持。
对移动Web的支持
.NET框架最初发布之后不久,微软增加了对互连移动设备的支持,叫做微软移动Internet工具包(Microsoft Mobile Internet Toolkit)。现在它们被叫做ASP.NET移动控件,并被包含在V1.1和所有未来微软Visual Studio .NET产品里。ASP.NET的移动控件继承自ASP.NET的基础服务器控件,并增加了动态生成代码的能力,这些代码专门为运行Web应用程序的移动设备进行了优化。这些移动设备可以是全功能的PDA浏览器,也可以是5行20字符的移动电话显示屏。去除这些设备专用的生成特性让设计师和开发人员能够专注于其Web应用程序逻辑,并迅速地将已有的商业逻辑扩展到新的设备上。
本地数据库驱动程序
V1.0包含了OLEClient和SQLClient命名空间,用来优化对SQL服务器数据库和具有OLE驱动程序的数据库的访问。但是许多公司已经投资使用了更新的数据库技术,这些新技术能够利用OLE驱动程序所不能提供的特性,或者投资使用需要原来ODBC驱动程序的老系统。除了V1.0集成了之外,这些驱动程序都能够通过Web下载获得,但是现在V1.1已经包含了用于这些情况的驱动程序。
在过去一年中,我的许多合作单位需要访问Oracle数据库。尽管我对许多项目使用了beta版的Oracle驱动程序或者OLE提供器,但是现在我能够利用Oracle驱动程序从任何V1.1的产品访问Oracle数据库。用于Oracle的.NET框架数据提供器(Data Provider)用OracleClient命名空间扩展了System.Data命名空间,这样就能够使用Oracle客户端软件所提供的Oracle调用接口(Oracle Call Interface,OCI)来访问Oracle数据库。在《使用.NET新的可管理提供器访问Oracle数据》一文里,你会找到更多关于用于Ocacle的.NET框架数据提供器的内容。
对于只提供ODBC接口的数据库,用于ODBC的.NET框架数据提供器提供了一个System.Data.Odbc命名空间,它也被包含在了V1.1里。我已经在许多比较老的数据库上测试过它,甚至在运行于Linux上的MySql里测试过它。只要底层的ODBC驱动程序运行良好,它就运行良好。
新功能
V1.1里最重要的新功能是加入了实时版本的.NET压缩框架(CF)。CF重新编写了通用语言运行库、Windows窗体控件,以及其他设计用来在小型设备上高效工作的.NET框架特性。它还支持.NET框架类库的一个大型子集,它是微软为小型设备而优化的。CF将会支持的设备包括Pocket PC 2000、Pocket PC 2002、Pocket PC 2002 Phone Edition,以及装备了Windows CE .NET 4.1操作系统的定制嵌入设备。微软最近还宣布在未来几年CF会被扩展,从而允许开发人员开发用于智能电话(SmartPhone,原先的Stinger)平台的应用程序。
CF的这一增加是很重要的,因为应用程序开发人员过去在很大程度上忽略了CE平台,除非他们具有C++的技术。VB的开发人员不得不使用叫做嵌入式Visual Basic(eVB)的性能很差的解释型平台来开发用于CE的应用程序。如果不部署eVB运行库,这些应用程序甚至无法运行。C++的开发人员可以使用eVC来编写应用程序,但是即便如此,他们在开发高效率应用程序上也曾是举步维艰,因为eVC需要开发人员非常熟悉硬件、控件和线程模型,这样才能创建可用的应用程序。直到最近,CE的开发人员还必须将一个精简过的ADO数据访问库(ADOCE)和SQL服务器CE的第一代版本作为他们的数据库平台。
CF的这些新变化都是为了获得更好的性能。它给CE设备带来了可管理代码(例如,内存管理、代码可靠性和语言的中立性)的益处,并统一了桌面系统和服务器的编程模型。CF提供了同XML Web服务的无缝连接和丰富的数据库访问特性,包括许多XML类和ADO.NET的核心功能。SQLServerCE命名空间允许开发人员创建能够使Microsoft SQL服务器2000 Windows CE 2.0来访问数据的应用程序。尽管许多内部的特性是通过类来表现的,但是CF允许开发人员使用P/Invoke来访问本地平台的特性。如要获得更多关于CF的背景知识,见《.NET简化框架概览》。