RSS 2.0 Feed
技术文章
摘要:    产品介绍与概览   Windows SharePoint Services 3.0 主页 http://office.microsoft.com/zh-cn/sharepointtechnology/FX100503842052.aspx   Microsoft Office SharePoint Server 2007 主页 http://office.microsoft.com/zh-cn/sharepointserver/FX100492002052.aspx   Microsoft Windows SharePoint Services 概述 http://www.microsoft.com/china/office/2007/overview/technologies/sharepointtechnology/overview.mspx   Microsoft Office SharePoint Server 2007 概述 http://technet.microsoft.com/zh-cn/magazine/cc162511.aspx   Microsoft Office SharePoint Server 2007 简介 http://office.microsoft.com/zh-cn/sharepointserver/HA101732172052.aspx   Microsoft Office SharePoint Server 2007 产品概述 http://office.microsoft.com/zh-cn/sharepointserver/HA101656532052.aspx   安装与部署   Microsoft Office SharePoint Server 2007 部署图示指南 http://cid-fe8bc9c59d9b5399.skydrive.live.com/self.aspx/Public/SharePoint/Deployment/Office%20SharePoint%20Server%202007%20Install%20Guide.pdf   Deployment for Office SharePoint Server 2007 http://technet.microsoft.com/en-us/library/cc262957.aspx   Installation Guide for Microsoft Office SharePoint Server 2007 http://technet.microsoft.com/en-us/library/cc298924.aspx   Planning and Deploying Service Pack 1 for Microsoft Office SharePoint Server 2007 in a Multi-server Environment http://technet.microsoft.com/en-us/library/cc262996.aspx   升级指南:将 SharePoint Portal Server 2003 升级到 Office SharePoint Server 2007 http://cid-fe8bc9c59d9b5399.skydrive.live.com/self.aspx/Public/SharePoint/Deployment/Upgrade%20SPS%202003%20to%202007.doc   升级的注意事项 http://office.microsoft.com/zh-cn/help/HA100773422052.aspx   Microsoft Office SharePoint Server 2007 (内置SP1) 中文试用版下载  http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=2e6e5a9c-ebf6-4f7f-8467-f4de6bd6b831   Microsoft Office SharePoint Server 2007 SP1 中文版下载 http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=ad59175c-ad6a-4027-8c2f-db25322f791b   Microsoft Office SharePoint Server 2007 中文语言套件 SP1 下载 http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=3a6c26fd-0beb-40d5-8cba-15164faab150   Windows SharePoint Services 3.0 (内置SP1) 中文版下载 http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=ef93e453-75f1-45df-8c6f-4565e8549c2a   Windows SharePoint Services 3.0 SP1 中文版下载 http://www.microsoft.com/downloads/details.aspx?familyid=4191A531-A2E9-45E4-B71E-5B0B17108BD2&displaylang=zh-cn   Windows......[阅读全文]

posted @ | Feedback (89) |

