通过Visual Studio 2005的项目模板来加速开发过程

page

by

Ameet Phadnis
Feedback

 
 

简介:

记得在我第一次做项目的时候,我就在尝试找出一种方法来提高项目开始的效率(jump start my projects)。在使用Visual Studio 2003的年代,我在ASPAlliance中写了一篇文章是基于Visual Studio 2003的模板开发的,这篇文章我看到了一些好的回应。然后就是Visual Studio 2005发布了,我接着就受到了一些邮件,其中就有询问的以前在Visual Studio 2003中介绍的模板使用方法在Visual Studio 2005中是否适用?其实如果在Visual Studio 2005中还使用原来Visual Studio 2003的方法那么就太复杂了。Visual Studio 2005中建立一种更加便捷、简单的模板建立方式,当然如果你还是对于我原来针对Visual Studio 2003中使用模板方法感兴趣的话你可以通过这个链接去查看。

 

背景资料

好了,首先先回答一个问题:我们为什么需要使用模板?在一个公司或者项目组中往往会在同时存在很多项目。而且很多项目之间的结构都非常的相似,统一的风格当然对于一个企业和团队来说是一件好事。在通常,如果不考虑使用模板,那么我们传统的做法就是将一些已经存在的工程项目进行拷贝-粘帖,然后再在此基础上进行修改,但是这种做法不仅效率低,而且在粘帖-复制的过程中,每个项目都有可能对系统的结构进行针对性的调整,那么经过几轮项目的修改可能系统结构和最开始的系统结构已经有了很大的处于,并且存在很多没有用的冗余数据、代码,很容易出错。所以一种比较好的方法是,在项目开始前,我们先依照一种特定的模板将系统的框架先搭建出来,然后我们在再此基础上进行项目的开发工作。

 

就我们公司的情况(作者所在公司是一家咨询公司,consulting company),我们也会为一些服务商(service providers)建立一些系统,这些系统一般都是基于ASP.NET 2.0平台,具备的功能一般是:

1、用户登录;

2、注册公司;

3、注册个人,等等。

在这篇文章,我就基于这个需求来说明如何建立一个基于网站项目的模板(create a web template)。

 

 

结构说明:

在我们开始之前,我想先说明一下VS2005的模板结构。在安装了VS2005以后系统会默认的安装一些项目/文件项的模板。比如:如果要建立一个网络应用程序(Web Application)那么我们可以选择ASP.NET Web Site、ASP.NET Web Service、Personal Web Site Starter Kit, Empty Web Site 或者 ASP.NET Crystal Reports Web Site等。当我们从Visual Studio 2005中选择“文件”-> “新建”-> “网站”那么系统将会展示如图1所示的对话框。

 

图1

 

一般地,Visual Studio 2005从以路径中查找内置模板:

 

【文件安装路径】\Common7\IDE\ProjectTemplates\Web\【语言】\【数字】\...

 

如:C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Web\VisualBasic\1033

 

当你进入对应的文件夹,你会发现每个模板选择其实在文件夹中都是针对zip格式的压缩文件。在zip文件中包含了模板建立所需要的所有文件,并有一个以.vstemplate后缀名结尾的文件,这个文件中以XML格式定义了模板中的各项数据,将这些模板文件统一为一个模板整体,是对模板进行描述的元数据。

 

那么我们自己建立的模板会放在什么位置呢?是放在和内置模板同样的位置吗?其实不一定,在Visual Studio 2005中可以选择自定义模板存放的具体位置。这种灵活性有很大的好处,比如你可以将模板放在一个网络可访问的目录下,这种所有项目组或者团队的成员都可以通过配置地址指向这个网络地址,从而获取统一的模板视图和最新的模板。我们可以通过如下方式来设置Visual Studio 2005中自定义模板的存放位置:

 

1、在Visual Studio 2005中选择“工具”-> “选项”;

2、展开“项目和解决方案”文件夹;

3、选择“常规”选项;

4、在右侧就可以看到针对“项目模板”、“文件项模板”的位置,可以进行修改。

 

.vstemplate元数据文件

.vstemplate文件内容由如下部门组成。

·         TemplateData - 这个配置节中包含了在选择模板对话框中模板的信息。

·         Name: 模板名称.

·         Description: 模板描述信息.

·         Icon: 模板显示图标信息.

·         ProjectType: 用于限定模板适用范围.

·         CSharp: 针对C#语言;

·         VisualBasic: 针对Visual Basic语言;

·         JSharp: 针对J#语言;

·         Web: 针对Web项目,如果ProjectType = web, 那么可以通过ProjectSubType配置节中设置对应的语言范围。

·         TemplateContent - 包含了此压缩包(zip)中包含模板文件的元数据描述信息

·         ProjectCollection: 用于定义包含多个项目的模板文件,其子节点是模板中包含的多个项目文件。

