源出处:http://www.cnblogs.com/Sunmoonfire/archive/2011/01/18/1937884.html

Windows SharePoint Services提供了一整套高度结构化的服务器端对象模型,使得我们可以方便的访问SharePoint站点中的各种对象。在您的代码中,通过一层层的对象结构可以从上向下获取,直到找到您需要的对象和成员。

何处入手

这依赖于您创建的自定义应用程序或解决方案的类型,您可能会通过不同的入口来获取合适的对象。比如,如果您正在开发一个自定义管理和配置工具,那么您可以使用静态属性ContentService来返回当前的Web服务对象和Web应用程序的集合。如果要在管理Web应用程序中修改设置,那么你要用AdministrationService属性。该集合的类继承自Microsoft.SharePoint.Administration.SPPeristedObjectCollection类,该类包含一个GetValue方法用于从集合中返回一个特定的对象。

注意:如果您创建一个Web部件,或自定义Web服务,或Web应用程序用于网站集,特定站点或列表,您可以使用Microsoft.SharePoint.SPContext类中的方法来获取当前网站集,站点或列表。当我们在/_layouts虚拟目录中创建了一个Web应用程序时,其功能将在Web服务器的所有站点中可用。在HTTP上下文环境以外,需要使用SPSite类的构造器来获取一个特定的网站集,进而访问集合中的各种对象。

服务器端架构

下图展示了Windows SharePoint Services服务器端架构中集合间的关系以及Microsoft.SharePoint.Administration命名空间中的一些对象。


SPFarm
对象位于WSS对象模型层次的最高层。其Servers属性可以获取一个SharePoint部署中所有服务器的集合;其Services属性可以获取所有的服务的集合。

每个SPServer对象代表一个物理上的服务器计算机。其ServiceInstances属性提供了对运行于特定服务器上的特定的服务实例的集合的访问。

每个SPService对象代表了一个装在服务器场中的逻辑上的服务或应用程序。服务对象提供对服务器场范围负载均衡服务设置的访问,在这里只表现为一个现有的服务实例。继承自SPService类所包含的类型,比如,Windows services的对象,如计时器服务(timer service),搜索,Microsoft SQL Server,数据库服务等等。还有就是Web服务对象,如Windows SharePoint Services或Microsoft Office system中的一些服务。

一个SPWebService对象提供了对某个特定的逻辑服务或应用程序配置信息的访问。其WebApplications属性可以返回一个运行某服务的应用程序的集合。

一个SPDatabaseServiceInstance对象代表一个运行与服务器机器上的数据库服务的一个单独的实例。SPDatabaseServiceInstance类继承自SPServiceInstance类,因此继承了Service属性。该属性提供了对服务或应用程序实例的访问。Databases属性可以获取一个服务所使用的内容数据库的集合。

每个SPWebApplication对象代表一个基于Internet Information Services (IIS)的负载均衡的Web应用程序。SPWebApplication对象提供对凭据和其他服务器场级应用程序设置的访问。Sites属性可以获取在Web应用程序中所有的网站集的集合;ContentDatabases属性返回Web应用程序中内容数据库的集合。SPWebApplication类替代了已废弃的SPVirtualServer类;但是我们还是可以把SPWebApplication对象想象成一个虚拟服务器,两者等效;也就是说,一系列的一台或多台物理上的服务器在这里作为一个单独的服务器展现个用户。

SPContentDatabase对象继承自SPDatabase类。代表一个包含用户数据的SharePoint Web应用程序的数据库。Sites属性可以获取一个该内容数据库存储数据的网站集的集合;WebApplication属性可以获取父级Web应用程序。

SPSiteCollection对象代表Web应用程序中网站集的集合。Item属性或索引器可以获取集合中一个特定的站点集,使用Add方法可以在集合中创建一个网站集。

站点架构

下图展示了Windows SharePoint Services站点的架构以及N.Microsoft.SharePoint命名空间中对象和集合间的关系。


每个SPSite对象,不仅是一个标志性名称,还代表了一系列逻辑上相关的SPWeb对象。这一整个系列通常被称为“网站集”,但是SPSite 并不是一个标准的Microsoft .NET集合类,这一点与SPWebCollection对象不同。然而,它具有成员可以用于管理网站集。AllWebs属性提供对SPWebCollection对象的访问,其代表了网站集内所有网站的集合,包括顶级站点。SPSite类的Microsoft.SharePoint.SPSite.OpenWeb方法可以返回一个特定的网站。

每个网站集包括若干个SPWeb对象,每个对象都具有很多用于管理该站点成员,包括该站点的模板和主题,以及站点中的文件和文件夹等等。Webs属性会返回一个SPWebCollection对象,用于代表该站点下所有的子站点;Lists属性返回一个SPListCollecion对象,用于代表该站点中所有的列表。

