随笔 - 10, 评论 - 35, 引用 - 0

导航

工具

关于

ocean的公告!

标签

每月存档

广告



访客

在Sharepoint2007中开发WSS-Style Webpart

    在Sharepoint2007中存在两种webpart,一种是WSS-Style webpart,是继承自Microsoft.Sharepoint.WebPartPages.WebPart这个类,这个基类是在Microsoft.Sharepoint.dll中定义的。

    那么我们如何开发这样一个webpart呢,具体步骤很简单。你可以从 此处 下载一个sample.

    首先我们新建一个class library,因为一个webpart说到底就是继承自某个基类的子类。建立了项目之后,需要添加Microsoft.Sharepoint.dll的引用,这个dll默认位于C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI,如下图:

    

    然后继承Microsoft.Sharepoint.WebPartPages.WebPart这个类,重写里面的RenderWebPart(System.Web.UI.HtmlTextWriter output)方法,然后编译,就OK了。

    编译完后,就生成一个dll,下面就是部署的问题了,确切的说,Sharepoint2007里面的webpart部署还是值得研究的。

    第一种部署方式是部署到bin目录里面,这种方式部署的webpart只能归当前的虚拟服务器使用;第二种方式则是部署到GAC里面,这样部署的webpart则可以在所有的虚拟服务器中使用,并且还具有较高的效率。我们先说第一种方式:

    第一步拷贝dll文件:在打开虚拟服务器的根目录,比如c:\inetpub\www,然后新建一个bin目录,和Sharepoint2003不同,默认的时候bin目录不存在。然后将dll拷贝到bin下。

    第二步是修改web.config,加上你的程序集的描述。本例就是“

    第三步是建立描述文件:描述文件的建立有着很大的学问,在Sharepoint2007中,存在两种webpart的描述文件,一种扩展名为.webpart,另一种扩展名为.dwp,.dwp的使用方法和Sharepoint2003的dwp相同。.dwp的出现主要是为了能够和上一版本兼容,现在建议使用.webpart描述文件。

    描述文件你可以放在两个地方(实际上应该还有第三个地方可放,暂不述),第一个地方是webpart gallery,第二个地方是虚拟服务器根目录下的wpcatalog目录。.dwp和.webpart两种文件的使用方法完全一样。

    当加入到wpcatalog时,需要重启一下应用(随便修改一下web.config就可以重启应用)。当重启应用后,Sharepoint2007会读取wpcatalog中的文件,然后加载到内存以供我们选择。这时webpart就部署好了。这种方式的最大问题是你必须自己写描述文件,而不能自动生成,所以我还要介绍另一种方式。就是放在webpart gallery中。

    第二种方式放在webpart gallery中,这是sharepoint2007内置的一个文档库,放在这里面的一个好处是不用重启应用,当你将描述文件加入到这里面是,你就可以直接在添加webpart的列表中看到新增加的webpart了。除了手工的上传.dwp或者.webpart描述文件到webpart gallery中,还可以自动生成。自动生成取决于两个条件,第一个是你的dll已经拷贝到正确的位置,第二个是web.config中已经加入了描述,缺一不可。当这两个条件满足后,选择webpart gallery上的New按钮,就会列出你新部署的webpart。webpart gallery的位置在主页的action下来菜单中,选择Site Settings -> Modify All Settings,然后选择webpart,就会进入到webpart gallary。

    

    选中后,点击上面的Populate Gallery按钮,就会把自动生成的描述文件添加到webpart gallery中。

    

    这里要注意的是,如果你的dll是sharepoint2003的webpart(也即.NET1.1的程序集),会自动生成.dwp描述文件。如果你是.NET2.0的程序集,也即Sharepoint2007的webpart,则会生成.webpart描述文件。

    另外一个问题,即强签名的程序集,如果你要部署到GAC中,则只要把dll拷贝到GAC里面即可,其它步骤都相同,不同的仅仅是dll放的位置。当你要放入到GAC中时,你必须对程序集进行签名,也即制作一个强签名程序集。使用sn -k outfile来生成key。但是如果你把强签名的程序集放入到bin目录中而不是放入到GAC里面的时候,你有时就会发现出现这么一个对话框:

    

    这是因为程序集被安装在了一个被部分信任的区域,如何解决这一个问题呢?有两个方法,一是使用dwp文件描述,当你使用dwp文件描述的时候,无论dwp文件在webpart gallery中还是在wpcatalog中,都不会有这个对话框出现,webpart可以正常使用。第二种则是对程序集进行一个声明,在AssemblyInfo.cs文件中加上一句“[assembly: System.Security.AllowPartiallyTrustedCallers()]”,然后使用.webpart描述文件就没有问题了,无论这个文件放在webpart gallery中还是wpcatalog中,所以这个声明也仅对.webpart的描述文件才有效。这里你还会发现一个有趣的现象,当你使用了强签名后,无论是自动生成的.webpart文件还是直接上传到webpart gallery中的.webpart文件,里面的PublicKeyToken都会变成null,这点很奇怪。我也没有想明白是怎么回事,但是这个不影响webpart的使用。

    另外还有一点要注意的是,当部署到GAC里面的时候,在webpart gallery中New的时候,无法自动生成.webpart文件,所以需要手写。在你下载的sample里面,包含了所有的代码及.dwp和.webpart的描述文件各一个以供参考。部署完的webpart应该是这个样子:

    

