源出处: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. 珍藏版 Python 开发工程师面试试题

    珍藏版 Python 开发工程师面试试题 说明:不拿到几家公司的offer,那就是卑鄙的浪费 一.Python_基础语法 1.可变与不可变类型: 2.浅拷贝与深拷贝的实现方式.区别:deepcopy如 ...

  2. sshd_config_for_centos

    # $OpenBSD: sshd_config,v // :: djm Exp $ # This is the sshd server system-wide configuration file. ...

  3. ImportError: dynamic module does not define module export function (PyInit__caffe)

    使用python3运行caffe,报了该错误. 参考网址:https://stackoverflow.com/questions/34295136/importerror-dynamic-module ...

  4. 爬虫:Scrapy13 - 发送 email

    虽然 Python 通过 smtplib 库使得发送 email 变得非常简单,Scrapy 仍然提供了自己的实现.该功能十分易用,同时由于采用了 Twisted 非阻塞式(non-blocking) ...

  5. Servlet 中 RequestDispacher 请求与分发

    RequestDispacher 请求与分发使用HttpServletRequest的getRequestDispatcher()方法取得 Login.java页面 package control; ...

  6. vue cli & npm err & shit cnpm

    vue cli & npm err & shit cnpm npm err & shit cnpm https://github.com/vuejs/vue-cli/issue ...

  7. 【bzoj1875】[SDOI2009]HH去散步 矩阵乘法

    题目描述 一张N个点M条边的无向图,从A走到B,要求:每一次不能立刻沿着上一次的边的反方向返回.求方案数. 输入 第一行:五个整数N,M,t,A,B. N表示学校里的路口的个数 M表示学校里的路的条数 ...

  8. C#中不用安装Oracle客户端连接Oracle数据库(转)

    原文地址:http://www.cnblogs.com/jiangguang/archive/2013/02/19/2916882.html 0.首先,从Oracle网站上下载对应版本的Oracle ...

  9. Ddos攻击防护

    Ddos攻击防护 首先我们说说ddos攻击方式,记住一句话,这是一个世界级的难题并没有解决办法只能缓解 DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要 ...

  10. [洛谷P4925][1007]Scarlet的字符串不可能这么可爱

    题目大意:问字符集大小为$k$,长度为$L$的字符串,且没有长度超过$1$的回文段的个数.规定第$s(若为0则无限制)$位为$w$. 题解:懒得写了,根据是否有限制分类讨论 卡点:中途有个地方忘记取模 ...