代号为Whidbey的Visual Studio(2004)
"在每一个重要关头,先进的工具成为推动应用软件新浪潮的关键,而每一次应用软件浪潮又是推动计算领域迈向新水平的关键。" ——比尔·盖茨
在2004年,名为Whidbey的Visual Studio产品和.NET框架将全方位的大幅提高应用软件开发的各个方面。在全世界成千上万的客户的信息反馈的推动下,这个产品将会提高开发者的生产效率,提高内建的支持团队开发的能力。语言创新的特性、.NET框架的改进、企业开发的扩展支持,将会被Whidbey集成开发环境全部表现出来。
而且,作为面向伴随里程碑般重要平台的开发工具的未来版本的计划的一部分,Whidbey更深层次的整合和支持代号为Yukon的SQL Server。像Windows Server2003整合了.NET框架一样,SQL Server Yukon也在数据库引擎中整合了公共语言运行时(CLR)的功能,将数据库和工具的结合提高到新水平。Whidbey不仅让开发者能用Visual Basic和C#编写存储过程,而且进一步减少了开发数据中心应用软件所需的编码和劳动。
除了广泛改进集成开发环境的生产能力和加强对SQL Server的支持以外,Whidbey版本还包括如下一些引人注目的方面:
编程语言。在这个即将来临的版本中,微软将为Visual Studion的四种语言(Visual Basic,Visual C++,Visual C#与Visual J#)中每一种都增加与众不同的特性。在不牺牲现有语言功能和协同性的情况下,语言改革将使各自的开发团队的编程体验更加丰富。
.NET框架。Whidbey将对.NET框架类库进行扩充。这些方面包括更强大更灵活的基于Windows Form的客户端开发,精制的ASP.NET Web应用软件开发,更富生产力的ADO.NET数据访问,对最新版本Web Service标准的支持,以及扩展了功能的基于设备的开发。
企业开发。在即将到来的版本中微软计划对设计师和企业开发者提供改良的支持。新工具提供增强的工程分析和设计,软件配置管理、以及确保微软开发工具跨越应用软件生命周期的部署。
编程语言
作为支持.NET框架的20多种编程语言的基础,微软在Vsiual Studio .NET中提供了4种编写软件的语言。在Whidbey中微软为了提供一种丰富的具备用最少时间开发强大软件能力的语言,扩充了Visual Basic,Visual C++,Visual C#,以及Visual J#的特有能力。
Visual Basic
Whidbey版本的Visual Basic在继续提供对.NET框架的完全访问的同时,将从根本上提高开发者的生产力。Visual Basic Whidbey的关键设计目标:减少完成通用任务的编码工作量、明显地减少设计时编程错误、简化数据访问、提高RAD调试经验、以及为高级Visual Basic开发者提供高端特性。
首先,Visual Basic Whidbey将会超过50%地减少许多通用编程任务的相关编码。新的运行时对象和方法将会提供对.NET框架中最频繁使用的功能的直接访问。另外,改进的代码编辑器能自动的建立通用编程任务,让开发者去“填空”,把精力放在解决手头的问题而不是语言语法上。
第二,Visual Basic代码编写器既能为初级开发者也能为高级开发者显著减少开发期间(design-time)的编程错误。通过提供类似于微软Word中拼写和语法检查的功能,Visual Basic Whidbey能对普通语法错误提出纠正建议。并且,编译器会对那些导致运行时错误的语义性不合理代码(比如尝试在初始化之前访问程序中的元素)向开发者提出警告。
第三,Visual Basic Whidbey将会大幅度提高操纵和获取数据的能力。开发环境中简化的数据源设计,可用于本地和远端数据、商业对象、以及远程XML Web services。Whidbey重新引入了不编写一行代码就能生成数据绑定的应用程序的能力。作为许多数据访问场景的目标,这个特性使开发者通过在窗体上拖拽表或列就能自动产生可定制的、数据绑定的用户界面。
第四、Whidbey提供了对于Visual Basic开发者来说既强大又熟悉的调试环境。重新引入了“编辑后继续运行”(Edit and Continue)的功能,开发者能够边修改边测试代码,而无需中止和重新开始调试会话。这个反复的开发和调试循环(结合了高级错误纠正和中断模式下代码分析)曾经为Visual Basic开发者提供了最强大最灵活的调试环境。
最后,对Visual Basic高级开发者提供了一些语言增强特性,包括支持操作符重载、无符号数据类型、内联的基于XML的编码说明文档、以及partial types。另外,使用Visual Basic的开发者能够访问一种类型安全的、高性能的、编译时检查的泛型(generics)版本,从而可以通过数据类型多样性来促进代码复用。
像它的先前版本一样,Visual Basic Whidbey专注于使开发者能够迅速开发跨越全部层次的应用软件。在调试器、直观设计器、代码编辑器和语言方面计划的改进,将会极大的提高生产力,使开发者能更快的建立强壮的、第一流的应用软件,并且在web、商业团体或企业上部署。
Visual C++
在Whidbey中,Visual C++为瞄准Windows和.NET框架的系统软件和应用软件开发者都提供了比先前版本更强大的功能。计划增强产品的所有方面,包括编译器、开发环境、语言、以及核心库(诸如微软基础类库MFC和C-运行库CRT)。而且,Visual C++ Whidbey使开发者能直接用Visual Studio Whidbey集成开发环境为移动设备编写C++本机(native)应用程序(关于嵌入式C++开发的更多信息参见下面的"基于设备的开发"一节)。
对Whidbey中C++编译器的许多增强计划之一是特性导引最优化(Profile Guided Optimization,POGO)。POGO技术允许编译器导航应用软件并且收集如何使用该软件的信息。这个信息使Visual C++按照真实世界的使用模式来进一步优化代码。先前版本的64位POGO技术现在被放入可自由下载的平台SDK(PSDK)中; 在Whidbey里,这个技术还会扩展到32位核心编译器。
伴随着CLR最初版本的发布,Visual C++就提供了托管扩展,使开发者能够明确地利用.NET框架的全部能力。在Whidbey版本中,Visual C++将提供开发者C++专有的结构来访问Whidbey CLR的所有功能(比如泛型)。托管扩展其他方面的优化能够简化针对CLR的C++代码开发。
Visual C++ Whidbey扩充了C++核心库。历史上Visual C++包括了几个用来建立应用软件的世界级的类库——其中最引人注目的是MFC。在Visual C++ Whidbey中,MFC将会扩充一些新特性,其中包括对Windows Fusion(一种帮助减免为本机应用软件部署DLL时问题的技术)的支持。另外,扩展基于MFC的软件使其支持.NET框架方面的能力也有提高。
Visual C++ Whidbey继续保持它能够充分发挥底层平台的力量和性能的特点,提供既包括本机也包括托管的类库的语言体系,对它们进行扩充以便能成功建立所有商业解决方案。开发者利用这些改进来扩充当前投资的软件的功能,也可以投身于需要C++的全部力量和性能的新的软件开发中。
Visual C#
在Whidbey中,微软计划在C#中加入许多新特性,以区别于目前研究用和行业用的大量编程语言。这些特性将向C#开发者提供“专注于代码的RAD”(code-focused RAD),提供建立商业框架和可复用的面向对象组件的生产能力。在这些语言特性中包括泛型、枚举器、匿名方法和partial types。
由于日益增加的混合项目,程序员经常需要一种更好的手段复用和定制现存的基于组件的软件。为了达到这种高水平的代码复用,程序员通常使用称为泛型的特性。在Whidbey中,CLR包含一种类型安全的、高性能、编译时检查的泛型版本,它与C++中已有的模板和Java中将有的泛型在语法上区别很小,实现方式上却区别很大。泛型允许开发者一次性建立、测试和发布代码,但却能通过多种不同的数据类型来复用代码,而对应用软件的性能影响却微乎其微。与强类型的实现方式相比,CLR通过实现泛型可以减少代码臃肿,增强可读性和可维护性。微软目前计划在C#中同时支持泛型创建和泛型使用。
除了提高代码复用性,Visual C# 还将消除一些编程中容易出现的混乱琐碎,比如枚举模式。列举器(Iterator)的构造将显著的简化这项任务。以诸如CLU、Sather和Icon这样的研究用语言中类似特性为基础,列举器的构造使声明那些可以用foreach陈述来枚举元素的类型变得很容易。与必须建立类并且手工实现枚举模式的陈述机制比较起来,C#编译器能自动地将枚举器代码翻译为合适的类。
匿名方法是实用的语言概念,能让C#程序员在Whidbey的时间框架里建立用代理(delegate)包装的代码块,而在延后的时刻执行。它们是以称作lambda函数的语言概念为基础,类似于Lisp和Python中的。匿名方法动态定义被执行的时间,而不是象特定类中的命名方法那样预定义。匿名方法使一些操作更方便,特别是在方法的型构(signature)或者方法体需要在运行时改变的情况下。
最后,Whidbey使C#开发者能够将那些大量源代码组成的类型分割到几个使用partial types的不同源文件中。为了能更容易开发和维护代码,partial types使开发者能将机器产生的部分和用户编写的部分分开,从而能更有效的补充和维护工具产生的代码。
由于在语言创新上下功夫,C#将会继续被许多框架设计者和软件设计者选择。通过扩充它的现代化的语法,面向组件的特性以及现代语言的结构,C#将继续聚精于"code-focused RAD"的概念。
——未完待续——