摘要:此页面已停止更新,请访问QuickPart项目官方网站:www.codeplex.com/kaneboyQuickPart完整安装程序下载 :下载(2007-02-25更新)QuickPart程序集下载 (仅包含dll程序集文件):下载(2007-02-25更新)视频:如何安装QuickPart视频:如何卸载QuickPart视频:如何使用QuickPart来开发Web Part:(1)普通用户控件与自定义属性;(2)Web Part Connection;(3)创建定制工具边栏什么是QuickPart?如果您曾经给SharePoint 2007开发过Web Part,那么一定会不满意其开发效率。由于微软并未官方提供任何可视化的Web Part开发工具,所以开发人员们不得不使用代码来输出Web Part的界面信息,而这样的开发方式是极其低效的。QuickPart是一个方便开发人员快速开发Web Part的工具。它能够将一个普通的ASP.NET用户控件包装成一个标准的Web Part,用于SharePoint中。也就是说,开发人员只需要创建出标准的ASP.NET用户控件,然后就可以使用QuickPart来将这个用户控件当做Web Part来使用。由于在Visual Studio中可以可视化的创建用户控件,所以,用户控件具有很好的开发效率,而且,在服务器端事件处理等方面,用户控件都能很方便的实现。有了QuickPart,开发人员就可以间接的可视化开发Web Part了。而且,即使开发人员不了解开发Web Part的技术细节,也同样能开发出能用于SharePoint的Web Part!QuickPart如何安装?请参考页面上方的视频。我安装了QuickPart,将它放到页面上,为什么在查看其属性时,没有任何QuickPart相关的属性(比如用户控件选择列表)?打开SharePoint站点根目录的web.config文件,搜索“<trust level="WSS_Minimal" originUrl="" />”,将其更改为“<trust level="Full" originUrl="" />”。QuickPart如何从服务器上卸载?请参考页面上方的视频。我已经使用QuickPart安装文件在服务器上安装好了QuickPart,现在发现它有更新版本了,如何更新服务器上已经安装好的QuickPart?通常,在发布QuickPart更新版时,除了完整的安装版本之外,还会发布一个单独的更新程序集(QuickPart.dll)。您只需要下载这个更新的程序集,然后使用它替换掉SharePoint站点根目录下面“bin”子目录中旧版本的QuickPart.dll文件即可。如何开发出能被QuickPart包装的用户控件?简单的说,就和开发一个普通的ASP.NET用户控件一模一样,您不需要使用任何SharePoint特有的技术。但是,为了更方便的开发用户控件,我们推荐您使用微软发布的Visual Studio 2005 Web Application Projects,这个工具能够让我们在Visual Studio 2005中以新建Web应用程序项目的方式来创建ASP.NET应用,而不是使用Visual Studio 2005中的新建Web站点的方式来创建ASP.NET应用。用户控件做好以后,应该怎么部署?将用户控件文件(.ascx)拷贝到SharePoint站点根目录下的“wpresources”子目录即可。如果用户控件文件有后台代码,那么将后台代码编译后得到的程序集文件(.dll)拷贝到SharePoint站点根目录下的“bin”子目录即可。在用户控件中,可以创建自定义属性吗?可以。和给标准的Web Part创建自定义属性一模一样,只需要给用户控件的属性添加上相应的Attribute修饰即可。PersonalizableAttribute(必须)WebBrowsableAttribute(必须)WebDisplayNameAttributeWebDescriptionAttribute页面上方的视频中有创建自定义属性的示范。在用户控件中,可以使用Web Part Connection机制来进行数据传递吗?可以。请参考页面上方的视频示范。在使用QuickPart时,似乎发现了一个bug,应该联系谁?请联系kaneboy@gmail.com。...[阅读全文]

posted @ | Feedback (59) |

