Project 中面向开发人员的更新

Project Server 2013 中的扩展性功能适用于 Project Online 的加载项和本地安装。 新功能包括客户端对象模型 (CSOM) 、REST 接口、用于报告的 OData 服务、远程事件接收器、声明性工作流以及 Project 客户端的任务窗格加载项。 另请了解不应用于新开发的已弃用功能。

Project Server 2013 基于 Microsoft Office Project Server 2007 引入的框架,并由 Project Server 2010 扩展。 Project Server 2013 (CSOM) 添加了客户端对象模型,该模型从 Project Server 接口 (PSI) 进行重构和简化,包括适用于 Windows 应用的 JavaScript 库和 .NET Framework 4 库、Windows Phone 8 和 Microsoft Silverlight。 CSOM 专为 Project Online 开发而设计,还适用于本地 Project Server 安装。

Project Server 数据库将组合成一个数据库;您可通过 OData 服务访问联机报告表和视图。 CSOM 和 OData 服务均具有一个代表性状态传输 (REST) 接口。 可以使用 SharePoint Designer 2013 创建 Project Server 工作流。 Project Professional 2013 可以使用任务窗格的 Office 外接程序扩展性模型与 Project Server 报告数据、SharePoint 任务列表和其他外部内容集成。 Project Standard 2013 可以使用任务窗格加载项与常规外部内容集成。

有关 Project Server 2013 中重大更改的关系图和详细信息,请参阅 Project Server 2013 体系结构

备注

Project Server 2013 基于 SharePoint Server 2013 平台,并且 Project 2013 中使用的大部分基础结构与其他 Office 2013 应用程序相同。 有关 SharePoint 外接程序模型、基于 SharePoint 的工作流、Web 部件、使用其他 SharePoint 功能进行开发的文档以及 Office 外接程序的文档,请参阅 SharePoint 外接程序Office 外接程序SharePoint 2013 开发概述

Project 2013 的主要新增功能

Project Standard 2013 和 Project Professional 2013 中的新增功能包括改进的用户界面,该界面与其他 Office 2013 应用程序匹配,并支持 Windows 8 中的新式用户界面、与报表的 Office 艺术对象集成、烧毁报表和报表的新可编程性功能。 Project Professional 2013 支持在 SharePoint Server 2013 上更广泛地共享和同步项目,以及在其他 Office 2013 应用程序(如 Word、Excel 和 Outlook)中也实现的任务窗格加载项。

Project Server 2013 中有许多新功能。 有些项目没有重要的可编程性故事,例如 Project Web App 中的新时间线。 这些功能将记录在 Microsoft Office Online 的产品帮助和最终用户文档以及 Microsoft TechNet 上面向管理员和 IT 专业人员的主题中。 其他新增功能(如改进的时间表)使第三方开发人员通过 Project Server 接口 (PSI) 与时间表和状态集成变得更简单。

