下载本文源代码
微软在新出炉的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)。
图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)。