摘要:开发部分大纲   第一章    Windows SharePoint Service对象模型介绍   第一节    WSS对象模型综述 总体介绍SharePoint的对象模型。SharePoint的对象模型是一套非常完善的对象模型体系,大致整个Web服务器(SPWebServer)、小到一个文件的版本信息(SPFileVersion),甚至一些网站的设置,都可以通过SharePoint的对象模型来进行访问。此外,SharePoint还提供了一些常规功能的类库来补充.NET类库的不足(SPUtilities命名空间)。 通过使用SharePoint的对象模型,可以完成几乎所有SharePoint所支持的功能,SDK中有很多开发的sample,可以进行参考。但是,SDK并不全面,很多有用的东西并没有出现在SDK中,尤其是一些WebControl,这也需要在开发中不断地积累经验,可以参考默认页面中的一些控件的使用,有时甚至需要对dll进行反编译,结合代码自动提示功能来寻找所需要的类(PageInfo)。 Portal很强大,但是通过对若干项目的开发,也不得不承认,在某些方面,SharePoint做得很“严格”(例如权限),所以在确定用户需求的时候,也尽可能考虑到实现上的难度。在SharePoint上,有一些事情是应该做的,有一些是不太容易做到的,也有一些事情是使用一般方法无法做到的。   第二节    网站相关的对象模型 本节主要介绍SPSite和SPWeb两个类。 首先,介绍SPSite和SPWeb这两个类的区别与联系,指出在SDK中这两者容易混淆的地方。 ·SPSite          创建一个SPSite对象(构造函数)          SPSite下的SPWeb(AllWebs属性和OpenWeb函数)          在一般的应用中,SPSite只是为了获得SPWeb的一个手段,并不很常用。 ·SPWeb 在大多数时候,直接使用的是SPWeb对象,一般也是通过SPWeb对象来获取其他各种对象模型。SPWeb下包含有丰富的对象模型,包括几大部分:列表、文件系统、用户权限系统。 SPWeb对象提供了很多属性,用来获取该网站的一些信息,例如Title、Template、Author、ID等等。 此外,SPWeb对象还提供了一些函数,用来直接访问其他的对象模型,例如GetViewFromUrl、GetFile、SearchDocument等。 此外,从本节开始通过sample code对类的成员函数及变量进行演示和说明。在前两章中,均使用Console程序的方式进行演示,为了一目了然地看到结果,同时避开Web页面上的一些复杂机制,以及复杂的权限限制。 [Tip]在编程中,使用try-catch是一个良好的习惯,如果可能的话,尽量对所有可能出错的语句进行try-catch,并且针对每一种不同的错误分别进行处理。SharePoint是一套相对庞大的对象模型体系,有时会遇到一些事先无法预料到的问题,因此,使用try-catch是避免程序意外崩溃的最好的办法。此外,在报错的时候,也尽量使用自定义的报错,使得程序更加友好、更加人性化。   第三节    列表相关的对象模型 本节介绍列表相关的对象模型,包括SPList(Collection)、SPView(Collection)、SPField(Collection)、SPListItem(Collection)。 ·SPList(Collection) 列表的获取、添加、删除。 ·SPView(Collection)          视图的含义和作用,从SchemaXml属性中获取信息。 ·SPField(Collection)          字段的获取、添加、删除;          字段的两个名称(Title和InternalName);          从SchemaXml属性获取信息(数据库初探);          默认列表的一些默认字段。 ·SPListItem(Collection)          列表条目的获取、添加、删除;          使用SPQuery获取列表条目。   第四节    文件相关的对象模型 本节介绍文件系统相关的对象模型,主要包括SPFolder和SPFile,另外,对文档库这一特殊的列表进行简要地介绍。 ·SPFolder          文件夹的获取(子文件夹)、添加、删除;          从其他对象获取文件夹(SPWeb、SPList) ·SPFile          文件的获取、添加、删除;          从SPWeb直接获取文件 ·文档库          一个特殊的文件夹,可以使用三种不同的对象模型来访问。   第五节    用户/权限相关的对象模型 本节介绍用户和权限相关的对象模型,主要包括SPRole、SPUser和SPPermission。 ·SPPermission SharePoint的权限划分是在API级别的,而不像传统的网站那样在页面级别,这是一把双刃剑——更安全,却也更死板,除非直接从低层的数据库入手,否则无法绕过这一权限系统。因此在执行相应的代码时,最好事先检查权限,或者进行try-catch,以避免不必要的错误。          WSS下的权限条目,SPRights枚举(PermissionMask);          简单判断当前用户是否拥有某种权限的方法。 ·SPRole          角色包含用户,给一个角色添加一个用户。          SPRoleType枚举,每个角色对应的权限 ·SPUser          用户的基本信息;          用户包含角色,给一个用户添加一个角色。   第二章    SharePoint Portal Server对象模型介绍   第一节    SPS对象模型综述 Portal与WSS的不同之处(需要在前文的综述中提及),两者的侧重点不同。区域(Area)的概念,Area与SPWeb在对象模型上的关系。实际上,在一个Portal的区域中,WSS的大部分对象模型都可以继续使用,但是有一些对象模型,尤其是涉及权限的对象模型,有了很大的变化,这和Portal的侧重点是有关系的。 Portal的对象模型体系更为庞大,因为它本身也更加复杂,但在一般场合的实际的应用中,我们所能接触到的内容并不多。 [Tip]Portal对象模型的一大特点:xxxxManager   第二节    门户/区域相关的对象模型 ·在Portal中获取一个区域,以及该区域对应的SPWeb对象的方法          在Console程序中,获取一个区域是相对很麻烦的事情;          通过区域可以获取一个SPWeb,也可以按照原来的方法获取它; ·Area          Area的一些属性和可自定义的特性;          Area清晰的层级结构。   第三节    门户列表相关的对象模型 门户列表是一个Portal所独有的对象,Portal的最大特点也正体现在门户列表中,本节主要介绍门户列表的获取、添加、删除,并介绍门户列表的可自定制性。因为门户列表结构的固定性(需要在前文的综述中提及),它可以自由地在不同区域之间转移,这一点在对象模型中非常清晰的体现出来(获取方式、修改所属区域的方便性)。 除AreaListing之外,有一些与之相关的对象模型,例如:访问群体(Audience)、组(AreaGroup)。   第四节    用户/权限相关的对象模型 用户/权限系统,是Portal与WSS另外一个最不同的地方。 在Portal下,用户直接与AD相关。使用UserProfile可以获取用户在AD中设置的属性,SPUser对象依然可以使用。 但是在权限方面,Portal上无法再使用WSS中的对象模型,尤其是SPRole。在Portal中,权限划分的粒度较粗(需要在前文的综述中提及)。使用AreaAccessChecker来检验当前用户的权限。Portal下的权限:PortalRight枚举。 初步涉及到ExternalSecurity的概念。   第三章    WebPart开发   第一节    WebPart综述 对WebPart介绍(需要在前文的综述中提及)的补充,WebPart在对象模型中是继承自WebControl的,在SharePoint中,依然可以使用传统的WebControl,对比传统的WebControl和WebPart,介绍在何种时候采用哪种控件比较方便。 简要地介绍一下WebPart及相关部件(WebPartZone)在对象模型中对应的类,以及几种默认的WebPart。   第二节    创建WebPart 手工创建一个最简单的WebPart:HelloWorld,只使用最必要的RenderWebPart函数。手工将其布置到服务器中。 然后在此WebPart中使用一个控件(例如文本框),介绍CreateChildControls函数。 最后,介绍VS.NET的WebPart模板,使用该模板创建WebPart会更加方便,但仍然需要手工进行部署。 [Tip]在WebPart的编程中,非常容易忽略的一点:在RenderWebPart函数中,是无法保存对类的成员变量的修改的。   第三节    WebPart中对象模型的变化 本节主要介绍在WebPart这一具体的使用环境中,对象模型发生了哪些变化。 首先,获取当前网站可以使用SPControl这个类,而不必麻烦地按照url来获取(当然,这种获取方式依然是起作用的); 在Portal中,获取PortalContext的方式也更加直接,但是,如果想直接获取当前的区域,有两种方法:标准的方法是,修改继承,使用Portal的BaseAreaWebPart作为父类,并使用它的成员变量来获取当前区域的GUID;或者使用一个在任何文档中都没有提到的类PageInfo来获取(建议使用,因为它可以在构造函数的时候就获取到当前区域,而前面的方式只能在Render的时候才正常获取到)。 在Render中修改列表内容的时候,需要将SPWeb的AllowUnsafeUpdate设置为true。 在WebPart中使用对象模型,需要根据级别在web.config中设置不同的TrustLevel。 [Tip]WebPart在FrontPage中可以被编辑,如果无法编辑,可能是由于在IIS中设置了地址或者主机头。介绍WebPart中负责设计时显示的一个接口。 [Tip]在本节的最后,会介绍一个非常有意义的控件FormDigest。该控件在WebPart编程中不会用到,所以经常被忽略,但是在编写aspx页面使用SharePoint对象模型的时候会遇到很大的问题。   第四节    WebPart自定义属性 首先,从WebPart模板创建的默认WebPart入手,介绍WebPart的自定义属性,并介绍如何编写其他类型(整型、bool型、枚举型)的自定义属性。在属性设置窗口中,为每中类型的属性都设置了默认的控件进行编辑修改。 [Tip]在设置属性的时候,尽量使用简单的类型。 [Tip]在属性的set方法中,可以对属性的值进行控制和修改,以免出现不必要的错误。也应该保证属性之间都是互相独立的,不要有相关性。 通过实例了解SaveProperty变量,了解在代码中设置属性值的方法和需要注意的事项。   第五节    WebPart连接 首先通过两个默认的WebPart让用户了解什么是WebPart连接。 通过一个最简单的实例,了解创建WebPart连接的过程,在VS.NET模板中,也支持创建WebPart连接的模板。由于篇幅关系,只介绍最简单的一组Provider和Consumer。 WebPart连接的优点:比较专业,一个页面中可以有多组连接,可以在FrongPage中进行编辑;缺点:编程相对复杂。因此,对于一些比较简单的应用场景,可以利用Url传递参数的方式来进行。 [Tip]在使用Url进行传递的时候,注意中文的编解码。   第六节    WebPart的自定义设置栏ToolPart 默认的自定义属性显示在属性设置面板中,但是功能有限,而且形式单一,也无法进行内部的关联(例如填入一个列表名称后,再选择它的几个视图/字段)。如果需要更复杂的功能,就需要使用自定义的ToolPart类来完善。 在ToolPart类中,编程的方式和WebPart的编程方式基本是相同的,注意多了三个重要的函数。此外,在保存属性的时候,因为SavePropery是WebPart的protected类型成员变量,外部的类无法直接访问,需要在WebPart的类中再添加一个public函数来完成。 通过一个简单的例子(调用高级编辑器设置一段多行带格式的文本,并保存为属性)来说明该栏的简单写法。 [Tip]虽然默认的属性可以设置分组,但是分组的顺序是无法修改的,然而ToolPart却可以自定义显示的顺序。   第七节    WebPart的自动部署 从第二节可以看到,手工的部署一个WebPart是比较麻烦的,而且很容易出错,本节介绍几种自动部署WebPart的方式。 利用MakeCab.exe制作cab压缩包,然后通过stsadm.exe来进行部署。Stsadm.exe是一个非常有用的命令行工具,可以完成很多基本的功能,在编写其他程序(尤其是在服务器本机运行的程序)的时候,可以调用该命令,执行一定的功能。 制作MSI安装包,这种方式较上者来说更为方便,也是很多WebPart发布的方式,它内部实际上是自动执行了上面那种方式的部署方案。介绍WPPackage.exe命令行工具的使用。 其他现有工具的使用(例如InstallAssembly,WPManager),提供友好的界面,可以直接对dll进行操作,不用编写比较复杂的dwp和manifest.xml文件。实际上,也是使用程序执行了cab安装的功能。 [Tip]如果需要布置到GAC中,则需要对WebPart的dll进行强命名,介绍强命名的方法和dwp文件中不同的写法。   第八节    WebPart的调试 在实际的程序编写过程中,可以体会到,WebPart的调试是非常麻烦的,虽然会利用try-catch的方法进行异常的捕获,但是有一些时候还是会引发意料不到的错误。除了在页面上输出调试信息这种办法之外,也可以对web.config进行修改,显示asp.net页面传统的报错方法,而不会重定向到SharePoint自己的报错页面。 此外,如果是在服务器本机进行调试,也可以在VS.NET开发环境中附加在w3wp进程中进行单步调试。这使得WebPart的调试和传统程序的调试方法一致化。 如果是在远程进行调试,同样可以通过一些配置进行单步的调试,但是配置方案相对比较复杂,在本书中就不再涉及了,有兴趣的读者可以参阅一些文章。   第四章    高级开发   第一节    更轻松的WebPart开发 在实际的应用中,WebPart开发中所遇到的最大问题就是它的界面样式不能进行可视化的设计。而通过SmartPart和另外一个WebPart,用户就可以直接在VS.NET中可视化地设计用户控件(UserControl),并在上述WebPart中引用该用户控件便可以了。 该方法的优点是比较灵活,可以进行可视化的设计,对于界面性、交互性较强的WebPart开发比较方便;它的缺点也是显而易见的,不能自定义属性。因此在实际的应用中,究竟选取哪种开发模式,是需要根据WebPart的需求来考虑的。   第二节    多语言的WebPart开发 多语言的程序已经成为当今程序的一个潮流和发展方向,如何让一个WebPart可以正常工作在多种语言的环境中,并且在界面上可以显示相应的语言?本节通过一个简单的实例来说明如何开发、部署一个多语言的WebPart。   第三节    WebService的使用 SharePoint平台提供了一套非常庞大的对象模型体系,但是在网络平台上,使用这种对象模型编程一般是必须要在WSS或者SPS上来进行的,但是这种平台又有着诸多不便。如何能在普通的网站或者应用程序中,尤其是在没有SharePoint环境的机器上运行这样的程序,取获取其他SharePoint网站的内容? SharePoint平台同样提供了一套比较完善的WebService,可以让其他程序从网络上调用该WebService来完成操作。 本节通过一个简单的实例介绍了WebService的基本用法, 并简要地介绍一下SharePoint中默认提供的WebService所在的url和它们的基本功能。   第四节    文档库的事件触发机制 文档库在SharePoint中是一个比较特殊的对象,它即是列表,又是文件系统,此外,为了便于文档的管理,SharePoint还为文档库提供了事件触发的机制。 本节通过一个实例,介绍如何捕获文档库的事件,以及获得事件的一些属性和针对该事件进行的操作。