微软在新出炉的Visual Studio 2005中为Starter Kits加入了新的功能;但是,你是否知道你也能创建自己Starter Kit并且输出到.vsi文件中以与其他人共享之?本文所提供的示例为,利用Amazon Web服务来实现构建一个书目搜索的Starter Kit。
1. 前言
在ASP.NET 1.x时代,微软首先创建了ASP.NET Starter Kits来帮助开发者加快Web应用的开发。ASP.NET Starter Kits是一些示例ASP.NET应用程序-它们提供代码作为一个可扩展的模板来完成普通的Web开发任务。每个Starter Kit都是完整的而且被良好归档-用户可以立即用之进行开发活动。
例如,微软创造的一个Starter Kit-Personal Web Site Starter Kit,它为怎样构建一个ASP.NET Web站点提供了基本的框架-其中包含一个在线相片画廊,为实现安全存取的登录工具,还有一个讨论论坛。该Starter Kit仅仅包含了基本功能,而由开发者来定制和增强它以满足自己的实际需要。这大大提高了开发者的生产效率;同时还提供了通过扩展原始应用程序进行学习的 良好途径。在新出炉的Visual Studio 2005中,微软又进一步扩展了Starter Kits以便包括各种Windows应用程序。
但是,并不是只有微软才可以创建一个Starter Kit。在本文中,我将向你展示用Visual Studio 2005构建一个Starter Kit并且与团体开发人员一起共用。我将创建的应用程序是类似一个私人书库的Windows应用程序-它实现把你的书目的详细信息分档归类。这个应用程序 使用书的ISBN号来标记你拥有的书;通过这种办法,这个应用程序可以使用互联网来检索有关该书的数据并且你不需要手工地输入每本书的元数据。你可以通过 使用一个条形码扫描器来把一本书添加到该应用程序中;当然,也可以手工地输入该书的ISBN号。然后,该程序将从Amazon的Web服务上下载有关该书 的详细信息(包括该书的封面信息)。你还可以从Amazon站点查找书籍,然后把这些书添加到本地数据库中。
总之,这个应用程序将向你展示Windows Forms 2.0中的下列技术:
·拖放式数据绑定
·数据存取
·改变光标
·使用新型BackgroundWorker控件实现多线程编程
·访问web服务
2. 创建应用程序
创建Starter Kit的第一步是创建Windows应用程序。打开Visual Studio 2005,然后用Visual Basic创建一个新的Windows应用程序并命名该工程为LibraryApp。在缺省的Form1中,我加上了必需的控件(见图1)。
在这个程序窗口中,你可以使用诸如一本书的标题或它的ISBN号的关键字来查找图书。点击"Get Info"按钮将能够检索出与你的查找相匹配的一系列书来。然后,你可以通过点击"Search Results"列表框中的标题来观看详细的书信息。为了把一个标题添加到本地数据库中,点击"Add Title"按钮。你还可以选择不从Amazon下载该书的封面-不选择"Show Cover"复选框即可。如果你有一台条形码扫描仪,那么可以使用"Auto-add Title"复选框来使添加标题更快些。点击"View Catalog"按钮将显示另一个窗口来显示存储在本地数据库中的书标题列表。
作者注:我不可能向你说明填充这个表单的详细步骤。为此,我建议你下载伴随该文的源代码。同样,这个应用程序的相关编码也能从该源码中找到。
我还把另一个表单添加到了应用程序并加上了一些控件,如图2所示。这个窗口将显示存储在本地数据库中的书标题列表。点击"Close"按钮将关闭该窗口并返回到第一个表单画面。
另外,你将需要一个数据库来存储详细的书籍信息。添加一个SQL Server 2005 Express版本数据库到这个工程中并命名它为Library.mdf。图3显示出这个数据库的框架。
最后,为了消费来自Amazon的信息,你还需要添加一个到Amazon web服务的Web参考(见图4)。为了添加一个web服务,右击解决方案资源管理器中的工程名并且选择"Add Web References"。然后你可以指定Amazon.com web服务的URL。
下面是应用程序的工作方式:你可以在"Search Keywords"文本框内输入一本书的ISBN并点击"Get Info"按钮(见图5)。"Search Results"列表框将显示匹配的标题。为了看一下书的详细信息,你可以点击在该列表框中的相应的书标题,则相应的详细信息将被显示在右边的窗口中。为 了添加标题到本地数据库,点击"Add Title"按钮。
我的应用程序使用BackgroundWorker控件(在Windows Forms 2.0中新引入的)来实现多线程,这样可以确保在访问Amazon的web服务时用户界面不会被冻结。它还将显示沙漏形图标以指示它处于忙状态-你需要等 待从Amazon返回结果。
这个应用程序被进行了优化以与条形码扫描仪的使用相一致。典型地,一个条形码扫描仪功能很似于键盘输入- 它扫描进一个条形码并以数字串输入(并且添加一个回车符),就象你刚才使用键盘输入它一样。因此,如果你正在使用一条形码扫描仪,那么请把焦点定位在 "Search Keywords"文本框内并使用扫描仪来扫描条形码。我的应用程序将自动地检测由扫描仪返回的回车符字符并且激活"Get Info"按钮。
除按ISBN号查找书籍以外,你还可以基于关键字来查找,见图6。
为了观看你添加到数据库中的书的目录,你可以点击"View Catalog"按钮。Form2将显示使用DataGridView控件的书目列表(见图7)。你还可以使用BindingNavigator控件(位于表单顶部)进行记录导航。
3. 增加文档
一旦应用程序被正确构建并且能够正常工作,你应该把一些文档添加到工程上,以便使用你的Starter Kit的开发者能理解应用程序是怎么工作的。例如,你可能为开发者提供了链接以便用一个自由的Amazon web服务帐户注册并且向他说明怎样获得订阅ID来访问该web服务。
你可以添加一个HTML文档或一个普通文本文件到该工程。为简化起见,我把一普通文本文件添加到该工程并且命名它为Documentation.txt(见图8)。
4. 输出模板
在应用程序和文档完成后,现在你已准备好输出该工程了。为了共享你的应用程序,你必须把它放进一个模板中。为此,你可以经由"File"-->"Export Template"菜单项来实现。
然后,你将被要求选择一个模板类型。对于创建Starter Kits,我们选择"Project template"。这个选项模板可用于创建一个表单,类,模块等,而不是一个完整的工程。这个解决方案只有一个工程,所以简单地选择 LibraryApp工程(见图9)。然后点击"Next"。
在下一个对话框中,你可以选取你自己的模板图标(见图10)并命名你的模板为LibraryApp Starter Kit。不选取"Automatically import the template into Visual Studio"选项。由于这是一个方便的选项,在了解如何手工地创建一个Starter Kit时它是很有用的。最后,点击"Finish"。
就是这样!你的模板将在下列文件夹被创建:
C:Documents and SettingsWei-Meng LeeMy DocumentsVisual Studio 2005My Exported Templates
把输入的模板文件放到一个.zip文件中并命名它为LibraryApp Starter Kit.zip。下面你将使用这个.zip文件。
5. 在启动模板时打开特定的文件
记住,你刚创建的模板有一个文档文件。每当有人使用你的模板创建一个工程时,你就要显示这个文件。为此,你需要修改位于文件LibraryApp Starter Kit.zip内的MyTemplate.vstemplate配置文件。
首先,把LibraryApp Starter Kit.zip文件的内容提取到默认文件夹-LibraryApp Starter Kit下。然后,进入到这个LibraryApp Starter Kit文件夹并且使用记事本来编辑这个MyTemplate.vstemplate文件。
特别地,插入下面行(以加粗显示的):
一旦修改完MyTemplate.vstemplate文件,你需要重新把在该文件夹中的所有内容压缩回LibraryApp Starter Kit.zip文件中去。你可以全选在这个文件夹下的文件,右击并选择"Send To"-"Compressed(zipped) Folder"(见图11)。
一个包含在该文件夹中所有的文件的.zip文件将出现在窗口的底部。重命名这个.zip文件为LibraryApp Starter Kit.zip并且把它移动到你的在一个称为Visual Studio 2005My Exported Templates的文件夹下的My Documents 部分。
6. 使用Visual Studio Installer打包Starter Kit
现在既然这个模板被创建成功并得到修改,那么你还需要一步来把它打包成一个Starter Kit。在你刚才创建的文件夹中,创建一新文件并把它保存为LibraryApp.vscontent。然后,用下面方式填充这个 LibraryApp.vscontent文件:
在相同的文件夹中,创建一个新的空.zip文件(File-->New-->Compressed(zipped)文件夹)。拖放这个 LibraryApp Starter Kit.zip和LibraryApp.vscontent文件到最新创建的.zip文件。最后,重命名该.zip文件LibraryApp Starter Kit.vsi(见图12)。
就是这么简单!这个.vsi文件现在就成了一个Starter Kit。
7. 安装Starter Kit
一旦创建完Starter Kit,你就可以把它发布给你的同伴开发者。一个不错的分发方法是把它放到网上去让他们下载。
为了安装这个Starter Kit,简单地双击该.vsi文件,则这个安装器就会显示在如图13所示的对话框中。点击Next继续下去。你将得到有关你要安装内容的安全警告信息。点击Yes继续下去。在最后的对话框中,点击Finish并关闭。
为了校验这个Starter Kit被正确安装,启动Visual Studio 2005并且创建一新工程(File-->New-->Project)。你会看到LibraryApp Starter Kit模板位于My Templates部分(见图14)。选择这个模板并且点按OK。之后,你就会发现文档文件被自动加载。
你可以按下F5键来验证该应用程序如下面所述的那样工作(记住要使用你自己的Amazon订阅ID)。现在,你可以继续增强这个程序以适合你自己的需要。
1. 前言
在ASP.NET 1.x时代,微软首先创建了ASP.NET Starter Kits来帮助开发者加快Web应用的开发。ASP.NET Starter Kits是一些示例ASP.NET应用程序-它们提供代码作为一个可扩展的模板来完成普通的Web开发任务。每个Starter Kit都是完整的而且被良好归档-用户可以立即用之进行开发活动。
例如,微软创造的一个Starter Kit-Personal Web Site Starter Kit,它为怎样构建一个ASP.NET Web站点提供了基本的框架-其中包含一个在线相片画廊,为实现安全存取的登录工具,还有一个讨论论坛。该Starter Kit仅仅包含了基本功能,而由开发者来定制和增强它以满足自己的实际需要。这大大提高了开发者的生产效率;同时还提供了通过扩展原始应用程序进行学习的 良好途径。在新出炉的Visual Studio 2005中,微软又进一步扩展了Starter Kits以便包括各种Windows应用程序。
但是,并不是只有微软才可以创建一个Starter Kit。在本文中,我将向你展示用Visual Studio 2005构建一个Starter Kit并且与团体开发人员一起共用。我将创建的应用程序是类似一个私人书库的Windows应用程序-它实现把你的书目的详细信息分档归类。这个应用程序 使用书的ISBN号来标记你拥有的书;通过这种办法,这个应用程序可以使用互联网来检索有关该书的数据并且你不需要手工地输入每本书的元数据。你可以通过 使用一个条形码扫描器来把一本书添加到该应用程序中;当然,也可以手工地输入该书的ISBN号。然后,该程序将从Amazon的Web服务上下载有关该书 的详细信息(包括该书的封面信息)。你还可以从Amazon站点查找书籍,然后把这些书添加到本地数据库中。
总之,这个应用程序将向你展示Windows Forms 2.0中的下列技术:
·拖放式数据绑定
·数据存取
·改变光标
·使用新型BackgroundWorker控件实现多线程编程
·访问web服务
2. 创建应用程序
创建Starter Kit的第一步是创建Windows应用程序。打开Visual Studio 2005,然后用Visual Basic创建一个新的Windows应用程序并命名该工程为LibraryApp。在缺省的Form1中,我加上了必需的控件(见图1)。
![]() 图1.Form1:这个屏幕快照显示了你需要的Form1上的各种控件-你的应用程序的主UI。 |
在这个程序窗口中,你可以使用诸如一本书的标题或它的ISBN号的关键字来查找图书。点击"Get Info"按钮将能够检索出与你的查找相匹配的一系列书来。然后,你可以通过点击"Search Results"列表框中的标题来观看详细的书信息。为了把一个标题添加到本地数据库中,点击"Add Title"按钮。你还可以选择不从Amazon下载该书的封面-不选择"Show Cover"复选框即可。如果你有一台条形码扫描仪,那么可以使用"Auto-add Title"复选框来使添加标题更快些。点击"View Catalog"按钮将显示另一个窗口来显示存储在本地数据库中的书标题列表。
作者注:我不可能向你说明填充这个表单的详细步骤。为此,我建议你下载伴随该文的源代码。同样,这个应用程序的相关编码也能从该源码中找到。
我还把另一个表单添加到了应用程序并加上了一些控件,如图2所示。这个窗口将显示存储在本地数据库中的书标题列表。点击"Close"按钮将关闭该窗口并返回到第一个表单画面。
![]() 图2.Form2:该屏幕快照显示了你要在示例应用程序的第二个表单Form2上所加入的控件。 |
另外,你将需要一个数据库来存储详细的书籍信息。添加一个SQL Server 2005 Express版本数据库到这个工程中并命名它为Library.mdf。图3显示出这个数据库的框架。
最后,为了消费来自Amazon的信息,你还需要添加一个到Amazon web服务的Web参考(见图4)。为了添加一个web服务,右击解决方案资源管理器中的工程名并且选择"Add Web References"。然后你可以指定Amazon.com web服务的URL。
![]() 图3.数据库框架:这个屏幕快照显示出数据库Libarary.mdf的框架-用它来存储书的信息。 |
![]() 图4.你需要添加一个到Amazon web服务的Web参考。 |
下面是应用程序的工作方式:你可以在"Search Keywords"文本框内输入一本书的ISBN并点击"Get Info"按钮(见图5)。"Search Results"列表框将显示匹配的标题。为了看一下书的详细信息,你可以点击在该列表框中的相应的书标题,则相应的详细信息将被显示在右边的窗口中。为 了添加标题到本地数据库,点击"Add Title"按钮。
![]() 图5.书籍查找:这个屏幕快照显示出用户如何用这个应用程序来进行基于关键字的书籍查找。 |
![]() 图6.关键字:这个示例应用程序允许用户基于关键字来搜索你的库。 |
我的应用程序使用BackgroundWorker控件(在Windows Forms 2.0中新引入的)来实现多线程,这样可以确保在访问Amazon的web服务时用户界面不会被冻结。它还将显示沙漏形图标以指示它处于忙状态-你需要等 待从Amazon返回结果。
这个应用程序被进行了优化以与条形码扫描仪的使用相一致。典型地,一个条形码扫描仪功能很似于键盘输入- 它扫描进一个条形码并以数字串输入(并且添加一个回车符),就象你刚才使用键盘输入它一样。因此,如果你正在使用一条形码扫描仪,那么请把焦点定位在 "Search Keywords"文本框内并使用扫描仪来扫描条形码。我的应用程序将自动地检测由扫描仪返回的回车符字符并且激活"Get Info"按钮。
除按ISBN号查找书籍以外,你还可以基于关键字来查找,见图6。
为了观看你添加到数据库中的书的目录,你可以点击"View Catalog"按钮。Form2将显示使用DataGridView控件的书目列表(见图7)。你还可以使用BindingNavigator控件(位于表单顶部)进行记录导航。
![]() 图7.浏览:你可以浏览全部目录 |
![]() 图8.文档:Documentation.txt,一文本文件,被添加到Starter Kit。这个文件将随你的Starter Kit的发行一同发行。 |
3. 增加文档
一旦应用程序被正确构建并且能够正常工作,你应该把一些文档添加到工程上,以便使用你的Starter Kit的开发者能理解应用程序是怎么工作的。例如,你可能为开发者提供了链接以便用一个自由的Amazon web服务帐户注册并且向他说明怎样获得订阅ID来访问该web服务。
你可以添加一个HTML文档或一个普通文本文件到该工程。为简化起见,我把一普通文本文件添加到该工程并且命名它为Documentation.txt(见图8)。
4. 输出模板
在应用程序和文档完成后,现在你已准备好输出该工程了。为了共享你的应用程序,你必须把它放进一个模板中。为此,你可以经由"File"-->"Export Template"菜单项来实现。
然后,你将被要求选择一个模板类型。对于创建Starter Kits,我们选择"Project template"。这个选项模板可用于创建一个表单,类,模块等,而不是一个完整的工程。这个解决方案只有一个工程,所以简单地选择 LibraryApp工程(见图9)。然后点击"Next"。
![]() 图9.模板:为了输出你的Starter Kit,你需要为应用程序选择正确的模板类型。 |
![]() 图10.选项:用正确的选项配置你的Starter Kit。 |
在下一个对话框中,你可以选取你自己的模板图标(见图10)并命名你的模板为LibraryApp Starter Kit。不选取"Automatically import the template into Visual Studio"选项。由于这是一个方便的选项,在了解如何手工地创建一个Starter Kit时它是很有用的。最后,点击"Finish"。
就是这样!你的模板将在下列文件夹被创建:
C:Documents and SettingsWei-Meng LeeMy DocumentsVisual Studio 2005My Exported Templates
把输入的模板文件放到一个.zip文件中并命名它为LibraryApp Starter Kit.zip。下面你将使用这个.zip文件。
5. 在启动模板时打开特定的文件
记住,你刚创建的模板有一个文档文件。每当有人使用你的模板创建一个工程时,你就要显示这个文件。为此,你需要修改位于文件LibraryApp Starter Kit.zip内的MyTemplate.vstemplate配置文件。
首先,把LibraryApp Starter Kit.zip文件的内容提取到默认文件夹-LibraryApp Starter Kit下。然后,进入到这个LibraryApp Starter Kit文件夹并且使用记事本来编辑这个MyTemplate.vstemplate文件。
特别地,插入下面行(以加粗显示的):
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project"> <TemplateData> <Name>LibraryApp Starter Kit</Name> <Description><No description available></Description> <ProjectType>VisualBasic</ProjectType> <ProjectSubType> </ProjectSubType> <SortOrder>1000</SortOrder> <CreateNewFolder>true</CreateNewFolder> <DefaultName>LibraryApp Starter Kit</DefaultName> <ProvideDefaultName>true</ProvideDefaultName> <LocationField>Enabled</LocationField> <EnableLocationBrowseButton>true</EnableLocationBrowseButton> <Icon>__TemplateIcon.ico</Icon> </TemplateData> <TemplateContent> <Project TargetFileName="LibraryApp.vbproj" File="LibraryApp.vbproj" ReplaceParameters="true"> <ProjectItem ReplaceParameters="true" TargetFileName="app.config">app.config</ProjectItem> <ProjectItem ReplaceParameters="true" TargetFileName="Documentation.txt">Documentation.txt</ProjectItem> <ProjectItem ReplaceParameters="false" OpenOrder="10" OpenInWebBrowser="true">Documentation.txt</ProjectItem> <ProjectItem ReplaceParameters="true" TargetFileName="Form1.vb">Form1.vb</ProjectItem> <ProjectItem ReplaceParameters="true" TargetFileName="Form1.Designer.vb">Form1.Designer.vb</ProjectItem> ... |
一旦修改完MyTemplate.vstemplate文件,你需要重新把在该文件夹中的所有内容压缩回LibraryApp Starter Kit.zip文件中去。你可以全选在这个文件夹下的文件,右击并选择"Send To"-"Compressed(zipped) Folder"(见图11)。
![]() 图11.Zipper:把所有的文件压缩成一个文件以便于发行。 |
![]() 图12.改名:重命名你的.zip文件并且给它一个.vsi文件扩展名。 |
一个包含在该文件夹中所有的文件的.zip文件将出现在窗口的底部。重命名这个.zip文件为LibraryApp Starter Kit.zip并且把它移动到你的在一个称为Visual Studio 2005My Exported Templates的文件夹下的My Documents 部分。
6. 使用Visual Studio Installer打包Starter Kit
现在既然这个模板被创建成功并得到修改,那么你还需要一步来把它打包成一个Starter Kit。在你刚才创建的文件夹中,创建一新文件并把它保存为LibraryApp.vscontent。然后,用下面方式填充这个 LibraryApp.vscontent文件:
<VSContent xmlns="http://schemas.microsoft.com/developer/vscontent/2005"> <Content> <FileName>LibraryApp Starter Kit.zip</FileName> <DisplayName>Library Application Starter Kit</DisplayName> <Description>VSTemplate for VB project</Description> <FileContentType>VSTemplate</FileContentType> <ContentVersion>1.0</ContentVersion> <Attributes> <Attribute name="TemplateType" value="Project"></Attribute> <Attribute name="ProjectType" value="Visual Basic"></Attribute> <Attribute name="ProjectSubType" value=""></Attribute> </Attributes> </Content> </VSContent> |
在相同的文件夹中,创建一个新的空.zip文件(File-->New-->Compressed(zipped)文件夹)。拖放这个 LibraryApp Starter Kit.zip和LibraryApp.vscontent文件到最新创建的.zip文件。最后,重命名该.zip文件LibraryApp Starter Kit.vsi(见图12)。
就是这么简单!这个.vsi文件现在就成了一个Starter Kit。
7. 安装Starter Kit
一旦创建完Starter Kit,你就可以把它发布给你的同伴开发者。一个不错的分发方法是把它放到网上去让他们下载。
为了安装这个Starter Kit,简单地双击该.vsi文件,则这个安装器就会显示在如图13所示的对话框中。点击Next继续下去。你将得到有关你要安装内容的安全警告信息。点击Yes继续下去。在最后的对话框中,点击Finish并关闭。
![]() 图13.安装:这个对话框将允许你选择要从.vsi中安装的内容。 |
![]() 图14.My Template:你的新Starter Kit,包括文档,应该位于Visual Studio 的My Templates部分。 |
为了校验这个Starter Kit被正确安装,启动Visual Studio 2005并且创建一新工程(File-->New-->Project)。你会看到LibraryApp Starter Kit模板位于My Templates部分(见图14)。选择这个模板并且点按OK。之后,你就会发现文档文件被自动加载。
你可以按下F5键来验证该应用程序如下面所述的那样工作(记住要使用你自己的Amazon订阅ID)。现在,你可以继续增强这个程序以适合你自己的需要。
在本文中,你学到了创建一个Starter Kit的详细过程。Starter Kit是学习编程的一种好方法,也是学习业界专家解决实际问题的最好跳板。
本文转自朱先忠老师51CTO博客,原文链接: http://blog.51cto.com/zhuxianzhong/59859,如需转载请自行联系原作者