Web Client Software Factory系列(1):初识与预备知识

什么是Software Factory

由微软模式与实践小组开发的软件工厂,并非是一些公有的组件,可以直接引入项目使用,它所要解决的问题是提供用特定技术开发应用程序时使用的工具、方法、模式等的整个集合,旨在为如何在企业环境中最好地使用特定技术提供指南,每个软件工厂包含如下部分:

  1. 应用程序块和库 — 软件的实际部分,基于顶级目标技术构建,旨在提供预构建的遵守建议的最佳实践的基础结构。
  2. 指导包方案和模板 — Visual Studio 的典型插件,用于生成初始解决方案模板和/或使用建议的最佳实践构建的功能扩展现有项目。这些插件的大部分实现依赖于应用程序块和库。
  3. 设计器 — Visual Studio 的附加设计器支持,用于部分应用程序。
  4. 引用实现 — 使用软件工厂的所有其他资产进行的稍微实际些的应用程序的完整执行。
  5. 体系结构指导和模式 — 有关软件工厂使用的模式和最佳实践选择的综合文档。
  6. 操作方法主题 — 如何使用软件工厂的各部分的详细分步指导(或仅是有关如何以软件工厂建议的方式使用特定技术的指导)。

模式与实践小组提供的软件工厂有:

Web Client Software Factory

Web Service Software Factory

Smart Client Software Factory

Mobile Client Software Factory

……

什么是Web Client Software Factory

Web客户端软件工厂提供了一个工具集,用于指导许多开发人员使用ASP.NET同时协作构建大型ASP.NET应用程序任务,在Web客户端软件工厂中提供了:

  1. 应用程序块和库 — 包含了Composite Web应用程序块, Page Flow应用程序块, ObjectContainerDataSourceControl,并且使用Enterprise Library进行权限管理、异常处理、日志记录和数据访问。
  2. 指导包方案和模板 — 提供了一系列的模板包括Solution模板,Business Module模板, Foundational Module模板, Page Flow模板
  3. 设计器 — 包含了Page Flow设计器
  4. 体系结构指导与模式 — 如View-Presenter ,Application Controller ,Service Locator ,Dependency Injection 等
  5. 引用实现 — 提供了一个全球银行公司的e-Banking引用实现
  6. ……

Web客户端软件工厂资产图如下:

TerryLee_WCSF

安装Web Client Software Factory

安装Web客户端软件工厂需要有如下几个必备的条件

安装Guidance Automation Extensions

安装Guidance Automation Toolkit

安装.NET Framework 3.0 and Windows Workflow Foundation

安装Web Client Software Factory,官方站点:http://www.codeplex.com/websf

使用Web Client Software Factory

使用Web Client Software Factory时可以按照帮助文档提供的流程进行:

TerryLee_WCSF

创建Web客户端解决方案

安装完Web客户端软件工厂后,会在 Visual Studio 2005 中发现称为“Web 客户端解决方案”的新项目模板,列在指导包项目类型的下面,如下图所示:

TerryLee_WCSF03

创建完成后的解决方案结构如下:

TerryLee_WCSF04

可以看到,使用Web客户端软件工厂指导包创建的解决方案被分成了两个部分,一是Modeles目录下的Shell项目,一是WebSites下的名为DevelopmentWebSite网站,实际上,Web客户端软件工厂的目标是创建多个协同工作的独立模块以定义一个网站,因此这些项目只是您要添加到应用程序的多个项目中的前两个项目。该解决方案的常规布局是为站点的每个部分创建一个独立的模块(类库项目)。每个模块将独立兼容并且在主网站目录中将具有独立的页面和源代码文件的目录。此项目布局的目标是使多个开发人员可以独立处理站点的不同部分,而不会相互干涉,并且能够通过将新库和刷新的页面目录传送到部署服务器来独立部署模块,而无需同时重新部署所有模块。同时可以看到,为了整合一个站点下的多个模块,它在 /Shared 子目录下定义一个顶层母版页 Default.master,模块创建的页面将默认使用此母版页。

Web客户端软件工厂创建的解决方案,自带了默认的起始页面,运行上面的程序后,可以看到如下界面:

TerryLee_WCSF05

相关的问题

要提示一点的是,WCSF现在还不支持Visual Stuido 2008。并且如果你的机器上安装了Visual Studio 2008 Beta2版本的话,在运行由WCSF创建的Web应用程序时将会报错。可以下载附件中的文件,覆盖<安装目录>\\Microsoft Web Client Factory\Microsoft Practices Library下的文件,或者自行打开WCSF源代码,找到WCSFExtensions下的WCSFBuilderBase.cs文件中,修改方法TearDown:

public TItem TearDown<TItem>(IReadWriteLocator locator, TItem item)
{
if (typeof(TItem).IsValueType == false && item == null)
return default(TItem);
return DoTearDown<TItem>(locator, item);
}

结束语

Web 客户端软件工厂为尝试管理使用 ASP.NET 构建的大型网站的开发人员提供了引人注目的解决方案。此软件工厂支持创建与站点中的各个子目录相关联的模块,并为模式(如 View-Presenter 和 Application Controller)提供了一个可支持以模块化方式启用网站的独立开发、测试和部署的框架。值得我们认真去研究,后续的文章将会更详细的讲述Composite Web应用程序块、View-Presenter模式等。
附件:/Files/Terrylee/CompositeWeb.rar

posted @ 2007-11-25 20:03  TerryLee  阅读(10230)  评论(36编辑  收藏  举报