·         Project: 用于列举一个项目中文件清单,如果是文件项请使用<ProjectItem>配置节,如果是子文件夹请使用<Folder>配直节;

·         References: 用于表示此模板文件中需要包含的默认引用;

·         ProjectItem: 用于表示模板文件中文件项,如:.aspx, .cs文件;

·         CustomParameters: 用于设定用户自定义的动态替换的占位符信息。

·         WizardExtension - 用于设置模板向导扩展对应的程序集及对应的操作类.

·         WizardData - 这里中间包含的内容将作为替换值$wizardData$的替换信息.

 

这篇文章将着重关注TemplateData, TemplateContent两个配直节,WizardExtension和WizardData在此文章中并不进行涉及,我将在我以后文章中着重介绍后面两个配置节。

建立项目模板:

在我原来那篇介绍在VS 2003平台下建立模板的文章,许多使用者会发现那其实是一个蛮复杂的过程。但是现在在VS2005的平台下,这个复杂的过程变成了5个间的步骤:

 

·         先正常的建立一个项目;

·        在项目中添加对应的文件(按照你需要形成的模板具有哪些文件的需求。)

·        保存所做的改动;

·         从菜单中选择“文件”-> “导出模板”;

·         导出模板向导会启动,并一步一步的指导用户完成模板的建立和安装。

 

【注意】:有些用户可能从“文件”菜单中看不到“导出模板”的子菜单。你可能需要通过以下步骤进行添加:

 

·         鼠标右击VS2005的菜单栏空白处,然后选择“自定义...”;

·         然后选择“命令”选项卡;

·         在左侧的栏目中选择“文件”,然后右侧会列举所有“文件”菜单下的子菜单项;

·         然后选择“导出模板...” 菜单然后拖拽到左侧“文件”菜单上。

 

好了,我们现在开始着手建立模板,首先我们建立一个web网站,然后中间添加了一些模板中需要包含的文件内容,具体的文件格式在资源管理器中查看是图2的样子。

 

图2

 

现在我们就建立基于以上面这个web项目的模板。

 

·         首先点击“文件”菜单,然后选择“导出模板...”;

·         然后就会弹出如图3所示的模板导出向导。

 

图3

·         按照如下步骤进行选择:

·       首先选择“Project Template”单选框,然后系统会列举当前所有的项目,我们现在就一个网站项目(web application)所以默认会选择这个网站项目;

·       然后模板对应的语言,如:C#, Visual Basic, J#;

·         点击下一步;

·         然后选择模板在对话框中显示的信息,如图4所示:

 

图 4

·         需要选择的项有:

·         Template Icon (模板图标) - 这个是现实在选择模板的图标文件;

·         Template Name (模板名称)- 针对<TemplateData>配置节中的<Name>子配置节,显示模板的名称;

·         Template Description (模板描述)- 针对<TemplateData>配置节中的<Description>子配置节,显示模板的说明信息;

·         Automatically import the template into Visual Studio (自动在Visual Studio中导入自定义模板) - 如果这个选择了这个选项的复选框,那么生成的模板将被自动拷贝一份到你在Visual Studio中设置的自定义模板存放路径,这样在添加新的项目时就可以选择对应的项了;

·         Display an explorer window on the output files folder (自动打开生成的模板文件所在目录)- 自动打开生成的模板文件所在的目录。

·         点击“完成”按钮.

 

生成文件项模板:

Steps 生成文件项模板的过程和项目模板的过程基本相似,这里仅仅对不同的地方进行描述,我们以导出CompanyRegistrationInfo类文件为例:

1、同样是先选择导出的模板类型,这里需要选择文件项模板(Item Template),并选择需要导出项所在的项目,及适用的语言:

图 5

 

然后从列举的文件列表中选择需要到处模板的文件,比如我们这里选择CompanyRegistrationInfo.vb,

由于CompanyRegistrationInfo.vb和CompanyRegistrationInfo.aspx的文件具有关联关系,那么在导出的时候CompanyRegistrationInfo.aspx也会被作为模板的一部分进行导出,如图6所示:

 

图 6

然后要选择一下导出文件项模板需要的引用,这个选择过程在“项目模板”的过程中是没有的,因为项目本身可以通过bin文件中的依赖关系进行自动的辨别,但是针对项目中的某一项的依赖项系统将无法进行辨别,这样就需要人工选择。

 

 

使用项目或者文件项模板:

好了,有了模板就要使用它了,如何使用自定义的模板呢?

没啥特别的步骤,你在添加新项或者新的项目时就可以从“我的模板”中显示自定义的模板项,如图8、图9所示:

 

图8

 

posted @ 2009-12-10 13:45  阿K&amp;LiveCai  阅读(350)  评论(0编辑  收藏  举报