Project PSI开发详解:程序设计与数据交互
需积分: 11 107 浏览量
更新于2024-08-16
收藏 2.89MB PPT 举报
"这篇资料主要介绍了PSI程序设计流程,特别是在使用Visual Studio 2005开发Project Server接口时的一些步骤和技术。PSI是Project Server Interface的缩写,是Microsoft Office Project Server 2007提供的一系列托管代码API,通过Web服务进行通信。它允许开发者构建与Project Server交互的应用程序,涵盖了多个方面,如项目管理、资源计划、时间表、报告、安全、事件通知等。"
在项目开发过程中,首先需要在Visual Studio 2005中添加Web引用,以便调用Project对象。这通常涉及到以下URL:
1. 登录Windows集成验证的Web服务:`http://<ServerName>:<Port>/<PWAPath>/_vti_bin/PSI/LoginWindows.asmx`
2. 登录表单验证的Web服务:`http://<ServerName>:<Port>/<PWAPath>/_vti_bin/PSI/LoginForms.asmx`
3. 项目管理相关的Web服务:`http://<ServerName>:<Port>/<PWAPath>/_vti_bin/PSI/Project.asmx`
接着,引入`PSLibrary`命名空间,即`using PSLibrary = Microsoft.Office.Project.Server.Library;`。为了与Project Server进行交互,需要处理登录和登出操作。对于Windows集成验证,可以直接使用当前用户的Credential;而对于Project Server验证,可能需要创建一个CookieContainer,并通过Login和Logoff方法进行身份验证。
完成登录后,需要设置其他对象的URL和Credential或CookieContainer,以便后续操作。在读取Project Server数据时,可以调用提供的Web服务方法,例如`this.project.ReadProjectList()`,返回的数据通常以XML格式传输,但由于数据对象继承自`System.Data.DataSet`,因此可以方便地通过DataSet的方法来处理和显示数据。
以获取项目列表为例,可以创建一个方法`getProjectList`,循环遍历`ReadProjectList()`返回的`ProjectDataSet`,并将项目UID和名称添加到ListView中:
```csharp
public void getProjectList(ListView view)
{
WebService_Project.ProjectDataSet ds = this.project.ReadProjectList();
foreach (WebService_Project.ProjectDataSet.ProjectRow pr in ds.Project)
{
view.Items.Add(new ListViewItem(new string[] { pr.PROJ_UID.ToString(), pr.PROJ_NAME }));
}
}
```
此外,该资源还提到了ProjectServerInterface(PSI)的架构概述,包括与Project Data Store(PDS)的关系,以及如何利用PSI进行Project Server事件开发、Windows SharePoint Services的相关开发、工作流开发、Web部件开发和Reporting Database的开发。Project Professional 2007和Project Web Access(PWA)均通过PSI与Project Server进行通信,不直接访问数据库,以保证数据一致性。
在开发中,PSI提供了对项目计划、任务分配、调度、预算、安全性、事件通知、对象链接等多个核心功能的访问接口。通过这些接口,开发者可以构建复杂的企业级项目管理系统,实现与Project Server的深度集成。同时,由于所有的数据交换都是通过Web服务进行,这意味着应用程序可以跨平台和远程访问Project Server,极大地扩展了开发者的可能性。然而,为了保持系统的稳定性和数据的安全性,不建议直接访问Project Server的数据库,而应通过PSI提供的API进行操作。
2024-05-04 上传
2021-01-06 上传
2021-05-26 上传
2021-04-16 上传
2021-06-23 上传
2021-07-13 上传
2021-03-25 上传
2021-03-25 上传
2021-04-12 上传
李禾子呀
- 粉丝: 25
- 资源: 2万+
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载