为 Project 加载项添加 Project Online 和 Office Store (https://office.microsoft.com/store) 是影响深远的更改,其中 Project Server 可通过 Microsoft Azure 进行访问。 对 Project Server 的基于云的访问使用客户端对象模型 (CSOM) ,通过 Microsoft .NET Framework、Microsoft Silverlight、Windows Phone 和使用 JavaScript 的 Web 应用开发外接程序。 Project Online 的要求是将以前版本的四个 Project Server 数据库合并到一个数据库中。

Project Server 2013 的性能和可伸缩性在许多方面得到了改进,例如任务状态、时间表和项目管理。 Project Server 工作流是使用 Windows Workflow Foundation (WF4) 版本 4 重新设计的。 将 .NET Framework 4 和 Windows Communication Foundation (WCF) 与 PSI 配合使用可提高安全性、性能和可伸缩性。 例如,您无需更改应用程序代码或重新编译,即可使用配置文件更改基于 WCF 的应用程序的传输协议。 Project Web App 缓存许多 PSI 调用,其中的数据不会发生重大更改。

备注

若要使用 Project Server 2013 进行开发,可以将 Visual Studio 与 Office 和 SharePoint 工具扩展配合使用,后者可以本机为 Office 2013 产品创建加载项。 Project Server 2013 要求 Visual Studio 完全启用项目详细信息页和基于 WCF 的应用程序等功能的开发。 Visual Studio 中的 SharePoint 工具扩展可以直接将 Web 部件和其他 SharePoint 功能部署到 Project Web App 和其他 SharePoint 网站。

不再需要 Visual Studio 来开发使用可在 Project Web App 中管理的自定义字段、阶段、阶段和企业项目类型的 Project Server 工作流。 虽然可以使用 Visual Studio 开发工作流,但使用 SharePoint Designer 创建工作流通常更容易、更快速。 Visual Studio 可用于需要访问 CSOM 或其他外部 API 的工作流。

Project 加载项

软件的分发和营销已经彻底改变了加载项的概念。 对于 Project 2013,加载项可从公共 Office 应用商店购买和下载,也可以在 SharePoint 上的专用目录中分发。 加载项通常是一个自包含的交互式程序,用于执行少量相关任务。 Project 外接程序可以是 Project Standard 2013 或 Project Standard 2013 客户端的任务窗格加载项,也可以是 Project Server 2013 或 Project Online 的外接程序。

有关 Project 桌面客户端的加载项的信息,请参阅 Project 中的任务窗格加载项。 有关 Project Server 2013 示例,请参阅 创建 SharePoint 托管的 Project Server 加载项。 除了 Office 和 SharePoint 外接程序 SDK 中的文章外, Office 博客 还包含许多与 Project 2013 和 Project Online 相关的文章。

Project Server 2013 的加载项可与本地安装和 Project Online 配合使用。 Project Server 加载项可以包括 Web 部件、远程事件接收器和业务逻辑。 通过 CSOM(而不是 PSI)访问加载项中的 Project Server 对象模型。 数据存储可以是基于云的,例如 SQL Azure、外部存储,例如通过 Microsoft Business Connectivity Services (BCS) 、内部与本地数据库或混合存储。

加载项安全性

一般情况下,外接程序执行的操作是代表运行加载项的用户执行的;您不显式使用模拟或指定谁可以运行加载项。 操作不能超过运行外接程序的用户的权限级别。

在 Visual Studio 2012 的 Office 开发人员工具中,AppManifext.xml 文件具有图形编辑器,可在其中设置权限请求范围。 例如,若要创建使项目经理能够更新其项目的外接程序,请在“AppManifest.xml 设计器”窗格的“权限”选项卡上,选择“多个项目”作为范围,选择“写入”作为权限。 如果外接程序用户具有项目经理权限,她可以为她管理的项目运行外接程序。 AppManifest.xml 文件中的代码可包括以下内容:

  <AppPermissionRequests>
    <AppPermissionRequest Scope="https://sharepoint/projectserver/projects" Right="Write" />
  </AppPermissionRequests>

表 1. Project Server 加载项的权限请求范围

范围 权限
Project Server
管理(需要 Project Server 管理员权限。)
多个项目
读取写入 (需要某些操作的项目经理权限;基本读取操作(如任务分配)的项目团队成员权限。)
单个项目
(至少需要项目团队成员权限;对项目中某些数据的访问权限取决于其他权限级别。)
企业资源
(需要资源经理权限。)
Statusing
SubmitStatus(需要提交项目状态的权限。)
报告
(需要登录 Project Server 的权限。)
工作流
提升 (需要运行工作流的权限。外接程序使用提升的权限运行,以便在工作流中实现从阶段到阶段的转换。外接程序控件阶段转换中的业务逻辑。)

备注

Project Server 2013 和 Project Online 不在 SharePoint 2013 中使用仅限应用程序的身份验证模型 (请参阅 SharePoint 2013) 中的外接程序授权策略类型

有关开发、分发、托管和管理外接程序的信息,请参阅 SharePoint 外接程序Office 外接程序,以及 SharePoint Server 2013 和 Office 2013 开发人员文档中的相关主题。 有关其他 SharePoint 外接程序的权限请求范围的信息,请参阅 SharePoint 2013 中的外接程序权限

与 SharePoint Server 集成

Project Web App 中的许多功能都需要 SharePoint Server 2013 中的新基础结构,例如 OAuth 和基于声明的身份验证、通过 SharePoint 组进行 Project Server 授权和权限、项目与 SharePoint 任务列表同步以及 Project Server 声明性工作流。 可将 Project Service 应用程序与 SharePoint 场中的任何网站集相关联。 项目可与 SharePoint 任务列表同步,其中 SharePoint 保留项目。 企业项目还可与 SharePoint 任务列表进行同步,其中 Project Server 保留完全控制权限。 有关体系结构关系图和项目同步的说明,请参阅 Project Server 2013 体系结构

SharePoint Server 2013 中有许多新功能。 有关详细信息,请参阅 面向开发人员的 SharePoint

与工作流集成

工作流是项目组合管理的核心功能。 项目生命周期可包含长时间运行的跨多个阶段的过程。 管理阶段包含项目建议、业务影响分析以及选择、创建、规划、管理和跟踪项目。

Project Server 2013 工作流基于使用 WF4 的 SharePoint 2013 工作流平台构建。 与以前版本不同,Project Server 2013 的声明性工作流可以使用 SharePoint Designer 2013 创建,并且可供本地和联机使用。 Project Server 工作流将 SharePoint 工作流安全模型与 OAuth 配合使用,并且可以安装在 Project Web App 网站上。 图 1 显示 SharePoint Designer 2013 可以将阶段添加到“需求管理”的网站工作流,其中阶段在 Project Web App 中定义。

图 1. 使用 SharePoint 设计器向 Project Web App 的工作流添加容器

在 SPD 中向工作流

通过在设计工具中添加工作流阶段、操作、条件和其他元素(可以是 SharePoint Designer 2013 或 Visual Studio 2012),可以生成声明性工作流。 然后,设计工具将工作流保存为 XAML 代码,该代码在运行时进行解释。 声明性工作流可以在 Project Server 2013 本地或 Project Online 中运行。 通过使用 Visual Studio 2012,还可以生成自定义操作和表单以用于其他控制,并保存工作流模板以在多个 Project Web App 实例中重复使用。 SharePoint Designer 2013 可以使用在 Visual Studio 2012 中创建的自定义操作。

Project Server 2013 工作流充当应用,其中具有 Project Web App 设计权限的管理员可发布声明性工作流,并将其与企业项目类型 (EPT) 相关联。 EPT 必须适用于其中 Project Server 保留完全控制权限的企业项目。 SharePoint 任务列表无法使用 Project Server 工作流。

利用 OAuth,具有项目创建权限的项目经理无需使用模拟,即可调用工作流。 对 Project Server 的工作流调用(例如,读取自定义字段值以决定要跟踪的分支)是代表项目经理进行的。 若要防止项目经理创建的工作流自动前进至下一容器,移至下一工作流容器的调用将以工作流作者(管理员)的身份运行。 相比之下,旧版 Project Server 2010 工作流的用户通过工作流代理用户帐户进行模拟调用,以获取整个工作流的管理员访问权限。

尽管本地 Project Server 2013 可以使用已编译的基于 WF3.5 的工作流,但我们建议将旧工作流升级到基于 WF4 的声明性工作流。 较新的技术更具可扩展性和稳定性。 业务分析师和 PMO 员工可以使用 Visio 2013 创建或更新工作流设计,并使用 SharePoint Designer 2013 实现 Project Server 工作流,而无需编码。

有关为 Project Web App 创建声明性工作流的信息,请参阅 开发 Project Server 工作流入门。 有关工作流的 SharePoint Designer 和 Visual Studio 功能的比较,请参阅 使用 Visual Studio 开发 SharePoint 2013 工作流

客户端对象模型

以编程方式访问 Project Online 需要基于 SharePoint CSOM 的 CSOM。 Project Online 身份验证将使用 Windows Live ID 的 OAuth,而不是使用 Project Server Forms 身份验证或 Windows 身份验证。

以下是 Project Server 2013 中 CSOM 的原则和功能:

  • CSOM 旨在易于使用。 例如,方法和属性直接按名称使用或提供数据,而不需要许多 GUID、changeXml 参数或传递数据集。

  • Project Server CSOM 基于第三方解决方案的最常见要求实现 PSI 功能的子集。

  • CSOM 内部方式调用 PSI,但以不同的方式构成。 例如,对所有状态更改的更新是通过 StatusAssignmentCollection.SubmitAllStatusUpdates 方法而不是通过用户的 Statusing.SubmitStatus PSI 方法或其他资源的 SubmitStatusForResource 方法完成的。

  • CSOM 可通过一个 WCF 服务 (Client.svc) 而不是 PSI 的 22 个公共服务进行访问。

  • Project Server CSOM 的初始化直接通过带有 Project Web 应用 URL 的 ProjectContext 类,而不是使用 WCF 引用或代理程序集。

  • CSOM 实现的多个客户端库和接口均受内部 SharePoint CSOM 基础结构的支持。 这些客户端库和接口包括:

    • Microsoft.ProjectServer.Client.dll 程序集中的 Microsoft .NET 客户端库

    • Microsoft.ProjectServer.Client.Silverlight.dll 程序集中的 Silverlight 库

    • Microsoft.ProjectServer.Client.Phone.dll 程序集中的Windows Phone 8 个库

    • PS.js 文件或 PS.debug.js 文件中 Web 应用程序的 JavaScript 库

    • REST 终结点,使用 OData 协议进行访问

    • 对使用筛选的 LINQ 查询的本机支持,以限制返回的数据量

  • CSOM 既可用于 Project Online 解决方案,也可用于本地解决方案,独立于 PSI 和其他 Project Server 程序集(如 Microsoft.Office.Project.Server.Library.dll)。

  • Project Server 2013 CSOM 的其他功能可以考虑用于累积更新和 Service Pack,具体取决于 Project Server 合作伙伴和开发人员社区的请求。

备注

CSOM 是第三方 Project Server 开发人员的首选接口。 如果 CSOM 包括应用所需的功能,建议使用 CSOM 开发新应用。

有关使用 CSOM 进行开发的信息,请参阅 Project 2013 的客户端对象模型 (CSOM) 。 有关 SharePoint 应用程序中的 REST 接口的信息,请参阅 SharePoint 2013 开发人员文档中 的使用 SharePoint REST 服务编程

报告数据库中的更改

Project Server 2010 中的四个数据库合并为 Project Server 2013 中的单个 Project 数据库。 Project 数据库的默认名称为 ProjectService。 报告表和视图保留其以前的名称,而草稿、已发布和存档数据库中的表和视图在 ProjectService 数据库中具有前缀 draftpubver 。 例如,已发布项目表为 pub.MSP_PROJECTS。

重要

草稿 (前缀) 、已发布 pub (draft) 以及存档 (ver) 表和视图不支持直接访问。 报告应仅使用前缀为 dbo 的报告表格和视图。 例如,dbo。MSP_EpmProject表包含 Project Web App 实例中的项目列表。

实际上没有任何内容阻止您使用直接编程数据库访问来更新 Project 数据库中任何表和视图中的数据。 您应注意,Project Professional 缓存、草稿和已发布数据的表以及报告表均依赖可被直接数据编辑中断的缓存同步协议。 如果您使用直接访问更改数据损坏了 Project Server 数据库或损坏了 Project Professional 客户端缓存,则将收到产品支持无法帮助的警告!

Project Server 2013 引入了用于联机和本地访问的 OData 服务。 联机报告表和视图只能由 OData 接口公开;对于内部使用,您可使用 OData 接口或直接访问 SharePoint 场中的 ProjectService 数据库中的报告表和视图。 Project Online 不支持多租户数据库。 也就是说,Project Web App 的多个实例都有其自己的 Project 数据库。 OData 服务内部运行对报告表和视图的 SQL 查询,并提供 XML 或 JSON 负载。 有关用于 Project Server 2013 中报告的 OData 服务的简介和 ProjectData 架构参考,请参阅 ProjectData - Project OData 服务参考

有关 OData 查询的一般信息,请参阅 OData: URI 约定。 例如,可以在浏览器中使用以下查询查看 Project Web App 本地实例中的所有项目,其中项目名称以“Test”开头。 在浏览器页中右键单击,然后单击“查看源代码”

https://ServerName /ProjectServerName /_api/ProjectData/Projects?$filter=startswith(ProjectName, 'Test') eq true

若要在 Excel 2013 中将项目数据导入 PowerPivot,请在“数据”功能区上的“来自其他源”下拉菜单中选择“从 OData 数据馈送”。 在“数据连接向导”对话框中,键入https://ServerName/ProjectServerName/_api/ProjectData/数据馈送位置,选择“下一步”,然后在向导的“选择表”页中选择“项目”表。 命名并保存此 .odc 文件,然后选择“完成”。 在“导入数据”对话框中,选择“数据透视表报告”。 在 Excel 工作表上,选择要显示的数据透视表的行和列上的字段。

具有正确权限的本地 Project Server 用户可以通过 Microsoft SQL Server 直接访问报表和视图以创建报表,就像在 Project Server 2010 中所做的那样。 在 Project Server 2013 中,用户还可以通过 OData 接口访问本地报告表。 您还可通过 OData 服务的 REST 终结点联机或内部检索 Project Server 数据。 例如,dbo.MSP_PROJECT 表和 dbo.MSP_EpmProject_UserView 视图可用于报告。 具有 draftpub或 前缀的任何表或 ver 视图仅供 Project Server 内部使用,不用于报告。 例如,没有记录 draft.MSP_TASKS 表和 pub.MSP_PROJECTS_WORKING_VIEW 视图,它们仅供内部使用。

备注

您可以通过在单独数据库中添加表、视图、字段和存储过程来扩展内部报告。 您不能在 Project Server 数据库中修改现有报告表和视图。

Project 数据库中的报告表、视图和字段将在 Project 2013 SDK 下载的后续更新中记录在 HTML 帮助文件中。 有关 ProjectData 服务的 OData XML 架构的文档,请参阅 ProjectData - Project OData 服务参考。 在大多数情况下,为 Project Server 2010 创建的报表表和视图的查询将使用 Project Server 2013 中的 Project 数据库。 内部用户可以像现在一样访问 SQL Server Analysis Services 中的 Project Server OLAP 多维数据集。 在 Project Online 中,OLAP 多维数据集不可用。

Project 中的任务窗格加载项

Project Standard 2013 和 Project Professional 2013 都支持任务窗格加载项,这些加载项可用于与网页集成并在网页中显示外部内容。 任务窗格显示可通过 JavaScript 访问任务、资源、视图和常规项目数据的网页内容。 Project 的 JavaScript 对象模型可以获取有关所选任务或资源的信息,并且可以获取网格中所选单元格中视图(如甘特图)中的数据。 Project 的任务窗格加载项还可以实现任务、资源或视图选择更改事件的事件处理程序。

图 2 显示了查询 ProjectData 服务的 Hello ProjectData 任务窗格加载项,然后将当前项目中的数据与所有项目的平均值进行比较。 Project 2013 SDK 下载包括加载项的完整源代码。

图 2. Project Professional 中的任务窗格加载项可以访问 Project Server 中的数据

比较当前项目与所有项目

备注

Project Standard 2013 无法通过任务窗格加载项直接与 Project Server 2013 集成。

Project Professional 中的任务窗格加载项可以支持为 Project Server 2013 生成的 Web 部件,因此开发人员可以在使用 Project Web App 和 Project Professional 运行后生成扩展。 为其他 Office 2013 产品开发的常规任务窗格加载项也可用于 Project Standard 2013 和 Project Professional 2013。 有关详细信息,请参阅 Project 的任务窗格加载项

Project Server 事件接收器

在包含后端 Project Service 应用程序的 SharePoint 场中,可以有多个 Project Web App 服务器 (也称为 Web 前端服务器或 WFE) 。 事件接收器也可以称为“事件处理程序”。 本地事件处理程序可使用完全信任代码实现,并且可部署在本地 Project Server 安装的所有 WFE 中。 远程事件接收器可在本地或远程服务器上的 Web 服务中实现,并且可由多个 WFE 和多个 Project Server 安装访问。 Project Online 只能使用远程事件接收器。

Project Server 事件处理程序由每个 Project Web App 实例的 SharePoint 管理,而不是由特定的 Project Web App 设置页面管理。 在 SharePoint 管理中心应用程序中,选择“常规应用程序设置”,在“PWA 设置”下选择“管理”,然后在“PWA 设置”页上的“Project Web App 实例”下拉列表中选择实例。 若要添加本地事件处理程序或远程事件接收器,请选择“服务器端事件处理程序”

对于 Project Server 的本地安装,可以创建一个远程事件接收器作为 SharePoint 功能,该功能使用 CSOM 中的 Microsoft.ProjectServer.Client.EventHandlerCreationInformation 类,然后使用 EventHandlerCollection 类中的方法以编程方式管理事件接收器。 对于远程事件接收器,前期事件是同步的,后期事件是异步的,在远程事件接收器未返回的情况下会出现超时。

备注

SharePoint 管理中心仅适用于内部安装。 对于 Project Online 和 SharePoint Online,可以使用基于 CSOM 的应用程序包添加或删除远程事件接收器。

在“服务器端事件处理程序”页上,为本地 Project Server 安装添加本地事件处理程序的过程与 创建 Project Server 事件处理程序并记录 Project Server 2010 事件主题中所述的过程几乎相同。 区别是“新建事件处理程序”页具有其他选项。 例如,选择“事件”列表中的“项目创建”,然后选择“新建事件处理程序”。 在“新建事件处理程序”页上,只有“名称”和“顺序”两个必填字段(见图 3)。 如果要添加本地完全信任的事件处理程序,请添加“程序集名称”字段和“类名称”字段;保留“终结点 Url”为空。 如果要添加远程事件接收器,请添加“终结点 Url”并保留“程序集名称”和“类名称”为空。

注意

如果 同时 指定程序集名称/类名称和终结点 URL,Project Server 将仅调用本地 () 事件处理程序。 忽略远程事件接收器。

如果为同一事件创建两个事件处理程序,其中一个事件处理程序是本地事件处理程序,一个是远程事件接收器,并且两者的 Order 值相同,Project Server 将忽略远程事件接收器。

图 3. 添加本地事件处理程序或远程事件接收器

配置事件处理程序或事件处理程序

如果您需要访问本地事件处理程序的 PSI 数据集,则可复制 [Windows]\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.Project.Schema\v4.0_15.0.0.0__71e9bce111e9429c 目录中的 Microsoft.Office.Project.Schema.dll 程序集。

建议您在 Microsoft.ProjectServer.Client 命名空间中使用事件类而不是 PSI;使用 CSOM 进行开发不需要操作数据集。 若要开发 Project Online 的远程事件接收器,必须使用 CSOM 中的 Event 类和 EventHandlerCreationInformation 类。

在部署 Project Server 事件处理程序之前,请在 Project Server 的测试安装中安装并测试事件处理程序。 对于本地 Project Server 安装,如果添加的本地事件处理程序变得不工作,Project Server 2013 事件服务无法加载其他有效的自定义事件处理程序。 在此情况下,您必须解决事件处理程序问题,然后才能重新启动 Events 服务。

备注

对于本地 Project Server 安装,建议您使用 CSOM 开发事件接收器来迁移到远程事件接收器。 因为远程事件接收器未在 Project Server Events 服务中运行第三方代码,因此远程事件接收器要更稳定。 本地管理员免除了维护 Project Server Events 服务的责任。

有关事件的常规信息,请参阅 处理 SharePoint 应用程序中的事件

不推荐使用的功能

备注

有关 Project Server 2016 预览版中弃用或删除的功能和 API 的信息,请参阅 Project Server 2016 预览版中弃用或删除的内容

在 Project 2013 中,已弃用的功能仍可用于某些解决方案,但不应用于新开发。 以下大多数功能和做法不适用于 Project Online,也不适用于 SharePoint 权限模式下 Project Server 2013 的默认本地安装。 使用这些功能的现有解决方案可能无法将 Project Server 2010 升级到 Project Server 2013。 尽管使用已弃用功能的解决方案在某些情况下可能继续工作,但并非所有 Project 2013 安装都完全支持它们。

如果解决方案使用已弃用的功能,则应在部署前对其进行全面测试,并且应尽快修改它们以使用受支持的功能。 有关为 Project 权限模式配置本地 Project Server 2013 安全性的信息,请参阅 Project Server 2013 中面向 IT 专业人员的新增功能中的SharePoint 权限模式部分。

  • 扩展PSI 扩展方案 已弃用,在将来的版本中将不受支持。 这些本地 Project Server 2013 方案通过使用自定义 Windows Communication Foundation (WCF) 服务启用集成。

  • Project PSI PSI 的 Project 类 已弃用。 对于所有新开发,请使用 Project CSOM。 使用 Project PSI 的 Project Server 2013 应用将继续工作,但 Project Online 应用需要将任何 Project 类 PSI 方法替换为其等效的 CSOM 方法。

  • 资源计划 PSI资源计划 PSI 已弃用。 Project 2013 开发将继续支持它,但在将来的版本中将不受支持。

  • PSI 的 ASMX 接口 PSI 包含用于开发本地 Project Server 扩展的重复接口。 ASMX Web 服务接口是在 Office Project Server 2007 中首次实现 PSI 时引入的。 Project Server 2010 添加了 WCF 服务接口,其中对象模型实质上复制了 ASMX Web 服务。 尽管 Project Server 2013 继续支持 ASMX 和 WCF,但需要 PSI 的新解决方案应使用 WCF 服务。 如果可能,应使用 CSOM 编写新的解决方案。

    PSI 的 ASMX Web 服务在 Project Server 2013 中已弃用。 若要在将来的 Project Server 版本中运行,必须使用 ASMX Web 服务的解决方案必须重写为使用 WCF 服务或 CSOM。 有关详细信息,请参阅 Project Server 可编程性中的使用 Project Server API 升级应用程序部分。

  • 对象链接提供程序 (OLP) 在以前版本的 Project Server 中,PSI 中的 ObjectLinkProvider 服务 (请参阅 WebSvcObjectLinkProvider 提供了一种管理项目网站中企业项目任务和专用 SharePoint 列表之间的 Web 对象链接的方法,以了解问题、风险、可交付结果和文档。 在 Project Server 2013 中,OLP 已弃用。

    您可以使用 SharePoint CSOM 中的 RelatedItemManager 类创建、读取和删除任务列表中的项目与项目网站中的其他列表之间的 Web 对象链接。 例如,若要将任务项的链接添加到问题,可以使用 AddSingleLink 方法或两个类似方法之一 :AddSingleLinkFromUrlAddSingleLinkToUrlRelatedItemManager 类还包括用于删除 Web 对象链接和读取相关项的方法。 有关 JSOM (JavaScript 对象模型) 中的等效类,请参阅 SP。RelatedItemManager 对象 (sp.js)

    建议使用 SharePoint CSOM 为 Project Server 2013 的本地安装和 Project Online 创建 OLP 类型的应用程序。 Microsoft.SharePoint 命名空间不包括 RelatedItemManager **** 类。

  • 自定义权限 Office Project Server 2007 支持用于访问特定 Project Server 功能或扩展的自定义安全权限,其中 SDK 文章介绍了如何通过直接修改已发布的数据库来创建它们。 在 Project Server 2010 中,自定义权限仍有效,但已弃用。 在 Project Server 2013 中,自定义权限不适用于本地安装的默认 SharePoint 权限模式。 对于“项目”权限模式,支持自定义权限。 使用 Project Online 时,无法直接访问数据库。

  • 模仿 Project Server 2013 中已弃用基于 PSI 的应用中的模拟,其中应用的用户可以假定其他 Project Server 用户的安全权限。 如前所述,默认本地 Project Server 2013 安装使用 SharePoint 权限模式,不允许在 Project Server 安全组中模拟。 有关详细信息,请参阅 Authentication, authorization, and security in SharePoint 2013

    状态应用程序是在以前版本的 Project Server 中可能使用了模拟的典型扩展。 Project Server 2010 在 PSI 中引入了 ReadStatusForResource 方法和 SubmitStatusForResource 方法,以及 StatusBrokerPermission 全局权限,这消除了模拟代表其他用户读取和更新状态的需要。 Project Server 2013 中的 CSOM 使用基础 PSI 以透明方式启用状态扩展,并且可用于 Project Online 或本地安装。

  • 报告数据库扩展 将自定义表和视图添加到报表数据库是以前版本的 Project Server 的常见做法。 由于 Project Server 2013 将以前版本的四个数据库合并为一个数据库,因此升级不会将自定义表、视图或 SPROC 传输到 Project Server 2013 数据库中的报告表。

    建议将 SQL Azure 或单独的 SQL Server 数据库用于自定义报告表和视图,可在其中管理数据库备份和更新。 对于 Project Online,这是必需的。

  • 报告 Project Server 数据库中的本地报告表和视图以及 OLAP 多维数据集 弃用,仍完全受支持。 但是,在以前的 Project Server 版本中 (Reporting 数据库的报表表和视图) 在 Project Online 中不可访问。 同样,OLAP 多维数据集仅适用于 Project Server 2013 的本地安装。 对于使用 Project Online 报告应用程序,可以通过具有 OData 协议的 REST 查询来使用 ProjectData 服务。

  • 项目指南 项目指南是 Office Project 2007 桌面应用程序中的标准功能,其中任务窗格中的 HTML 和 JavaScript 内容为创建和管理项目提供了交互式指南。 在 Project 2010 中,项目指南在默认安装中不可用,但可以通过 VBA 或 VSTO 加载项启用。 Project 2010 SDK 下载包括修改的项目指南文件。

    Project 2013 中的 VBA 对象模型和 Microsoft.Office.Interop.MSProject 对象模型仍包含 Application 类的 22 个成员,以及可以管理项目指南的 Project 类的 22 个成员。 但是,Project 2013 任务窗格应用可能与“项目指南”任务窗格中的操作冲突,并且无法在 Office 应用商店中轻松分发或销售项目指南内容。 强烈建议使用 Office 加载项(而不是自定义项目指南内容)开发项目任务窗格解决方案。 有关项目指南的详细信息,请参阅 Project 2010 SDK 文档

比较本地 Project Server 与 Project Online

为了帮助你决定是使用本地 Project Server 还是使用 Project Online,以及可以在任一情况下开发哪些类型的扩展,表 2 比较了 Project Server 2013 的本地安装与 Project Online 的可扩展功能。 表 2 未包括部署、管理或使用情况方面的差异。 有关 Project Online 和 Project Server 2013 的详细信息,请参阅 面向开发人员的 Project 2013Project Online

表 2. 本地 Project Server 和 Project Online 的扩展性

功能 本地 Project Server Project Online
可编程性
基于 CSOM 的应用;一致的编程模型
- .NET、Silverlight Windows Phone 客户端库
- 自定义页面、Web 部件和功能区扩展的 JavaScript 库
- OData 和 REST 协议

基于 PSI 的应用;复杂的编程模型,还可以为管理、项目组合分析、通知、项目模式安全性、队列系统和其他领域创建应用

PSI 扩展

具有项目模式安全性的自定义权限 (已弃用)

已弃用 PSI (模拟)

完全信任代码;在 SharePoint 场中安装扩展
基于 CSOM 的应用;一致的编程模型
- .NET、Silverlight Windows Phone 客户端库
- 自定义页面、Web 部件和功能区扩展的 JavaScript 库
- OData 和 REST 协议

可以使用 PSI,但不受支持:无 OAuth,也没有服务到服务连接

没有 CSOM API 的扩展

无自定义权限

无模拟

无完全信任代码
自定义数据库
- SQL Azure
- 不支持 SQL Server (修改 Project Server 数据库中的报告表和视图)
- SQL Azure
- 不支持 SQL Server (修改 Project Server 数据库中的报告表和视图)
报告
- ProjectData 服务;OData 和 REST 协议
- Project Server 数据库中的报告表和视图
- OLAP 数据库
- ProjectData 服务;OData 和 REST 协议
事件处理程序
- 远程事件接收器,可通过 WCF 终结点访问
- 完全信任事件处理程序,安装在 SharePoint 场中
- 远程事件接收器,可通过 WCF 终结点访问
工作流
使用 SharePoint Designer 2013 创建的声明性工作流
- 仅在特定的 Project Web App 实例上使用
- 可以从 Visio 2013 导入工作流设计
- 可以导入和使用自定义操作

使用 Visual Studio 2012 创建的声明性工作流
- 创建可包含工作流的应用
- 创建可包含工作流的 SharePoint 解决方案包 (.wsp)
- 创建工作流模板以供重复使用
- 创建和使用自定义操作

可以使用使用 WF3.5 创建的旧版编译工作流 (建议升级到声明性 WF4 工作流)
使用 SharePoint Designer 2013 创建的声明性工作流
- 仅在特定的 Project Web App 实例上使用
- 可以从 Visio 2013 导入工作流设计
- 可以导入和使用自定义操作

使用 Visual Studio 2012 创建的声明性工作流
- 创建可包含工作流的应用
- 创建可包含工作流的 SharePoint 解决方案包 (.wsp)
- 创建工作流模板以供重复使用
- 创建和使用自定义操作
分配
- 适用于基于 CSOM 的应用的 Office 应用商店 ()
- SharePoint 上的专用应用程序目录
- Intranet 文件共享
- Office 应用商店
- SharePoint 上的专用应用程序目录

总结

Project Server 2013 提供了大量新的开发功能和方案,合作伙伴和客户可以使用这些功能和方案来适应和扩展 Project Server 在大型企业和小型组织中的功能和用途。 可以使用 Office 2013 和 SharePoint 2013 的基础结构来帮助创建和分发 Project 2013 的应用程序,从而大大扩展自定义应用程序的适销性和使用。 Project 2013 中弃用了以前版本的某些扩展功能和做法,尤其是 PSI 的 ASMX Web 服务和涉及模拟或直接数据库更改的功能,这些更改不能与 Project Online 一起使用。

CSOM 的引入使各种设备能够在 Web 应用程序中使用 JavaScript 以编程方式访问 Project Online。 与 PSI 相比,CSOM 提供的编程模型更加一致。 可访问 Project Server 数据的方式比之前的版本中的方式更多,包括从联机 OData 服务和通过用于报告 Project 数据库中数据的 REST 终结点。 现有报告将仍以相同的方式供内部使用;新报告更灵活。

Office 加载项提供了销售解决方案并将 Project Standard 2013 与 Web 内容和其他 Office 2013 产品集成的新途径。 还可以通过任务窗格 Office 加载项创建将 Project Professional 2013 与 Project Server 数据和 SharePoint 列表集成的新方法。

有关开发应用程序以及使用 SharePoint Server 2013 的可编程性功能和 CSOM 的详细信息,请参阅 面向开发人员的 SharePoint面向开发人员的 Office

另请参阅