Project PSI开发详解:程序设计与数据交互
需积分: 11 113 浏览量
更新于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 上传
988 浏览量
2021-05-26 上传
2021-04-16 上传
2021-06-23 上传
2021-07-13 上传
2021-03-25 上传
103 浏览量
155 浏览量

李禾子呀
- 粉丝: 26
最新资源
- 服务器监控与日志管理的.p文件上传策略
- Visual C++网络编程案例源代码精解(前四章)
- Nihao3d:探索Flash3D学习的最佳实践平台
- Vue2日期选择器组件:vue2-datepicker的介绍与使用
- 全技术栈源码资源:灰色iso苹果风格WAP企业网站模板
- tcomb-form-redux-test开发环境启动指南
- 利用Ext JS与Asp.Net MVC 3实现CMS用户管理后台系统
- 英文版man手册CHM文件的介绍与应用
- 全面解析Firebase与OpenCV在网站开发中的应用教程
- 十大Android案例应用源码免费下载学习
- Java JDK 1.8 64位版下载安装教程
- 分析非对称三角后缘调制数字V-2控制Buck变换器
- android省市联动实现技巧与源码解析
- Qt中间件微型Web框架递归技术实现解析
- Hough变换项目:直线检测技术详解
- 变频器工程应用与参数设置实例分析