代码改变世界

Visual Studio 2008 可扩展性开发(一):VS概览

2009-02-23 20:13 Anders Cui 阅读(...) 评论(...) 编辑 收藏

前言

Visual Studio是微软最知名的产品之一,在使用微软技术的开发人员的心目中尤为如此。相信这一点无须多说。它建立在IDE(统一开发环境)的基础之上,可用于开发多种不同类型的应用程序。

Visual Studio,通常被简称为VS(以下皆按此简称),支持多种平台和编程语言。了解VS的历史以及每个版本的更迭,对学习它的扩展性开发会很有好处。所以在这里简单地说说VS在过去的12年里的历史。

VS的历史

在软件领域,VS的历史算比较长的了。在此期间,微软开发了数种编程语言和支持这些语言的可视化IDE,将其称为“Visual Studio”。当然,VS在12年间已经有了发生了很大的变化,不仅仅是它本身变得强大,与语言和其它技术的集成也得到了增强。除了这些,微软还添加了一些特性来支持数据库开发、标记语言(如XML)、Web开发工具、单元测试和团队协作。

接下来将逐一介绍微软已经正式发布的六个版本。

VS 97

微软在1997年首次尝试在单一环境中支持多种语言。它包括如下组成部分:

  • Visual Basic 5.0
  • Visual C++ 5.0
  • Visual FoxPro 5.0 (用于xBase编程)
  • Visual J++ 1.1 (用于Windows下的Java编程)
  • Visual InterDev 1.0 (用于ASP开发)
  • MSDN

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版本。它支持以下四种语言:

  • VB.NET:这是Basic家族中第一个完全支持OO的语言,它的构建基础与VB 6.0有很大不同,至今VB.NET仍是世界上最流行的编程语言。
  • C#:一种全新的语言,此后它的用户群体在不断扩大。它使用C的语法,但比微软其它C家族的语言要简单,如VC++。
  • J#:也是一种新语言,可以看作是VJ++的继任者。它虽然使用Java语法,但只支持.NET平台。
  • VC++:它是.NET家族语言的一分子,并得到了增强。

使用这些编程语言和统一的编译器,加上.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共有四个版本:

  • Professional
  • Enterprise Developer
  • Enterprise Architect
  • Academic

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,重要的特性和变化有:

  • ASP.NET 2.0
  • ADO.NET 2.0
  • Generics in .NET 2.0
  • Enhanced IntelliSence
  • Addition of new project types
  • A local web server to test ASP.NET applications without IIS
  • Support for 64-bit applications

另一个主要的变化在于,它的版本划分方式与之前有所不同,包括:

  • Express
  • Standard
  • Professional
  • Tools for Office
  • Team System

微软在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的优点。它的新特性和变化有:

  • 对WPF的内置支持和一个很棒的设计器
  • 对WCF的内置支持
  • 对WF的内置支持和一个强大的设计器
  • 新的语言特性:LINQ,在VB和C#中可用
  • Silverlight
  • 增强的JavaScript智能感知和调试器
  • 强大的XHTML/CSS编辑器
  • 不再支持J#

关于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扩展性有某些需求,欢迎分享:)

参考

《Professional Visual Studio® 2008 Extensibility》
wikipedia-VisualStudio