源出处: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. HDU 4725 The Shortest Path in Nya Graph( 建图 + 最短路 )

    主要是建图,建好图之后跑一边dijkstra即可. 一共3N个点,1~N是原图中的点1~N,然后把每层x拆成两个点(N+x)[用于连指向x层的边]和(N+N+x)[用于连从x层指出的边]. 相邻层节点 ...

  2. 个人支付宝监控并自动获取交易记录对接系统API

    我们都知道,支付宝支付API接口只有企业才能使用,但有一部分业务,可能我们不方便使用企业收款,但又想做到自动化,那怎么办呢 于是一个支付宝交易记录自动监控软件诞生了. 支付宝都有一个收款二维码,收款提 ...

  3. hdu 1551 Cable master (二分法)

    Cable master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  4. [NC2018-9-9T1]中位数

    题目大意:给你一个长度为$n$的序列,要求出长度大于等于$len$的字段的中位数中最大的一个中位数 题解:可以二分答案,对于比它小的数赋成$-1$,大的赋成$1$.求前缀和,若有一段区间的和大于$0$ ...

  5. Tomcat学习笔记(八)

    Tomcat载入器(二) Tomcat拥有不同的自定义类加载器,以实现对各种资源库的控制. 1.同一个web服务器里,各个web项目之间各自使用的java类库要互相隔离.  2.同一个web服务器里, ...

  6. Linux下kill命令

    首先了解什么是信号:信号是进程级的中断请求,系统定义了30余种信号,kill是管理员用来发送信号的一种手段. 功能说明:删除执行中的程序或工作. 语 法:kill [-s <信息名称或编号> ...

  7. 转:ListView中getView的工作原理

    ListView中getView的工作原理: [1]ListView asks adapter “give me a view” (getView) for each item of the list ...

  8. js得到时间戳(10位数)

    //从1970年开始的毫秒数然后截取10位变成 从1970年开始的秒数 function timest() { var tmp = Date.parse( new Date() ).toString( ...

  9. js函数调用与声明 (for时注意)

    可以的: test();  // 直接function 方式声明的函数可以直接调用,后声明 function test(){} aa();   //error  var 方式声明的函数需先声明后调用v ...

  10. BAT脚本编写教程入门提高篇

    BAT脚本编写教程入门提高篇 批处理文件的参数 批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符“%”. %[1-9]表示参数,参数是指在运行批处理 ...