Project PSI开发详解:程序设计与数据交互
需积分: 11 162 浏览量
更新于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 上传
李禾子呀
- 粉丝: 24
- 资源: 2万+
最新资源
- ***+SQL三层架构体育赛事网站毕设源码
- 深入探索AzerothCore的WoTLK版本开发
- Jupyter中实现机器学习基础算法的教程
- 单变量LSTM时序预测Matlab程序及参数调优指南
- 俄G大神修改版inet下载管理器6.36.7功能详解
- 深入探索Scratch编程世界及其应用
- Aria2下载器1.37.0版本发布,支持aarch64架构
- 打造互动性洗车业务网站-HTML5源码深度解析
- 基于zxing的二维码扫描与生成树形结构示例
- 掌握TensorFlow实现CNN图像识别技术
- 苏黎世理工自主无人机系统开源项目解析
- Linux Elasticsearch 8.3.1 正式发布
- 高效销售采购库管统计软件全新发布
- 响应式网页设计:膳食营养指南HTML源码
- 心心相印婚礼主题响应式网页源码 - 构建专业前端体验
- 期末复习指南:数据结构关键操作详解