MOSS对象模型详细概述

   1.   大家知道Windows SharePoint Services 提供了一个高度结构化的服务器端对象模型,借助该模型,即可轻松访问表示 SharePoint 网站各个方面的对象。您可以从级别较高的对象开始,逐步深入对象层次结构,以获取包含要在代码中使用的成员的对象。接下来我将从服务器体系结构网站体系结构模型应用进行详解:

入口点

 2. 根据要创建的自定义应用程序类型或解决方案类型,您可以使用不同的入口点进入对象模型,以获取要从其开始操作的合适对象。例如,如果要自定义部署的管理和配置,则可以使用静态 ContentService 属性返回当前的 Web 服务对象及其 Web 应用程序集合。若要修改管理 Web 应用程序中的设置,请使用 AdministrationService 属性。从 Microsoft.SharePoint.Administration.SPPeristedObjectCollection 类派生的集合类继承了 GetValue 方法,您可以使用此方法从集合中返回特定对象。

注意:

如果您要创建与网站集、单个网站或列表一同使用的 Web 部件、自定义 Web 服务或 Web 应用程序,可使用 Microsoft.SharePoint.SPContext 类的成员获取当前的网站集、网站或列表。在 /_layouts 虚拟目录中创建 Web 应用程序后,此应用程序的功能可用于 Web 服务器上的所有网站。在 HTTP 上下文之外(例如,在控制台应用程序或 Windows 应用程序中),请使用 SPSite 类的构造函数来获取特定网站集并访问网站集中的各个对象。有关详细信息,请参阅获取对网站、Web 应用程序和其他关键对象的引用

服务器体系结构

下图显示与 Microsoft.SharePoint.Administration 命名空间的集合和对象相关的 Windows SharePoint Services 服务器体系结构。

  1. SPFarm 对象在 Windows SharePoint Services 对象模型层次中处于最高等级。Servers 属性获取表示部署中所有服务器的集合。Services 属性获取表示所有服务的集合。
  2. 每个 SPServer 对象都表示一台物理服务器计算机。ServiceInstances 属性提供对单台计算机上运行的单个服务实例集的访问权限。
  3. 每个 SPService 对象都表示一个安装在服务器场中的逻辑服务或应用程序。服务对象提供对负载平衡服务(由相应的服务实例实现)的服务器场范围设置的访问权限。SPService 类的派生类型包括(举例)用于 Windows 服务(如计时器服务、搜索、Microsoft SQL Server 和数据库服务等)的对象和用于 Web 服务(如 Windows SharePoint Services 或 Microsoft Office System 中的服务)的对象。
  4. SPWebService 对象提供对特定逻辑服务或应用程序的配置设置的访问权限。WebApplications 属性获取运行服务的 Web 应用程序集合。
  5. SPDatabaseServiceInstance 对象表示在服务器计算机上运行的数据库服务的单个实例。SPDatabaseServiceInstance 类派生自 SPServiceInstance 类,因此继承了 Service 属性,该属性提供对实例所实现的服务或应用程序的访问权限。Databases 属性获取用于服务的内容数据库集合。
  6. 每个 SPWebApplication 对象都表示一个基于 Internet Information Services (IIS) 的负载平衡 Web 应用程序。SPWebApplication 对象提供对凭据和其他服务器场范围应用程序设置的访问权限。Sites 属性获取 Web 应用程序中的网站集集合,ContentDatabases 属性获取 Web 应用程序中所用的内容数据库集合。SPWebApplication 类替代过时的 SPVirtualServer 类,但过时的类在将 SPWebApplication 对象视为虚拟服务器(即让用户感觉包含一个或多个物理服务器的一个服务器组是一台服务器)时仍非常有用。
  7. SPContentDatabase 对象是从 SPDatabase 类继承的,表示包含 SharePoint Web 应用程序的用户数据的数据库。Sites 属性获取内容数据库存储其数据的网站集集合;WebApplication 属性获取父 Web 应用程序。
  8. SPSiteCollection 对象表示 Web 应用程序中的网站集集合。Item 属性或索引器从该集合获取指定的网站集;Add 方法在该集合中创建网站集。

网站体系结构          

下图显示与 N.Microsoft.SharePoint 命名空间的集合和对象相关的 Windows SharePoint Services 网站体系结构。

 

  1. 每个 SPSite对象都表示一组逻辑上相互关联的 SPWeb 对象(见下文),尽管其名称为单数形式。这类组通常称为“网站集”,但与 SPWebCollection 不同的是,SPSite 并不是标准的 Microsoft .NET 集合类。这类组包含可用于管理网站集的成员。AllWebs 属性提供对 SPWebCollection 表示网站集中所有网站(包括首要网站)集合的对象的访问权限。SPSite 类的 Microsoft.SharePoint.SPSite.OpenWeb方法返回特定的网站。
  2. 每个网站集包含任意数量的 SPWeb 对象,每个对象都包含可用于管理网站(包括其模板和主题)并访问网站上的文件和文件夹的成员。Webs 属性返回一个表示指定网站上所有子网站的 SPWebCollection 对象;Lists 属性返回一个表示网站中所有列表的 SPListCollection 对象。
  3. 每个 SPList 对象都包含用于管理列表或访问列表中项目的成员。GetItems 方法可用于执行返回特定项目的查询。Fields 属性返回一个表示列表中所有字段或列的 SPFieldCollection 对象;Items 属性返回一个表示列表中所有项目或行的 SPListItemCollection 对象。
  4. 每个 SPField 对象都拥有包含字段设置的成员。
  5. 每个 SPListItem 对象都表示列表中的一行。

如果您安装了“Windows SharePoint Services 3.0 基础结构更新 (KB951695)”,则自定义解决方案在模拟被挂起期间调用 SharePoint 对象模型时将会失败。如果您使用 Windows 身份验证并且代码从 IIS 工作进程中调用 SharePoint 对象模型,则请求必须模拟调用用户的身份。虽然 Windows SharePoint Services 将 ASP.NET 配置为自动模拟调用用户,但如果您挂起模拟(例如,通过调用 Windows API 的 RevertToSelf 函数,或通过调用 System.Security.Principal.WindowsIdentity.Impersonate 方法并传递 IntPtr.Zero 作为用户令牌参数的值),则代码将会执行意外操作或失败。即使代码不会明确还原为自身,但 ASP.NET 可能在代码还原为自身后调用它(实现虚拟路径提供程序时会出现这种情况);如果代码不模拟调用用户,则可能无法正常运行。

 

posted @ 2009-03-29 13:41  萍水相逢  阅读(868)  评论(0编辑  收藏  举报