WSS3SDK之:服务器和站点架构:对象模型概览
源出处: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之:服务器和站点架构:对象模型概览的更多相关文章
- 5、web站点架构模式简介及Nginx
LB Cluster: 提升系统容量的方式: scale up:向上扩展 scale out:向外扩展 LVS工作在内核中,本身的数量不受套接字数量限制,利用LVS做调度器,优化得当的话,并发数量可以 ...
- 从腾讯QQgame高性能服务器集群架构看“分而治之”与“自治”等分布式架构设计原则
转载:http://space.itpub.net/17007506/viewspace-616852 腾讯QQGame游戏同时在线的玩家数量极其庞大,为了方便组织玩家组队游戏,腾讯设置了大量游戏室( ...
- 千万PV级别WEB站点架构设计
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1369762 高性能与多 ...
- .Net站点架构设计(八)測试
.Net站点架构时间(八)測试 一般而言.总体測试策略是:先针对部分系统进行性能及压力測试,得到各部分的峰值处理性能:再模拟总体流程測试,此时倒不用依照峰值跑,重点測试总体业务流程及业务预期负荷. 在 ...
- 初探Nginx服务器的整体架构
高度模块化的设计是 Nginx 的架构基础.Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严格遵循“高内聚,低耦合”的原则. 核心模块 核心模块是 Nginx ...
- 大并发server架构 && 大型站点架构演变
server的三条要求: 高性能:对于大量请求,及时高速的响应 高可用:7*24 不间断,出现问题自己主动转移.这叫fail over(故障转移) 伸缩性:使用跨机器的通信(TCP) 另外不论什么网络 ...
- 从100PV到1亿级PV站点架构演变
假设你对项目管理.系统架构有兴趣,请加微信订阅号"softjg".增加这个PM.架构师的大家庭 一个站点就像一个人,存在一个从小到大的过程. 养一个站点和养一个人一样.不同一时候期 ...
- window服务器开站点(不通用)
此文章为记录自己的配置流程,其他人不通用 网站服务器:Windows server 2008 R2 (IIS6.1) + Asp.net 数据库服务器:Windows server 2008 R2 + ...
- Apache web服务器(LAMP架构)
1.apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http ...
随机推荐
- Python学习-day19 django基础篇
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
- Python网络编程(socket模块、缓冲区、http协议)
网络的概念:主机 端口 IP 协议 服务器: localhost/127.0.0.1 客户端: 只是在本机启动客户端,用127.0.0.1访问 服务器: 0.0.0.0 客户端: ...
- (转\整)UE4游戏优化 多人大地型游戏的优化(三)GPU的优化
施主分享随缘,评论随心,@author:白袍小道 小道暗语: 1.因为小道这里博客目录没自己整,暂时就用随笔目录结构,所以二级目录那啥就忽略了.标题格式大致都是(原or转) 二级目录 (标题) 2.因 ...
- IPMITool driver
官网链接: https://docs.openstack.org/ironic/latest/admin/drivers/ipmitool.html IPMITool driver 概述IPMI(In ...
- hadoop2.5.2学习及实践笔记(三)—— HDFS概念及体系结构
注:文中涉及的文件路径或配置文件中属性名称是针对hadoop2.X系列,相对于之前版本,可能有改动. 附: HDFS用户指南官方介绍: http://hadoop.apache.org/docs/r2 ...
- 软考——(1)J2SE
我们先从Java说起,简单的说,Java是一种面向对象的程序设计语言,可跨平台使用. 与之前学习的程序设计语言相比,最值得一提的就是Java的两种核心机制:Java虚拟机和垃圾回收机制. 1)虚拟机 ...
- mysql常见面试题目
1, mysql的复制原理以及流程. (1)先问基本原理流程,3个线程以及之间的关联. (2)再问一致性,延时性,数据恢复. (3)再问各种工作遇到的复制bug的解决方法 2,mysql中myisam ...
- Axios & fetch api & Promise & POST
Axios & fetch api & Promise & POST https://github.com/axios/axios https://appdividend.co ...
- DataBase -- Count & Group by
SQL Count()函数: SQL COUNT(column_name)语法:COUNT(column_name)函数返回指定列的值得数目(NULL不计入) select count(column_ ...
- apache+mysql+php实现最大负载的方法
1. 生成静态html页面,squid反向代理,apache,MySQL的负载均衡. 2. 可以采取数据缓存的方法,我们通常在统计数据的时候,需要在原始数据的基础上经过计算等一系列操作,才会得到最终的 ...