MOSS 2007基础:部署自定义WebPart

下面,我们将说明如何将WebPart上载到WebPart库中,并且将其添加到一个WSS v3站点的页面中。

5、编译WebPart
下面我们要做的是编译我们的WebPart。在编译之前,让我们先将编译的路径改为SharePoint站点的bin目录。否则我们将不得不手工复制粘贴TestWebParts.dll到SharePoint的bin中。
默认情况下,我们的SharePoint站点对应的物理磁盘目录下并没有一个bin目录。所以如果是第一次部署,我们需要手工创建一个。
当然,我们也可以选择将生成的dll部署到GAC(Global Assembly Cache)里。但是,我们建议可以在生产环境下这么做,并且这时需要给dll加上强命名。在开发环境下,我们一般使用部署到bin的方式,这样更便于调试。
右键点击TestWebParts解决方案,选择属性,这时在应用程序标签中,将显示出WebPart组件程序集的名称和默认的命名空间。

点击生成标签,选择输出路径。点击浏览按钮导航到SharePoint的bin目录。现在我们可以编译该WebPart了。

6、添加Safe Control
我们必须在SharePoint的web.config文件中的Safe Control列表中增加我们的WebPart所处的程序集。这样才能被允许用于SharePoint环境中。一个标准的safe control条目如下所示:

< SafeControl  Assembly ="[Assembly Name]"  Namespace ="[Namespace]"  TypeName ="*"  Safe ="True"   />

我们可以在TypeName后面输入类的名称。输入“*”代表该程序集中所有的WebPart。
打开web.config文件,找到<SafeControls>元素。添加下面的内容到safe control列表的末尾。

< SafeControls >
    
    
< SafeControl  Assembly ="TestWebParts"  Namespace =" TestWebParts "  TypeName ="*"  Safe ="True"   />
</ SafeControls >

7、添加WebPart到WebPart库
下面,我们将把我们的WebPart添加到WebPart库(Web part gallery) 中。这样当我们需要时就可以在SharePoint站点中使用该WebPart了。
打开WSS v3站点。通过点击站点动作(Site Action)->站点设置(Site Settings)导航到站点设置页。


点击库(Gallery)标签下的Web部件库(Web Parts)链接。进入WebPart库页面。
在WSS v2中,添加WebPart到SharePoint站点只能使用WebPart DWP文件。而在WSS v3中将支持两种类型的文件:DWP文件和WEBPART文件。而WEBPART文件类型用于添加一个ASP风格的WebPart。dwp文件用于我们添加wss风格的WebPart。两者可以存在于同一个WebPart库中。
我们有两个选择来添加一个webpart格式的文件到webpart库。我们可以上载(Upload),也可以点击新建(New)。如果我们选择新建,SharePoint将读出所有在web.config的Safe Control中注册的程序集供我们选择。这时,webpart文件将自动被创建出来。我们的SimpleWebPart将列在其中。


选择SimpleWebPart,点击发布到库中(Populate Gallery)。

8、编辑webpart信息
我们可以点击刚刚添加的webpart文件前的编辑图标来修改其详细信息。

9、更新webpart信息
我们可以修改名称,标题,为webpart添加描述信息等。webpart可以分组以便方便的访问到。这里我创建了一个新组名为Litware。这样,当我们想把该webpart添加到SharePoint页面中是,就可以在Litware这个组里找到该webpart。

10、查看xml格式的webpart文件
我们可以点击上图工具栏中的查看XML来查看webpart文件的结构。这样webpart文件将以XML的格式在浏览器中打开。
11、导出webpart文件
我们可以点击工具栏中的导出把webpart文件导出到不同的地方,方便将其移动到不同的环境里。
12、WebPart详细信息查看
我们可以点击顶部的位置导航中的webpart名称进入WebPart详细信息查看页面。
我们可以在这里对该webpar进行编辑,删除,管理权限,签入/签出或添加通知等操作。如增加一个订阅的页面如下:
13、WebPart预览页面
我们可以在WebPart库里预览webpart。导航到WebPart库页面,点击该WebPart文件的链接或其前面的xml图标,将打开一个预览页面。14、添加WebPart到SharePoint站点
我们已经成功的把我们的WebPart添加到WebPart库。现在我们要把该webpart添加到SharePoint站点中。打开SharePoint站点,在站点动作中选择编辑页面。

页面将进入编辑模式。选择一个Web部件区域,点击添加一个Web部件链接。将打开添加Web部件页面。
由于我们上面建了一个Litware组,我们可以方便的在下面找到SimpleWebPart,点击添加,我们的WebPart就显示到页面中了。