posted on 2006-06-30 11:26:00 by ocean  评论(5) 阅读(8859)

开发Sharepoint2007的Webpart备忘

根据测试的经验和OTEC的小结,备忘如下几条:

1:Sharepoint2003开发的Webpart可以直接在Sharepoint2007上运行。并且有如下信息:
    a:不需要安装.NET Framework1.1
    b:保证运行仅仅是保证能够运行,不保证业务逻辑正确。由于一些对象发生变化,比如在Sharepoint2007中区域已经没有了,所以使用了area相关的对象的webpart都将无法正确运行,另外由于列表的数据类型也发生了一些变化,所以 涉及到列表的一些列的操作的webpart有可能不能正确运行。而且由于这些变化在运行时可能会抛出异常。
    c:在Sharepoint2007中,列表中可以新建目录,这个特性在前几天的blog中展示过,所以对列表进行操作的Webpart可能要考虑列表内子目录的问题。
    d:在Sharepoint2007中,权限可以限制到项目级别(这个特性还没来得及在blog中展示),所以webpart操作列表的项目时可能要考虑权限的处理。
    f:拿了一个原先在Sharepoint2003上开发的最简单的webpart(没有涉及到任何sps对象),直接安装到Sharepoint2007中可以正常使用。stsadm.exe这个工具继续在Sharepoint2007中存在。不过看目录Sharepoint2007多了很多新工具。

2:目录由原先的C:\Program Files\Common Files\Microsoft Shared\web server extensions\60变成了C:\Program Files\Common Files\Microsoft Shared\web server extensions\12,其中60这个目录仍然存在。

3:在Sharepoint2007下使用Visual Studio2005开发Webpart,可以采用两种模型,一种类似Sharepoint2003下的继承方式(WSS-Style)。一种则采用ASP.NET2.0的webpart的方式(就是我们熟悉的System.Web.UI.WebControls.WebParts.WebPart类继承下来)。采用后者编写的webpart也可以用于普通的ASP.NET2.0网站。我们在webpart gallery中可以看到两种不同的webpart描述文件,.webpart和.dwp。其中.dwp是为了更好的兼容以前的webpart。现在推荐都采用.webpart的方式。

   

4:除了webpart开发外,在Sharepint2007中还有Event Handlers开发,Workflow开发,SSO开发,列表自定义数据类型开发等等。需要学习的东西还是很多的。希望大家赶快动手吧。

posted on 2006-06-28 00:47:00 by ocean  评论(4) 阅读(7644)

