AWS BPM 与微软SharePoint集成实践

六月 1, 2011 分类: 3.技术解决方案, 社区 作者:刘萌   476 浏览

经过两周的摸索,做了一个简单的AWS与sharepoint集成的DEMO,先上一张此集成过程的拓扑图,以便直观的了解整个过程

环境搭建

整个DEMO的虚拟机环境包括:

  • Windows 2003 server
  • Windows AD域服务
  • SQLServer 2005
  • AWS 5.1 + AWS5.1.3.20110510.PATCH3补丁
  • Visual Studio 2005
  • SharePoint 2007

Sharepoint WebPart开发

              整个解决方案的目录结构如下

 

  • 解决方案名称为 “CodeArt.SharePoint”,动态库名称相同,下方 H:\…\CodeArt.Solution为创建的一个.Net网站项目,这个项目不是必须创建的,但是因为我们要通过services来与AWS交互,所以建这个就是很有必要的了,为什么呢?是因为webpart的部署分为bin目录部署和GAC部署,由于我们要连接远程services,所以不使用此部署方式,因为bin目录部署方式对连接远程服务做了一些限制,在我们的DEMO中是采用GAC的部署方式,因此我们不过多说明bin部署。
  • GAC部署就是将我们的动态连接库直接注册到C:\WINDOWS\assembly中,注册方法很简单,在我们的项目的目录中找到GAC.cmd双击它,完成后,到C:\WINDOWS\assembly中查看是否有CodeArt.SharePoint,如果有就说明我们部署成功了,在我们创建的网站项目的GAC目录中的dll就是我们上方创建的动态库,在GAC目录中一定要保持是最新的,我们每修改一次动态库,都要把dll从新放到GAC目录中,然后双击GAC.cmd部署,还有一点,在我们的C:\Inetpub\wwwroot\wss\VirtualDirectories\9001目录中的web.config中一定要添加此dll的注册信息,<SafeControl Assembly=”CodeArt.SharePoint, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1ced297a124f81″ Namespace=”CodeArt.SharePoint.WebParts” TypeName=”*” Safe=”True” AllowRemoteDesigner=”true”/>
  • GAC.cmd中的内容

            “%programfiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe” -if bin\Debug\CodeArt.SharePoint.dll

              iisapp /a “SharePoint – 9001″ /r

              @pause

              其实理解起来也很简单就是先启动了一个VS的工具,然后在将我们的动态连接库的dll放到我们sharepoint网站的iis中

  • .NET项目的12目录,我们网站项目服务器的目录大致相似”C:\Program Files\Common Files\Microsoft Shared\web server extensions\12 “其中的CONTROLTEMPLATES目录放的是我们在前台网站中显示的三个portlet的目录。开发一个webpart的用户控件,只需要在此目录中创建一个web用户控件,此控件的功能代码可以在对应的cs文件中写,然后我们到项目解决方案目录中找到这个控件的文件,将其复制到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES中,在网站中如何加入创建的webpart和控件,可以参看《POC_报告_SharePoint集成_POC模拟验证》,里边有详细的说明

              下面我们来说一下为什么用户控件只需要这样就可以用了,主要机制是因为我们在动态库中有一个UserControlWrapPart.cs类,此类就是关键了,我们创建的用户控件是通过此类来动态加载的,相关类中的代码如下:

 

代码很简单,但是用途却很大,此类继承WebPart,将_ControlPath(前台传过的控件路径)以control的形式加载到一个Page,这里的路径为在前台加入UserControlWrapPart部件后,点击修改共享web部件中有个杂项,里边就有控件路径

好了,现在webpart基本可以添加了。你可以在Sharepoint中直接处理AWS的代办任务、快速启动一支流程,也可以将AWS门户的导航树显示到MOSS里,实现的最终效果如下:

《POC_报告_SharePoint集成_POC模拟验证》中对这个过程描述的稍微详细一些,如果有需要的朋友可与我联系