posted on 2006-11-08 15:14 Sunmoonfire 阅读(4299) 评论(16)   编辑   收藏 所属分类: SharePoint
#2楼  [楼主]
2006-11-27 10:40 | Sunmoonfire
@狐狸马三[匿名]
是SharePoint站点部署时选择的站点目录。如果SharePoint站点是在默认网站,那么就是C:/Inetpub/wwwroot这个位置。
   回复   引用   查看     
#3楼 
我部署的时候遇到一个很奇怪的问题,我就写个最简单的hello world,放在bin文件夹里面能够正常输出hello world,但是把部署到GAC后确什么都没有,你知道为什么吗?
   回复   引用   查看     
#4楼  [楼主]
2007-01-04 18:07 | Sunmoonfire
@bingochuan[匿名]
需要强名
   回复   引用   查看     
#5楼 
我的webpart程序集已经强命名了,但是还是不正常,是不是在webconfig里面配置那个<safecontrol>节点需要指定version,publickey那些?我配置的时候是这样写的
<safecontrol assblemly="helloworld" namespace="helloworld" ......>
   回复   引用   查看     
#6楼 
我现在是遇到很奇怪的问题,如果是继承自webcontrol.webparts.webpart,则不用注册到GAC就可以正常使用,但是如果是继承自project 2007中的PWAPart或者其他PWA控件(它们也间接继承自webcontrol.webparts.webpart),则一定要注册到GAC后才能使用,不知道你有没有遇到过这样的问题?
最近在研究project 2007中的webpart,我的qq是279015152,有兴趣加我,一起交流下啊
   回复   引用   查看     
#7楼  [楼主]
2007-01-15 14:05 | Sunmoonfire
@bingochuan
是的,部署到gac中时<safecontrol>节点需要指定version,publickey这些的。
   回复   引用   查看     
#8楼  [楼主]
2007-01-15 14:18 | Sunmoonfire
@bingochuan
我没有遇到类似的情况,根据你的描述我提两点建议,仅供参考。
1、PWAPart是否允许继承,这点需要查查PWA的sdk确认一下。据我所知,很多常用的webpart都不能继承。
2、必须放到gac中,可能是由于路径问题引起的。PWAPart的dll在gac里?或者可以拷贝一份放到bin里尝试一下。
   回复   引用   查看     
#9楼 
2007-01-18 19:39 | xiao [未注册用户]
很好!我也在学这东东,QQ :249333582
   回复   引用   查看     
#10楼 
2007-05-25 18:52 | xmchyabi [未注册用户]
如果对于一些复杂点的UI界面.
其webpart要怎么写..
全部用CodeBehind吗?
   回复   引用   查看     
#11楼 
2007-06-28 17:12 | 丹尼斯 [未注册用户]
想請教各位..當我點選排序時,卻顯示網頁組件發生無法預期的錯誤...
當中第一欄名稱是AAA,依AAA排序,第二欄是BBB,依BBB排序...
請問各位有發生一樣的問題嗎!?
   回复   引用   查看     
#12楼  [楼主]
2007-07-03 09:12 | Sunmoonfire
@丹尼斯
MOSS现在出了很多hotfix,或许有针对这个问题的。找一下看看
   回复   引用   查看     
#13楼  [楼主]
2007-07-03 09:15 | Sunmoonfire
@xmchyabi
还可以利用用户自定义控件包装器Web部件,将WebPart开发转为UserControl开发,可以利用其设计视图
   回复   引用   查看     
#14楼 
2007-09-05 10:48 | 慢一拍
我遇到的问题感觉和bingochuan的一样。

编译后的webpart已经拖入GAC,但是只要bin文件下没有程序集(dll),就会出错。看起来,虽然我已经在GAC中部署了,但是它却只认得bin文件夹下的。

既然能拖入GAC,那一定强命名了的。

webconfig中相关配置部分如下:
<SafeControl Assembly="Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=51f1fd51e385ac62" Namespace="Test" TypeName="*" Safe="True" />

我是通过Web Part Gallery中的populate方式加入这个webpart的,应该也没有问题吧。这样应该是等同于写了个*.webpart文件吧。当然我也试图写个*.dwp文件来upload到Web Part Gallery。结果是一样的。


我到底怎么让它能认出已经部署到GAC中的东西呢。


   回复   引用   查看     
#15楼  [楼主]
2007-09-09 21:52 | Sunmoonfire
@慢一拍
没有遇到过这样的问题。
如果是在web.config的SafeControl里注册了的话,部署到GAC里的webpart应该是可以直接在Web部件库中添加的。点击新建,勾选好后发布,会自动生成webpart的描述文件。
还有就是记得要iisreset

   回复   引用   查看     
#16楼  [TrackBack]
2007-11-29 12:46 | GSpring
1、MOSS 2007基础:部署自定义WebPart
2、
[引用提示]GSpring引用了该文章, 地址: http://www.cnblogs.com/firstyi/archive/2007/11/29/976786.html
   回复   引用   查看        
#1楼 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值