每个SPList对象具有许多成员,用于管理列表和访问其中的列表项。GetItems方法可用于执行一个特定的查询,并返回某些特定的列表项。Fields属性返回一个SPFieldCollection对象,用于代表列表中所有的字段,或者叫栏;Items属性返回一个SPListItemCollection对象,代表了列表中所有的列表项,或者叫做行。

每个SPField对象包含的成员用于操作字段相关的设置。

每个SPListItem对象代表了列表中的一行。

WSS3SDK之:服务器和站点架构:对象模型概览的更多相关文章

  1. 5、web站点架构模式简介及Nginx

    LB Cluster: 提升系统容量的方式: scale up:向上扩展 scale out:向外扩展 LVS工作在内核中,本身的数量不受套接字数量限制,利用LVS做调度器,优化得当的话,并发数量可以 ...

  2. 从腾讯QQgame高性能服务器集群架构看“分而治之”与“自治”等分布式架构设计原则

    转载:http://space.itpub.net/17007506/viewspace-616852 腾讯QQGame游戏同时在线的玩家数量极其庞大,为了方便组织玩家组队游戏,腾讯设置了大量游戏室( ...

  3. 千万PV级别WEB站点架构设计

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1369762 高性能与多 ...

  4. .Net站点架构设计(八)測试

    .Net站点架构时间(八)測试 一般而言.总体測试策略是:先针对部分系统进行性能及压力測试,得到各部分的峰值处理性能:再模拟总体流程測试,此时倒不用依照峰值跑,重点測试总体业务流程及业务预期负荷. 在 ...

  5. 初探Nginx服务器的整体架构

    高度模块化的设计是 Nginx 的架构基础.Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内聚,低耦合”的原则. 核心模块 核心模块是 Nginx ...

  6. 大并发server架构 && 大型站点架构演变

    server的三条要求: 高性能:对于大量请求,及时高速的响应 高可用:7*24 不间断,出现问题自己主动转移.这叫fail over(故障转移) 伸缩性:使用跨机器的通信(TCP) 另外不论什么网络 ...

  7. 从100PV到1亿级PV站点架构演变

    假设你对项目管理.系统架构有兴趣,请加微信订阅号"softjg".增加这个PM.架构师的大家庭 一个站点就像一个人,存在一个从小到大的过程. 养一个站点和养一个人一样.不同一时候期 ...

  8. window服务器开站点(不通用)

    此文章为记录自己的配置流程,其他人不通用 网站服务器:Windows server 2008 R2 (IIS6.1) + Asp.net 数据库服务器:Windows server 2008 R2 + ...

  9. Apache web服务器(LAMP架构)

    1.apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http ...

随机推荐

  1. mongodb安装和配置三步走

    最近在重新学习node,所以和同事一起搞了个模仿新浪微博的项目,项目刚开始,所以其他的东西就暂时先不提.这里介绍下mongodb的安装.直接搜索可以看到很多介绍,但是我第一次是失败了,不过看了好几个还 ...

  2. os--留

    os.path.abspath(path) #返回绝对路径    绝对路径和文件路径的区别,绝对路径是当前在操作文本的路径,文件路径是当前文本的文件的路径 os.path.basename(path) ...

  3. 【转载】Unity3d UnityEditor编辑器定制和开发插件

    在阅读本教程之前,你需要对Unity的操作流程有一些基础的认识,并且最好了解内置的GUI系统如何使用. 如何让编辑器运行你的代码 Unity3D可以通过事件触发来执行你的编辑器代码,但是我们需要一些编 ...

  4. 孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类尝试第一天

     孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类,尝试第一天 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 按上一天的规划,这是根据过去我自学其它编程语 ...

  5. 【多线程学习(1)】创建java多线程

    1)java多线程的创建方式有三种: 1.继承Thread类 2.实现Runnable接口 3.实现Callable接口 第一种: //继承Thread类 class ExtendsThread ex ...

  6. table纵横都需要下拉框

    table 溢出,下拉框显示不全 <div class="table-scrollable"style="height: 500px; overflow-y: vi ...

  7. HTTPS和HTTP的区别:

    https协议需要到ca申请证书,一般免费证书很少,需要交费.http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议http和https使用的是完全不同的连接方式用的 ...

  8. 安装bcc

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D4284CDD echo "deb https://repo.i ...

  9. hihoCoder #1902 字符替换

    解法 这题比赛时过的人很多,我却没思路,糊里糊涂写了个强联通分量,得了 80 分. 这题思路是这样的. 一个替换操作可以看做一个有向边,所以题目实际上给出了一个有向图 $G$,一个节点代表一个字母. ...

  10. BZOJ2594 [Wc2006]水管局长数据加强版 【LCT维护最小生成树】

    题目 SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一条从A至B的水管的 ...