Visual Studio 2008可扩展性开发(五):操作Solution、Project和ProjectItem

前言

说真的,前面几篇随笔读起来会很乏味,写起来更是如此。不过好戏总在后头,从这 一篇开始我将介绍在Add-In中对VS的各个元素进行操作,这些会有意思得多。

大多数时候,我们在VS中进行开发,都是从打开解决方案开始,然后找到项目、打开 文件进行开发。本文将介绍与此相关的内容。

解决方案、项目和项简介

我相信,这三者对我们.NET开发人员来说是再熟悉不过的了。但它们在AOM(自动化对 象模型)的表示方式跟我们想象的会不太一样。看下面的图1,其中涉及的主要元素有解 决方案、解决方案文件夹、项目、文件夹、文件。AOM通过Solution接口表示解决方案; Project接口表示解决方案文件夹和项目;ProjectItem接口表示文件夹和文件。下面我会 通过一个例子来介绍它们。

简单的代码生成器  

在实际开发中,我们往往需要采用一些特定的技术方案,这些方案就决定了程序的整 体架构,表现在程序中就是一些项目、程序集、配置文件的组织。曾经有段时间很喜欢 iBATIS.NET,这里就以它的示例项目NPetshop为例进行演示。NPetshop的基本结构如下:

图1:NPetshop的程序结构

它的代码可以在NPetshop Source for .NET 2.0一文中找到。External-bin里面是所 需要的各个程序集,Domain是实体类,Persistence是数据访问层,Service是业务逻辑层 ,Presentation是表现逻辑层,Web则负责最终的表现。如果要采用这样的解决方案进行 开发,那么在项目开始我们就得花些时间来搭建整个解决方案的框架。通过Add-In,我们 可以做到“一次编写,多次使用”。

现在来看看如何从零开始创建一个解决方案。在本例中,大致过程是:

图2:解决方案创建过程

时间: 2024-08-07 23:14:04

Visual Studio 2008可扩展性开发(五):操作Solution、Project和ProjectItem的相关文章

Visual Studio 2008可扩展性开发(九):总结篇

可以说木匠让小时的我第一次感受到了专业,虽然那时还不知道专业这个词,尤其是 那些有年纪的老木匠,专注地在那锯木头.钉钉子.刨出带着香味的木花.他们有其他人 所没有的工具,更重要的是他们掌握了那些工具.VS正是我们手头的工具,它可以是锤子 ,也可以是锯.刨子,如果你能掌握它,而且要掌握的好. 我向来喜欢了解手头工具的方方面面(也许与我的思维方式有关,总想了解得更多) .我甚至觉得,对于最常用的工具,了解得越多越好--今天掌握了一个小功能,未来两 三年都会受益. 上面是我对工具的一点感想.VS越来越

Visual Studio 2008 可扩展性开发(六):操作Solution Explorer

前言 在可扩展性开发(五)中,我介绍了对于Solution.Project.ProjectItem的基本操作.可以认为它们面向的是解决方案内容的物理(文件)表示,我们需要使用VS提供的解决方案管理器(Solution Explorer)来管理它们.毫无疑问,解决方案管理器是VS中最重要的UI元素之一,本文将介绍对它的操作. 工具窗口内的层次结构 如果你观察一下解决方案管理器和服务器管理器(Server Explorer),就会发现它们都使用树形结构来表现背后的数据.在AOM中,UIHierarc

艾伟:Visual Studio 2008 可扩展性开发(六):操作Solution Explorer

前言 在可扩展性开发(五)中,我介绍了对于Solution.Project.ProjectItem的基本操作.可以认为它们面向的是解决方案内容的物理(文件)表示,我们需要使用VS提供的解决方案管理器(Solution Explorer)来管理它们.毫无疑问,解决方案管理器是VS中最重要的UI元素之一,本文将介绍对它的操作. 工具窗口内的层次结构 如果你观察一下解决方案管理器和服务器管理器(Server Explorer),就会发现它们都使用树形结构来表现背后的数据.在AOM中,UIHierarc

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

