前言
Visual Studio是微软最知名的产品之一,在使用微软技术的开发人员的心目中尤为如此。相信这一点无须多说。它建立在IDE(统一开发环境)的基础之上,可用于开发多种不同类型的应用程序。
Visual Studio,通常被简称为VS(以下皆按此简称),支持多种平台和编程语言。了解VS的历史以及每个版本的更迭,对学习它的扩展性开发会很有好处。所以在这里简单地说说VS在过去的12年里的历史。
VS的历史
在软件领域,VS的历史算比较长的了。在此期间,微软开发了数种编程语言和支持这些语言的可视化IDE,将其称为“Visual Studio”。当然,VS在12年间已经有了发生了很大的变化,不仅仅是它本身变得强大,与语言和其它技术的集成也得到了增强。除了这些,微软还添加了一些特性来支持数据库开发、标记语言(如XML)、Web开发工具、单元测试和团队协作。
接下来将逐一介绍微软已经正式发布的六个版本。
VS 97
微软在1997年首次尝试在单一环境中支持多种语言。它包括如下组成部分:
Visual C++、Visual J++、Visual InterDev和MSDN使用相同的环境,名为Developer Studio,而Visual Basic和Visual FoxPro则拥有自己的开发环境。VS 97的内部版本号为5.0。
VS 6.0(98)
在1998年,微软尝试将开发工具变得更为一致,并且向着现在我们所熟知的.NET Framework迈出了第一步。这一年微软将VS 97升级为VS 6.0。
这个版本是VB的绝唱,因为现在的VB.NET在基础上与那时的VB有很大不同。VS 6.0 也是Windows 9x平台下VS的最后版本。同时Visual J++ 遭到彻底放弃,从此微软不再支持针对JVM(Java Virtual Machine)的任何编程语言(但两三年后我正是在Visual J++下写出了我的第一个Hello World程序)。
在此之后,微软便致力于通过.NET Framework构建统一的编译器和开发环境。
VS 2002
2002年是微软的开发工具和编程语言发生重大变革的一年。经过之前数年的努力,微软发布了.NET Framework、VS.NET、.NET编程语言。这标志着微软的开发工具终于得到了完全的整合。
其中.NET Framework 1.0是最重要的内容。它引入了托管代码,在.NET下,程序是编译为MSIL(微软中间语言)而不是机器语言。
VS 2002(内部版本号为7.0)是第一个需要基于NT版操作系统的VS版本。它支持以下四种语言:
使用这些编程语言和统一的编译器,加上.NET平台下丰富的其它工具,可以开发各种桌面、Web和嵌入式设备的应用程序。其中包含的技术有ASP.NET、ADO.NET和Web Service。
VS 2003
在VS 2002发布之后一年,微软发布了VS 2003(内部版本号7.1),支持新版本的.NET 1.1。.NET 1.1 支持移动应用程序开发,也包含一些新特性和bug修复。它是.NET Framework的第一个稳定版本。VS 2003要比VS 2002稳定和流行得多。
VS 2003共有四个版本:
Enterprise Architect版提供了对Visio的支持,从而可以在设计应用程序架构时使用UML。
VS 2005
2005年10月,微软发布了.NET 2.0和VS 2005(内部版本号8.0,曾用过的代号为Whidbey)。此时,微软移掉了其产品的“.NET”前缀,如Visual Studio和Visual Basic。
VS 2005支持.NET 2.0,重要的特性和变化有:
另一个主要的变化在于,它的版本划分方式与之前有所不同,包括:
微软在2006年12月发布了VS 2005的SP1。应众多社区用户的要求,将Web Application替代Website作为ASP.NET应用程序的默认项目类型。
在2006年微软发布了.NET 3.0,因为VS 2005是当时的最新版本,所以提供了插件使其支持WPF、WCF和WF的开发。
VS 2008
这是迄今为止VS的最新版本(第六个版本),内部版本号9.0,代号Orcas。下个版本的VS 2010(代号Hawaii)正在开发之中(据信会在今年的年底发布)。
它第一个支持不同的.NET版本,包括2.0、3.0和3.5。VS 2008主要关注的是Vista和Office 2007,还有些.NET 3.0和3.5的新特性,并保持了VS 2005的优点。它的新特性和变化有:
关于VS的更多信息,请参看http://en.wikipedia.org/wiki/Microsoft_Visual_Studio。
可扩展性简介
VS固然强大,但不可能面面俱到。很多人都会有自己的特殊需求,VS的很多特性来自社区的呼声,另外一些则由第三方组件和开源项目先于VS实现了。
扩展VS的重要性自然无须多说。幸运的是,VS拥有很好的可扩展性,Add-In(插件)、Macro(宏)和VsPackage是扩展的三种主要方式,它们由来已久。
通过Add-In可以访问VS IDE的底层API,我们得以将一些编码或部署任务自动化。通过Macro可以将VS中的一些重复任务自动化,可以录制Macro,也可以手工编写。通过VS SDK则可以创建VsPackage,可以达到IDE和编程语言之间更深层次的集成。
另外,较之VS 2005,VS 2008提供了新的扩展选项,比如Visualizer和VS Shell。另一个好消息是在微软TechEd 2007之后,关于VS扩展性的文档丰富了许多。值得注意的是,可扩展特性不适用于Express版。
IDE概览
大体上来说,我们日常开发中看到的VS IDE主要包含各种窗口和工具栏,这些窗口有浮动的、可停靠的、标签式三种模式,包括打开VS时看到的起始页。下面来看一下其中的一些重要窗口。
1)解决方案管理器(Solution Explorer)
在这里,我们可以查看和管理解决方案内的各个项目、项目所包含的文件,它们以树形的结构呈现。它的快捷键是Ctrl + W, S。
2)属性窗口(Property Window)
按下F4(或Ctrl + W, P),可以查看当前选中项的属性。
3)工具箱(Toolbox)
这个窗口包含了若干控件的列表,可以将其拖拽到Winows窗体、网页、XAML窗口或WF的设计器上。它的快捷键是Ctrl + W, X。
4)服务器管理器(Server Explorer)
在这个窗口中可以查看和管理本地或远程的服务器,包括数据库、服务和其它的一些服务器资源。 快捷键是Ctrl + W, L。
5)类浏览器(Class View)
这里显示了解决方案内的所有可用类型,并将它们按命名空间分组。快捷键是Ctrl + W, C。
6)错误列表(Error List)
这里显示的信息并非全是错误(Error),还可以是警告(Warning)或信息(Message)。在编码或编译的时候可以查看这些信息。快捷键是Ctrl + W, E。
7)输出窗口(Output Window)
VS中的大多数动作或任务都对应着相应的命令,这些命令会产生输出信息,如编译的时候。快捷键是Ctrl + W, O。
8)任务列表(Task List)
这个窗口颇为有趣。可添加两种任务,一种是注释,比如“// TODO: Add a property here.”;另一种是用户自定义任务。这有点类似于常见的TODO List。快捷键是Ctrl + W, T。
9)对象浏览器(Object Browser)
与类浏览器不同的是,对象浏览器可以查看所有相关的组件内所包含的类型信息。快捷键是Ctrl + W, J。
好了,关于窗口先说这些,它们都可以在View菜单内找到。快捷键都是以Ctrl + W开头(属性窗口建议还是使用F4)。
我们身在何处
本文简要介绍了VS的历史及其基本要素,这样可以建立起对它的感性认识了。同时还稍微提及了VS的扩展性(也是本系列的主题),主要有三种方式,Macro、Add-In和VsPackage,它们各有所适用的场景,我打算从Add-In开始。在接下来的几篇随笔中,我将通过一些实例逐步展开对Add-In开发的讨论,同时会把代码放在Google Code上。如果您在日常开发中对VS扩展性有某些需求,欢迎分享:)