在Sharepoint2007新建站点

    在Sharepoint2007中创建一个站点,和Sharepoint2003中差别不大,但是有些小地方有所改变。首先是默认不在Sites下了,而是在根下:

   

    另外可以选择链接是否在导航栏中出现,如下:

   

    如果选中yes,则新建的站点会在导航栏中出现,如下:

   

    另外从上图中我们可以看到,还可以选择Division和Region两种划分。

    另外在模板的选择上,分了三大部分,分别是Collaboration、Meetings、Enterprise。

   

>更多Sharepoint2007资讯.... 

posted on 2006-06-26 14:58:00 by ocean  评论(12) 阅读(5990)

Sharepoint2007列表中的目录

    在Sharepoint2007中有一个新特性,就是列表里面可以建立目录了。在Sharepoint2003中,只有文档库、图片库和表单库里面可以建立目录。我想基于这些特性,原来基于列表开发的一些WebPart就需要做适当改变了。

   

更多Sharepoint2007资讯....

posted on 2006-06-24 17:25:00 by ocean  评论(5) 阅读(5518)

Sharepoint2007中的我的站点

    在Sharepoint2007中,仍然存在“我的站点”,但是创建方式有所变化,在主页上多了一个"I need to..."的webpart,这个webpart中可以选择,如下图:

   

    选择后就可以创建过程:

     

    在初次打开MySite首页的时候,会有一个Office设置的对话框。点击yes即可。

     

    新建的My Site首页如下:

   

posted on 2006-06-23 13:39:00 by ocean  评论(5) 阅读(5376)

Sharepoint2007中的用户选择器

     在Sharepoint2007中,User类型的数据提供了选择器,并且提供了姓名检查。

   

    其中采用选择器,可以对用户进行查询。

   

    如果自己输入用户,则可以通过checknames按钮来检查正确性。 图中第一个按钮是"checknames"按钮,第二个是打开选择器的按钮。

posted on 2006-06-22 11:37:00 by ocean  评论(3) 阅读(5018)

Sharepoint2007中的甘特图

    在Sharepoint2007中,新建视图多了两种View,一种是Gantt View,一种是Access View。 Gantt View就是我们平时在Project中常见的甘特图。

   

    新建甘特图的时候,需要对应一些列,分别是Title, Start Date, Due Date, Percent Complete。对应好这四个字段就可以了。

   

    建立好的甘特图显示如下:

   

    如果有项目在目录里面,则通过视图的设置,可以让目录里面的项目也一并显示出来,在Folders中,选择"Show all items without folders"。

   

    显示目录的效果如下,其中step3.1和step3.2都是在step目录下,但是很可惜不能和project一样能够分层显示,而仍然是显示在一级上,也是小小的缺憾吧。

   

posted on 2006-06-20 23:23:00 by ocean  评论(6) 阅读(8962)

Sharepoint的两级回收站

    在Sharepoint2007中,增加了回收站,结束了Sharepoint2003的梦魇。记得在Sharepoint2003中,如果有人不小心删除了一个重要的文件,则必须将整个站点的备份找出来,进行恢复,而一个站点的备份通常都是几G甚至几十G。所以在Sharepoint2003下也有人回收站的东东。

    现在在Sharepoint2007中,提供了两级回收站机制。

   

    在删除一个文件后,进入到回收站中,每个站点有个回收站,并且还有Site级回收站看到所有被删除的文件。

  

    当回收站中的文件被清空后,就会跑到二级回收站中,也就是Site级回收站的"Deleted from end user Recycle Bin"视图。

   

    当二级回收站的文件被清空后,文件被彻底删除。在二级回收站中的文件被restore后,将直接恢复到文档库中,而不会恢复到上一级回收站中。

posted on 2006-06-19 12:16:00 by ocean  评论(2) 阅读(5091)

Sharepoint2007(OSS2007)重新学过

在拿到了OSS2007的虚机后,发现界面的变化还是很大的。多了很多功能,兴奋中。先截几个界面给大家看看:

重新学过Sharepoint2007

 

管理中心

 

管理中心-operations

 

管理中心-应用管理

 

新站点

posted on 2006-06-12 17:24:00 by ocean  评论(2) 阅读(6182)

Powered by: Joycode MVC Blogger System