前言 Visual Studio是微软最知名的产品之一,在使用微软技术的开发人员的心目中尤为如此.相信这一点无须多说.它建立在IDE(统一开发环境)的基础之上,可用于开发多种不同类型的应用程序. Visual Studio,通常被简称为VS(以下皆按此简称),支持多种平台和编程语言.了解VS的历史以及每个版本的更迭,对学习它的扩展性开发会很有好处.所以在这里简单地说说VS在过去的12年里的历史. VS的历史 在软件领域,VS的历史算比较长的了.在此期间,微软开发了数种编程语言和支持这些语言的可视

Visual Studio 2008 可扩展性开发(二):Macro和Add-In初探

  前言 在VS概览中,我们简单回顾了一下VS的历史.本文将通过两个简单的例子来说明Macro和Add-In的开发.通过Macro我们把VS中的一些重复操作录制下来,之后可以多次运行,节省时间并保持好的心情:通过Add-In,我们可以自己动手来为VS添加新的功能,扩展了VS就意味着扩展了我们自己. VS 2008扩展方式一览  在上篇VS概览中提到了扩展VS有三种主要的方式:Macro.Add-In和VsPackage.事实上,还有更多的选择,这里先简单列一下: Macro Add-In VsP

Visual Studio 2008 可扩展性开发(三):Add-In运行机制解析(下)

前言 在上篇Add-In运行机制解析(上)中,我分析了Add-In向导生成的代码,从中我们知道只要创建一个类库,它包含实现了IDTExtensibility2接口的类,然后为其建立.addin配置文件,就可以实现一个Add-In了.本文将更进一步,介绍Add-In的事件和生命周期,为今后的开发打下基础. Add-In的事件 Add-In是事件驱动的,可以猜到的事件有加载.卸载.状态改变等等.事实上,这些事件都与IDTExtensibility2接口有关,也就是该接口的5个方法: 如果要了解这些方

Visual Studio 2008 可扩展性开发(三):Add-In运行机制解析(上)

前言 上一篇随笔Macro和Add-In初探介绍了如何开发两者的HelloWorld程序.没错,宏确实简单易行.不过在某些情况下,比如在商业软件中,宏在性能和知识产权方面可能会带来麻烦,此时那把更好的锤子是Add-In. 在初探一文中,我介绍了如何使用Add-In向导来开发第一个Add-In.VS是一款很棒的开发工具,它的各种向导(以及其它模板.可视化工具等)做得非常好,不过我发现这一强大之处到头来反而给人诟病.其中一种说法是,这些方便的工具让初学者入门容易,并惯坏了他们,以致于想登堂入室就难得

Visual Studio 2008可扩展性开发(六):操作Solution Explorer

前言 在可扩展性开发(五)中,我介绍了对于Solution.Project.ProjectItem的基本操 作.可以认为它们面向的是解决方案内容的物理(文件)表示,我们需要使用VS提供的解 决方案管理器(Solution Explorer)来管理它们.毫无疑问,解决方案管理器是VS中最 重要的UI元素之一,本文将介绍对它的操作. 工具窗口内的层次结构 如果你观察一下解决方案管理器和服务器管理器(Server Explorer),就会发现它们 都使用树形结构来表现背后的数据.在AOM中,UIHie

Visual Studio 2008可扩展性开发(七):操作文本编辑器

前言 在可扩展性开发(六)中,我介绍了对于Solution Explorer的基本操作.不过,对咱 们开发人员来说,绝大部分时间面对的还是编辑器. VS2008的编辑器功能已经颇为强大了,如果我们能熟练使用快捷键,编写代码的过程 是相当舒服的,就像<卓有成效的程序员>中所说: "编程时始终优先使用键盘而非鼠标" 但问题在于,VS面向的是所有的开发人员群体,它只能够提供最通用的功能,如果对 VS的编辑器有些额外的需求,我们只好自己动手了,本文将介绍如何扩展文本编辑器. AOM

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

前言 Visual Studio是微软最知名的产品之一,在使用微软技术的开发人员的心目中尤为如 此.相信这一点无须多说.它建立在IDE(统一开发环境)的基础之上,可用于开发多种 不同类型的应用程序. Visual Studio,通常被简称为VS(以下皆按此简称),支持多种平台和编程语言.了 解VS的历史以及每个版本的更迭,对学习它的扩展性开发会很有好处.所以在这里简单地 说说VS在过去的12年里的历史. VS的历史 在软件领域,VS的历史算比较长的了.在此期间,微软开发了数种编程语言和支持这 些