Project Server “12”: Developing Project Management Solutions Phil Smail OFF311 Program Manager...
-
date post
20-Dec-2015 -
Category
Documents
-
view
221 -
download
5
Transcript of Project Server “12”: Developing Project Management Solutions Phil Smail OFF311 Program Manager...
Project Server “12”: Project Server “12”: Developing Project Management Solutions Developing Project Management Solutions
Phil SmailPhil SmailOFF311OFF311Program ManagerProgram ManagerMicrosoft Project Business UnitMicrosoft Project Business Unit
AgendaAgenda
Architecture OverviewArchitecture OverviewTopologyTopology
Programming for Project Server “12”Programming for Project Server “12”Project Server InterfaceProject Server Interface
EventingEventing
ReportingReporting
Action for DevelopersAction for Developers
Next Generation ServerNext Generation ServerScalable and reliable server for distributed Scalable and reliable server for distributed organizationsorganizations
Leveraging WSSLeveraging WSSPWA is WSS AppPWA is WSS App
Setup & Setup & DeploymentDeployment
IntegrationIntegrationAdministrationAdministration
AuthenticationAuthentication Leverage WSSLeverage WSSProgrammabProgrammable and le and
ExtensibleExtensible
Scalable & Scalable & ReliableReliable
Productive Productive ReportingReporting
ProgrammabProgrammable and le and
ExtensibleExtensible
Leveraging WSSLeveraging WSS
Productive Productive ReportingReporting
Scalable & Scalable & ReliableReliable
Scalable & ReliableScalable & ReliableActive CacheActive CacheQueue ServiceQueue ServiceServer-Side Server-Side Scheduling + Scheduling + UpdatesUpdates
No client roundtrip!No client roundtrip!
Productive Productive ReportingReporting
Server-Side Server-Side Custom FieldsCustom FieldsSpecialized Specialized Reporting Reporting DatabaseDatabaseCube Building Cube Building ServiceService
Programmable & Programmable & ExtensibleExtensible
ASP.NETASP.NETProject Server Project Server InterfaceInterfaceEvent ModelEvent ModelWebPartsWebParts
Project Server Project Server 1212
High-level ArchitectureHigh-level Architecture
Project Web Access
Project Server Business Objects
IE Custom AppProject Pro
Back endBack end
HTTP/SOAPHTTP/SOAP
SOAPSOAP
Server EventingSystem
DraftDraft PublishedPublished ReportingReporting ArchiveArchive
Project Server InterfaceServer
QueuingSystem
CacheCache
PWA -> PSI DrilldownPWA -> PSI Drilldown
PWA
Custom App
HTTP/SOAPHTTP/SOAP
SOAPSOAP
Project Server Interface
IE
HTTPHTTP
UI TierUI TierPSI Proxy PSI Proxy
LayerLayer
PWA -> PSI DrilldownPWA -> PSI Drilldown
PWA
PWA user accountPWA user account
Project Server Interface
IE
Mydomain\PhilMydomain\Phil
UI TierUI Tier
1.1. User hits PWAUser hits PWA
2. User is authenticated2. User is authenticated
3. User Context is created3. User Context is createdContextContext
4. Context is passed 4. Context is passed through to PSIthrough to PSI
5. PSI reads the Context5. PSI reads the Context
Programming For Project Server Programming For Project Server “12”“12”
Rich Web Services APIRich Web Services APIWe use it ourselves…We use it ourselves…
Main entry point for developersMain entry point for developers
Typed datasetsTyped datasetsADO.NET V2ADO.NET V2
ExceptionsExceptionsPass Error objectPass Error object
Unmanaged examples Unmanaged examples Outlook integrationOutlook integration
ActiveX gridActiveX grid
Project Server Project Server InterfaceInterface
Project Server “12” Web Project Server “12” Web ServicesServicesWeb Services Web Services
galore!!!galore!!!
CustomFieldsCustomFieldsLookupTablesLookupTablesNotificationsNotifications
ObjectLinkProviderObjectLinkProviderPortfolio ModelerPortfolio Modeler
AdminAdminAuthenticationAuthentication
AssignmentAssignmentCalendarCalendar
CubeAdminCubeAdmin
StatusingStatusingStatusReportsStatusReports
TimesheetTimesheetVersionsVersions
ViewsViewsWinProjWinProj
ProjectProjectPWAPWA
QueueSystemQueueSystemResourceResource
Status RulesStatus Rules
~ 350 PSI ~ 350 PSI methodsmethods
PSI ScenariosPSI Scenarios
Opens up Project Server as a work Opens up Project Server as a work management platformmanagement platform
Timesheet integrationTimesheet integrationPush data into LOB applicationPush data into LOB application
Resource managementResource managementPull data from LOB applicationPull data from LOB application
Project ProposalsProject ProposalsPush/Pull data from CRM systemPush/Pull data from CRM system
Simple PSI DemoSimple PSI Demo
PSI DatasetsPSI Datasets
Why DatasetsWhy DatasetsType safetyType safety
Client Side validation and constraintsClient Side validation and constraintsDatatablesDatatables
Visual Studio 2005 FriendlyVisual Studio 2005 FriendlyEasy databindingEasy databinding
PSI Datasets Cont’dPSI Datasets Cont’d
Project DatatableProject Datatable
PROJ_UIDPROJ_UID
VERS_UIDVERS_UID
PROJ_NAMEPROJ_NAME
PROJ_TYPEPROJ_TYPE
PROJ_VERSIONPROJ_VERSION
PROJ_PROP_AUTHORPROJ_PROP_AUTHOR
CAL_UIDCAL_UID
CAL_NAMECAL_NAME
PROJ_PROP_CATEGORYPROJ_PROP_CATEGORY
Etc…Etc…
PROJ_UIDPROJ_UID
PROJ_NAMEPROJ_NAME
Project.ReadProjectProject.ReadProjectListList
PSI Datasets Cont’dPSI Datasets Cont’d
Project DatatableProject Datatable
PROJ_UIDPROJ_UID
VERS_UIDVERS_UID
PROJ_NAMEPROJ_NAME
PROJ_TYPEPROJ_TYPE
PROJ_VERSIONPROJ_VERSION
PROJ_PROP_AUTHORPROJ_PROP_AUTHOR
CAL_UIDCAL_UID
CAL_NAMECAL_NAME
PROJ_PROP_CATEGORYPROJ_PROP_CATEGORY
Etc…Etc…
Project Project DatatableDatatable
Tasks Tasks DatatableDatatable
Task Custom Task Custom Fields DatatableFields Datatable
Project Project Resource Resource DatatableDatatable
Project Project Resource Resource
Custom Fields Custom Fields DatatableDatatable
Project Custom Project Custom Fields DatatableFields Datatable
Assignment Assignment DatatableDatatable
Assignment Assignment Custom Fields Custom Fields
DatatableDatatable
Dependency Dependency DatatableDatatable
Advanced PSI DemoAdvanced PSI Demo
PSI: TakeawaysPSI: Takeaways
Project and Work management APIProject and Work management APIHow can you integrate this into your How can you integrate this into your apps?apps?
.NET Framework 2.0 Datasets.NET Framework 2.0 Datasets
All requests go through the PWAAll requests go through the PWATo PSI via Proxy LayerTo PSI via Proxy Layer
Proposal ExampleProposal Example
EventingEventing
Server-side programming modelServer-side programming modelMain mechanism for third parties to Main mechanism for third parties to extend the platformextend the platformOut of process for process safetyOut of process for process safetyUses app domains to support in-hostingUses app domains to support in-hosting
Project Server Business Objects
Project Server Interface
Project DBS AProject DBS A Project DBS BProject DBS B
Server EventingSystem
App Pool A
App Pool B
Eventing Cont’d.Eventing Cont’d.
Event arguments provide some data, Event arguments provide some data, more is accessible using the more is accessible using the PSI/Reporting databasePSI/Reporting database
Pre (synchronous & cancelable) Pre (synchronous & cancelable) eventsevents
““Publishing”Publishing”
Post (asynchronous) eventsPost (asynchronous) events““Published”Published”
UI to register assemblies to ease UI to register assemblies to ease farm deploymentsfarm deployments
Eventing ScenariosEventing Scenarios
Eventing provides a lot of Eventing provides a lot of opportunitiesopportunities
User/Resource creation validationUser/Resource creation validationResources all have valid company email Resources all have valid company email addressaddress
Project/Timesheet approvalProject/Timesheet approvalProject needs to go through a workflow Project needs to go through a workflow approval process external to Project Serverapproval process external to Project Server
Legal legislationLegal legislationProjects cannot be saved unless they have Projects cannot be saved unless they have specific fields setspecific fields set
EventingEventing
Eventing: TakeawaysEventing: Takeaways
Extensibility model for Project Server Extensibility model for Project Server “12”“12”
Partner opportunitiesPartner opportunities
Workflow, Workflow, WorkflowWorkflow, Workflow, WorkflowWindows Workflow FoundationWindows Workflow Foundation
Validation, Validation, ValidationValidation, Validation, Validation
Reporting InfrastructureReporting Infrastructure
Focused around the Reporting DBSFocused around the Reporting DBSSimilar tables to Published DBSSimilar tables to Published DBS
The only DBS we will documentThe only DBS we will documentAccess Draft and Published through PSIAccess Draft and Published through PSI
We’ll maintain the schemaWe’ll maintain the schema
Project Server Platform
DraftDraft PublishedPublished ReportingReporting ArchiveArchive
PSI
Reporting Infrastructure Reporting Infrastructure Cont’d.Cont’d.
Report Data ServiceReport Data ServiceInvoked automatically after Invoked automatically after Project.PublishProject.Publish
Pulls data from the Published DatabasePulls data from the Published Database
Transforms data into reporting-friendly Transforms data into reporting-friendly formatformat
Cube Building ServiceCube Building ServiceConfigure the data you want in the Configure the data you want in the cubescubes
Map data to Map data to dimensions/measures/propertiesdimensions/measures/properties
Reporting ScenariosReporting Scenarios
Timesheet integrationTimesheet integrationJoin your data to Project’s timesheet Join your data to Project’s timesheet datadata
Project status integrationProject status integrationIntegrate into PPM system’s reporting Integrate into PPM system’s reporting modulemodule
Reporting: TakeawaysReporting: Takeaways
This is your databaseThis is your databaseFully documentedFully documented
What data do you want to join it with?What data do you want to join it with?
Actions For DevelopersActions For Developers
Look at Visual Studio 2005Look at Visual Studio 2005Typed Datasets make life a lot easierTyped Datasets make life a lot easier
Consider how to integrate project and Consider how to integrate project and works management into your works management into your processesprocesses
Project Conference 2006Project Conference 2006
http://www.msprojectconference.com/
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.