出处:http://blog.joycode.com/kaneboy/archive/2008/12/23/115402.aspx

 

Composite Web Application Block是Web Client Software Factory中一个用来开发Web应用的框架,它能帮助程序员更方便的使用MVP模式。关于CWAB的更多信息,请参考这里

当我们开发SharePoint界面的时候,比如,创建一个Web Part,如果你希望使用MVP模式,是可以引入CWAB的。在这个文档中解释了如何在SharePoint中使用CWAB,但文档里面的一些步骤,其实不一定是最好的。比如,文档中告诉你,将各个程序集放到Web Application的/bin目录中,但我的建议是仍然将它们部署到GAC里面,这样,你就不需要更改Web Application的web.config中的<trust>节点,将代码的默认信任等级提高了。

嗯,总之,我们可以使用CWAB来方便的基于MVP模式来开发Web Part,比如下图所示的项目结构:
在SharePoint开发中引入Composite Web Application Block (转载) 

上图中的“KBSample.SiteUser.Module”是CWAB中的一个Module项目,包含了与界面UI分离的业务模块。在“Views”目录中包含了定义View的接口和Presenter类:
在SharePoint开发中引入Composite Web Application Block (转载)

在“Services”目录中包含了与业务操作相关的Service类:
在SharePoint开发中引入Composite Web Application Block (转载)

而“KBSample.SiteUser”项目则是专门的SharePoint项目(你可以选择使用VSeWSS,或是其它你习惯的工具),其中包含了用来定义Web Part界面的View的实现。

在下面所示的Service接口中,定义了用来真正和SharePoint Object Model交互以获取数据的Service:
在SharePoint开发中引入Composite Web Application Block (转载)

在Module被初始化时,将上面的Service注册到Container中:
在SharePoint开发中引入Composite Web Application Block (转载)

对View接口的定义:
在SharePoint开发中引入Composite Web Application Block (转载)

在Presenter里面,通过[ServiceDependency]来注入所依赖的Service对象(CWAB通过ObjectBuilder来干这件事),同时定义了当View被载入时的操作:
在SharePoint开发中引入Composite Web Application Block (转载) 

View是通过一个用户控件来实现的,它实现了View接口,通过[CreateNew]来将一个新的Presenter对象注入进来:
在SharePoint开发中引入Composite Web Application Block (转载)

 

 

 

 

 

 

 

别忘记在View被载入时,也要执行一下Presenter中的载入方法:
在SharePoint开发中引入Composite Web Application Block (转载)

如果你熟悉Web Client Software Factory的话,那么在SharePoint开发中引入CWAB应该不是一件困难的事情。不过,由WCSF提供的那些Template和Recipe都不能使用了,项目的结构,需要我们来手工维护(这样反而给了我们很大的自由度:)。

相关文章:

  • 2022-03-01
  • 2022-01-27
  • 2021-11-01
  • 2022-01-04
  • 2021-08-30
  • 2022-12-23
  • 2021-10-10
猜你喜欢
  • 2021-08-13
  • 2022-12-23
  • 2021-07-23
  • 2022-01-14
  • 2021-07-23
  • 2022-12-23
相关资源
相似解决方案