版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开发并部署基于SharePointPortalServer2003的Web部件陈维一顾问顾问咨询部MicrosoftCorporation议程SharePointPortalServerWeb部件基本架构开发环境部署Web部件调试Web部件分发和管理Web部件开发Web部件的最佳实践Web部件的未来(Whidbey)MicrosoftOfficeSystem=Programs+Servers+Solutions+ServicesSharePoint的架构企业门户方案builtontopofWindowsSharePointServices集成中心forSharePointpersonal,teamandportalsitesSharePointPortalServer新闻和链接站点目录和连接个人站点听众定向索引,搜索和提醒单点登录BizTalk集成团队协作方案wellbeyondfileserverScalable工作区平台SharePointServices文档存储和协作灵活的列表WebPart页面页面个性化站点生命周期管理Scale-Up/OutSharePoint2003
整合所有的信息、协同所有的资源个人企业区域/部门团队3rd-PartyApps3rd-PartyApps3rd-PartyApps智能客户端第三方Web部件自定义Web部件ApplicationConnectors智能商务流程什么是Webpart用户角度WebParts是SharePoint页面中的功能模块内容管理者角度WebParts是用来进行信息发布的容器开发者角度WebParts是增强的ASP.NET服务器端控件,用来实现标准的SharePoint接口Web部件为所有的人带来好处用户和设计者使用预先开发好的组件组装强大的站点开发人员使用Microsoft.NET技术ASP.NETservercontrol技术通过Webservices,ADO.NET等熟悉的技术与数据交互.通过装配件XML配置文件进行部署花更少的时间用于杂事上开发的新功能用户可以直接应用到已有的站点上IT减少管理费用的同时为用户带来更大的价值降低琐碎事务的开发费用SharePoint中ASP.NET页面的RenderingApplicationpages(_layouts目录)运行于Directmode使用SharePointmanagedcodeobjectmodel,也访问部分unmanagedcode由IIS直接处理Userpages(定制的页面)运行于”Safemode”,不编译为dllWebpartframework
动态控制Webpart的加载IISASP.NETHandlerFilterConfigStaticPagesFrontPageRPCDAV.aspx.asmxHTTPRequestsASP.NETContentSharePointUnmanagedCodeDirectSafeISAPIExtADO.NETProfileServiceWebPartsFrameworkASP.NETPageZone2Zone1Zone3WebPartFrameworkContentDBASP.NETPageWebFormControlsWeb部件是一种WebCustomControls继承于Microsoft.SharePoint.WebPartPages.WebPartWeb部件页:SmartPage–
页面上的control是动态生成的URLofthepageIDofthecurrentuser(personalization)Web部件页只能运行于safemodeWebPartZonesWebPartZones内嵌于ASP.NET页面中WebPartZone里的WebPart存储于WebParts表里个性化设置存储于Personalizations
表里<WebPartPages:WebPartZonerunat="server"Title=“LeftZoneID=“…"Orientation="Vertical“AllowCustomization=“true”AllowPersonalization=“true”/>开发环境单台机器安装WindowsServer2003
两台或以上机器在WindowsXP上开发部署到WindowsServer2003本地VirtualPC或者VMWare虚机远程开发服务器服务器需求增加Web服务器角色启动ASP.NET不要启动FrontPageServer扩展可选:安装SQLServer2000或在其它服务器上有可访问的SQLServer2000安装WindowsSharePointServices缺省情况下,会安装微软数据库桌面引擎(WMSDE)同时,可以让WindowsSharePointServices使用已经存在的SQLServer实例开发客户端需求VisualStudio.NET2002或者2003忽略关于FrontPageServerExtensions的警告用于VisualStudio.NET的Web部件工程模板
从服务器复制对象模型DLL文件C:\ProgramFiles\CommonFiles\MicrosoftShared
\webserverextensions\60\ISAPIMicrosoft.SharePoint.DLLMicrosoft.SharePoint.Portal.DLLMicrosoft.SharePoint.Portal.SingleSignon.DLLMicrosoft.SharePoint.Portal.SingleSignon.Security.DLL部署Web部件手工CAB文件MSI文件部署Web部件:
方法1:手工拷贝assemblyDLL到两个位置之一特定IIS虚拟服务器的/bin目录下(如c:\inetpub\wwwroot\bin)GlobalAssemblyCache(如c:\windows\assembly)拷贝DWP文件到C:\Inetpub\wwwroot\wpcatalog拷贝资源文件到使用GAC放置Web部件时,
C:\ProgramFiles\CommonFiles\MicrosoftShared\webserverextensions\wpresources使用/bin放置Web部件时,
C:\Inetpub\wwwroot\wpresources部署Web部件:
方法1:手工(续)修改配置文件web.config注册为SafeControl选择CAS(CodeAccessSecurity)设置部署Web部件:
方法2:CAB文件CAB文件应该包含AssemblyDLLDWP文件Manifest.XML资源文件生成CAB文件利用VS.NET生成利用Makecab.EXE生成从CAB文件安装Web部件Stsadm.exe部署Web部件:
方法3:MSI文件所有CAB文件部署方法的特性,并且支持CAS(CodeAccessSecurity)能够通过控制面板卸载通过以下地址获取WPPackager.EXEAddadditionalinstructionstoprojectforusebytheWPPackagerRunWPPackagerafterprojectisbuilt调试Web部件方法直接Attach到W3WP.EXE进程实例上“自动”指示特定的Web部件页做为工程的startpage你实际调试的是这个页面,而不是Web部件的装配件为每个开发者配置一个服务器是比较理想的使用共享Web服务器时,不会因为调试而中断服务器的运行如果使用多个虚拟服务器,如何判定哪一个虚拟服务器是属于某个特定开发者是比较困难的Web.config中有一些有用的设置调试WebParts(续)部署Web部件到GAC中会使调试增加一些困难必须能够访问PDB文件可选方案:调试时部署到bin目录使用手工安装方案使用CAB方案时在使用stsadm……-globalinstall后用gacutil–i方式安装分发Web部件CAB文件使用STSADM,两步操作Stsadm–oaddwppack–filenamefilenameStsadm–oaddwppack–namefilenameMSI文件在每一台Web服务器上进行安装站点定义/模板可以包括定制的Web部件页需要在生成新站点之前将模板复制到每一台Web前端服务器管理Web部件跟踪使用情况排除错误的Web部件更新已存在的Web部件Web.config设置Web部件页URL参数SharePointConfigurationAnalyzer可以从站点上下载报告Web部件的使用情况Web部件页对象模型WindowsSharepointServices’
服务器端managedAPI扩展SPFileLengthByUserGetWebPartCollection()DeleteAllPersonalizations()SPWebGetWebPartCollection()SPFileCollection增加的WindowsSharepointServices对象SPUserStorageSPUserStorageCollectionWeb部件页对象模型(续)SPWebsite=SPControl.GetContextWeb(Context);SPWebPartCollectionwebPartCollection=site.GetWebPartCollection(
"default.aspx",Storage.Shared);Web部件页对象模型(续)SPWebPartCollectionStorageAdd()Delete()DeletePersonalizations()DeleteAllPersonalizations()SaveChanges()CacheInvalidate()Web部件使用率报告演示Web.Config设置允许调试<SharePoint><SafeModeCallStack=“true"/><system.web><customErrorsmode="Off"/>修改站点的信任级别<system.web><trustlevel="WSS_Minimal"originUrl=""/>Also“WSS_Medium”or“Full”Web.Config设置(续)在<SharePoint>下关于Web部件的其它设置<SafeModeMaxControls="50"CallStack="false"/><WebPartLimitsMaxZoneParts="50"PropertySize="1048576"/><WebPartCacheStorage="CacheObject"/>also“Database”or“None”<WebPartWorkItemTimeout="7000"/><WebPartControlsDatasheetControlGuid="65BCBEE4-7728-41a0-97BE-14E1CAE36AAE"/>可以将Office2003的缺省数据表视图控件替换为你自己的控件<OnlineLibraryUrl=""/>在SharePoint管理中心中也可以进行设置Web部件页URL参数非常有用的参数:Contents=1
对Web页中所有Web部件进行维护的视图PageView=SharedPageView=Personal其它一些参数可以进入工具面板以便进行添加Web部件等操作开发Web部件的最佳实践在MSDN网站上可以下载
会不断补充和完善处理所有的异常privatevoidSetSaveProperties(){
if(this.Permission!=Microsoft.SharePoint.WebPartPages.Permissions.None)
{
try
{
SaveProperties=true;
}
Catch(Exceptionex)
{
//SettingSavePropertiescanthrowmanyexceptions.Twoexamplesare:
//1)SecurityExceptioniftheuserdoesn'thavethe"ObjectModel"
//SharePointPermissionorthe"UnsafeSaveOnGet“SharePointPermission
//2)WebPartPageUserExceptioniftheuserdoesn'thavesufficient
//rightstosaveproperties(forexample,theuserisaReader)
errorText=ex.Message;
}
}}在显示和修改用户界面时检查用户权限用户有时不能按照你的设计来使用Web部件用户只是读者Web部件没有放在Zone中用户是匿名的在保存属性之前检验属性的合法性属性可以在很多的地方进行修改在DWP文件中在工具面板中在兼容的编辑器如MicrosoftOfficeFrontPage2003中使用WebPartPagesWebservice进行编辑返回给用户友好的错误信息截获错误异常If(exisWebPartPageUserException){
errorText=ex.Message}注册客户端的脚本文件将脚本放置在独立的脚本文件如:separate.js中打包到资源文件中在Web部件代码中,使用page的RegisterClientScriptBlock方法来注册脚本指定Web部件中的哪些属性可以导出用户可以在导出的DWP文件中看到Web部件的所有配置信息,除非你注明不许为敏感属性设置ControlledExport标志如:[WebPartStorage(Storage.Personal,ControlledExport=true)]Web部件实例的所有者可以设置或清除
“允许导出敏感属性”在工具面板的“高级”分类中实现IDesignTimeHtmlProvider接口如果不的话,在FrontPage中会报告“该部件没有预览视图”在Class声明中增加IDesignTimeHtmlProvider实现publicstringGetDesignTimeHtml()与RenderWebPart基本相同,但没有HtmlTextWriter参数让用户易于使用属性FriendlyNameAttributeDescriptionCategory应避免缺省值“杂项”Example:[Category(“CustomerInfo"),DefaultValue(defaultCustId),WebPartStorage(Storage.Personal),FriendlyNameAttribute(“CustomerID"),Description(“TheIDofthecustomeryou’dliketosee"),Browsable(true),XmlElement(ElementName="MyString")]关于工具面板的更多建议使用CustomPropertyToolpart或WebPartToolpart的Expand方法来展开指定的分类使用Hide方法隐藏指定的分类将分类在面板中进行排序通常,你会希望你定制的属性放在最前面对所有输出使用HTMLEncode特别是用户输入的内容避免恶意的脚本攻击例如:protectedoverridevoidRenderWebPart(HtmlTextWriteroutput){
output.Write("<fontcolor='"
+this.Color+"'>“
+"Yourcustomtextis:<b>"
+SPEncode.HTMLEncode(this.Text)
+"</b></font><hr>");}保存属性时检查Web部件区域的属性WebPartZone属性AllowCustomization对于共享视图AllowPersonalization对于个人视图LockLayout为真时,不能修改AllowRemove,AllowZoneChange,Height,IsIncluded,IsVisible,PartOrder,Width,ZoneID在代码中获取WebPartZone:
WebPartZonemyParent=(this.Page.FindControl(this.ZoneID));
为定制的属性使用简单类型保证在从XML中获取或当导出到XML时不出现任何问题使出现在工具面板中的属性互不依赖无法但保属性在工具面板中的出现顺序如果有两个属性都可以被设置,并且一个依赖于另外一个,当用户点击“应用”时可以能出现不希望的结果让Web部件更容易被搜索在搜索Web部件时,使用标题和模述字段可以还可以为你的Web部件提供图标PartImageLarge提供预览管理员在顶级站点通过网站设置
网站管理
管理Web部件库再点击某Web部件,应该可以看到预览效果在RenderWebPart中可以增加以下代码进行判断if(this.Parent.GetType().Fullname="Microsoft.SharePoint.WebPartPages.WebPartPreview")可以显示一个图片提高Web部件的性能Web部件页在完成所有Web部件渲染后才会返回给客户所有的Web部件串行调用当有Web部件需要用很长时间来访问数据时会对用户造成影响通过RegisterWorkItemCallback来异步处理数据页面还是必须在发送前完全构造完毕,但Web部件可以并行处理数据管理员在web.config可以设置超时时间如果要支持Web部件连接的话,需要多做一些工作缓存管理员在Web.Config中设置None(不做缓存)Database(对象必须可以序列化,对于服务器场比较适合)CacheObject(缺省设置,适用于单台服务器)缓存内容包括SharedPersonalWebPart基类中提供了一些方法PartCacheRead()PartCacheWrite()PartCacheInvalidate()本地化为用户显示的字符串FriendlyName,Category,Description属性在工程中增加Assembly资源文件为每一个属性增加ResourceAttribute来指定上面列的3个属性,如:
[ResourceAttribute(“1”,”2”,”3”)]重写WebPart类中的LoadResource方法
确保在允许匿名的站点上的运行方式决定在站点允许匿名时是否需要做或者不做某些操作使用SPWeb类的AllowAnonymousAccess方法来检测站点是否允许匿名安全性CAS(CodeAccessSecurity)是必须的这是在一个共享的部署环境中如何确保安全GACvs./binGAC中的组件会具有Full的权限GAC会为库DLL提供高性能小心RevertToSelf可以使用CAS进行控制应该让管理员知道你在做只有必须要用的时候才用通往“Whid
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026基层血液透析室(中心)建设与服务指南学习解读课件
- 怀化市2026年高三第六次模拟考试语文试卷含解析
- 【浙江省杭州市思想政治高二下学期期末巩固要点解析】
- 四川省遂宁市射洪中学2025-2026学年高二下学期期中考试生物试卷
- 【新教材】冀美版(2024)一年级下册美术第3单元 第1课 乌云飘雨点落 教学设计
- 【2026】年农作物种植技能基础知识考试题与答案
- 2026年广东深圳宝安区中考二模语文试卷试题(精校打印)
- 26年机构禁忌讲解课件
- 应急预案评估要点
- 主题教育本质思考
- 2026年重大事故隐患判定标准宣贯培训材料
- 螺栓、双头螺栓长度计算工具
- 通风管道安装工程、通风空调工程施工方案
- LY/T 2489-2015木材交付通用技术条件
- GB/T 34478-2017钢板栓接面抗滑移系数的测定
- 康复医学与理疗学硕士研究生培养方案
- 初中物理实验操作考试评分细则
- 高中英语新教材选修二Unit3Times-change-A-new-chapter课件
- 2022年天津市初中地理会考试卷及答案
- 肉毒素注射教学课件
- 天津市园林建设工程监理用表和质量验收用表(绿表)
评论
0/150
提交评论