[翻译]No.9352 SharePoint Pages(1)之SharePoint页面体系架构
[开篇]最近一段时间在研究SharePoint技术,在内网建设了一个门户的原型,做一些尝试。由于一些需求要新建一些功能页。开始使用SharePoint制作页面,搞了半天才明白原来内容页不支持内联代码,在Visual Studio里面捣鼓了半夜,也是不得要领,遂决定要翻书学习。《SharePoint 2010 Development for Visual Studio 2010》是一本很不错的书,怎奈我是英文太烂,努力阅读,逐字查看,想想也是累的慌,尤其大概得其意,不如直接转化,以飨网友,同时也是一个交流,如果有什么翻的有歧义的地方,请指正,谢谢。水平有限,自认比翻译软件稍强点儿,各位将就,多多指点。
由于,当前只是关注SharePoint Pages部分,所以只是翻译了这一章,因为开发任务也比较繁多,其他章节以后放出,整个章节原书大概有42页左右,所以会分成几个部分放出,大多是原文逐句翻译,见谅。
SharePoint Pages 简介
SharePoint是在ASP.NET的基础上构建而成的,因此SharePoint用户界面完全就是ASP.NET页面。如果有ASP.NET开发经验的人员可以很方便的定制和开发SharePoint界面,虽然SharePoint也提供了强大的用户界面框架,但是也不会超出ASP.NET的功能规则。例如:假如用户不喜欢默认的导航结构的WebPart页,可以定制不同的模板;或者用户希望将现有的ASP.NET应用集成到SharePoint网站中。这些应用场景都是需要在ASP.NET中进行开发的,本章我们将会讨论关于在ASP.NET中定制和开发SharePoint页面。
SharePoint 架构
在学习如果和自定义和创建SharePoint页面之前我们先来看看SharePoint体系结构。当目前为止我们已经学会了在SharePoint的Web应用程序中使用网站集功能,但是什么事Web应用程序呢?在SharePoint中每个Web应用程序都有一个自己独立的IIS应用程序池。应用程序池是由IIS启动的工作进程,运行时,返回SharePoint页面,处理收到的IIS请求。
在安装过程中,SharePoint创建两个IIS Web应用程序。一个是默认网站集,另一个是SharePoint管理中心网站。由于两个Web应用程序不能通过共享同一端口访问,SharePoint管理中心网站通常是通过网站http://yourserverurl:portnumber访问,另一个Web应用程序的默认站点则是通过默认端口访问的,网址为http://yourserverurl。SharePoint Central Administration的web 站点端口去取决于机器的可用端口,如果想创建其他的网站集,则需要告诉SharePoint宿主Web应用程序,或者你需要创建一个新的Web应用程序来承载新的网站集。
现在你可能像知道为什么需要创建多个Web应用程序,而不是仅仅在一个Web应用程序中创建所有站点的集合,创建一个新的Web应用程序的关键原因是站点的内容是独立的。每创建一个新的Web应用程序SharePoint就会创建一个新的内容数据库,所有的数据在相关网站与Web应用程序的所有数据都存储在这个内容数据库。如果网站集内容增长过快,或由于内容数据库的存储有限制,管理员可以将网站集存储到另外一个新的内容数据库中,而同时继续使用相同的Web应用程序。这就是所谓的分割内容数据库。
创建一个新的Web应用程序第二个重要原因就是安全性。所有与Web有关的网站集执行都在应用程序池中发生的,如果你想确保一些代码决不允许从同一进程中的其他网站集上运行,则可以使用不同的Web应用程序创建第二个网站集,这将确保不同的应用程序池执行而两个网站集。
网站集,顾名思义,是一个SharePoint网站和网页的集合。对于每一个网站集,你可以让不同的人进行管理,权限可以针对单独的用户或组进行设置,让他们单独管理备份网站集,管理工作流程,网站模版,列表模版,内容类型或网站列表。想想一个公司需要在SharePoint上构建一个工程部门网站和营销部门网站,它们不仅每个部门内容有所不同,工程网站的用户和营销网站的用户使用也会有不同。对于这种情况,您将创建一个分别创建一个工程网站和市场营销网站。通过不同的权限设置可以限制或禁止营销人员访问工程部门的工程网站。
网站集SPSite对象代表服务器端对象模型或在网站的客户端对象模型。就像前面所说一个网站集包含多个网站和网页。
因此,网站集和网站之间的区别是什么?网站集和网站从最终用户角度来看,似乎是相似的,因为网站集始终有一个关联的默认站点。创建子网站从父网站继承权限和导航结构。有时候,可能不知道什么时候应该创建新的子网站,什么时候创建一个新的网站集。如果您想了解更多这方面的主题,你可以通过以下链接阅读MSDN上的文章:
http://technet.microsoft.com/en-us/library/cc742548.aspx
SPWeb对象代表一个SharePoint网站在服务器端的对象模型,以及客户端对象模型的Web对象。如果图10-1所示,一个Web应用程序有两个网站集对象的网站架构。这两个网站集都创建了一个默认网站。当然在你创建多个子站点时只有一个默认网站。
SharePoint体系中最后一个对象是网站或网站集的页面。在SharePoint开发环境中有三种页面类型:母版页、网站页面和应用程序页。
母版页为SharePoint页面提供视觉和感观的定义,例如母版页定义的ribbon工具栏,Ajax脚本对象管理器和站点导航。每页都会使用到的相同的页面布局。 使用母版页的页面就是所谓的内容页。每个内容页的外观都是由母版页提供的。开发人员可以通过扩展母版页的可替换的占位符添加不同的内容。图10-2所示,母版页与内容页之间的关系。在左边的母版页v4.master为Home.aspx和MyWebPartpage.aspx提供了共有的常见功能。
SharePoint是构建于ASP.NET之上的,因此母版页也是继承自ASP.NET母版页,SharePoint使用的母版页扩展名也是.master。
第二种页面类型是网站页。是通过SharePoint的操作界面或设计工具,比如SharePoint Designer定制网页。最重要的,要了解所有的自定义网站页都是存储与SharePoint的内容数据库中的,所有网站页都是由SharePoint Designer创建和定制的。为什么这么重要呢?想想如果一个SharePoint场景中有数千个页面,如果每个页面都经过定制,然后所有网页都从内容数据库中检索并加载到内存中。这会对性能和负载产生一定的影响。尽管如此,网站页定制为用户和管理员提供了极大的帮助,一个很好的例子就是网站的顶级页面home.aspx。
最后,是应用程序页。和网站页一样,你可以在应用程序页上使用SharePoint用户界面和功能以及内容。应用程序页和网站页之间最大的区别在于应用程序页面可以自定义并部署到Web服务器的文件系统(而不是内容数据库)。所有的应用程序页都存储在SharePoint配置存储的位置{SharePoint}\TEMPLATE\LAYOUTS。从网站访问场中任何站点的应用程序页都在其中。如图10-3所示Settings.aspx,这是每个站点授权用户或网站集管理员都可以从SharePoint网站上访问到的修改SharePoint配置的页面。
有了对这些SharePoint体系架构的了解,在下一节中我们开始创建和定制SharePoint页面。