设为首页 收藏本站
查看: 1048|回复: 0

[经验分享] 在SharePoint开发中引入Composite Web Application Block

[复制链接]

尚未签到

发表于 2019-2-4 13:26:54 | 显示全部楼层 |阅读模式
  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中的节点,将代码的默认信任等级提高了。

嗯,总之,我们可以使用CWAB来方便的基于MVP模式来开发Web Part,比如下图所示的项目结构:


  

上图中的“KBSample.SiteUser.Module”是CWAB中的一个Module项目,包含了与界面UI分离的业务模块。在“Views”目录中包含了定义View的接口和Presenter类:


  

在“Services”目录中包含了与业务操作相关的Service类:


  

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

在下面所示的Service接口中,定义了用来真正和SharePoint Object Model交互以获取数据的Service:


  

在Module被初始化时,将上面的Service注册到Container中:


  

对View接口的定义:


  

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


  

View是通过一个用户控件来实现的,它实现了View接口,通过[CreateNew]来将一个新的Presenter对象注入进来:


  别忘记在View被载入时,也要执行一下Presenter中的载入方法:


  

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




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-671757-1-1.html 上篇帖子: Microsoft Office Sharepoint Server 2007 中文版独立服务器 下篇帖子: 发布 SharePoint Server 2007 Starter Page
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表