none
Elementary Question about learning the name of Objects in the model RRS feed

  • Question

  • This question could apply to customization of any MS application.  I understand the object model of MS Project but what I have never been able to figure out is how does one learn the name of objects instantiated within the program that I might want to interact with.  For example in MS Project Server PWA there is a object called "ProjectCenterMain" which is the manifestation of the list of projects in Project Center.  I learned that name (ProjectCenterMain) from a demo app.  There must be thousands of such objects not covered in a demo app.  SO, HOW do you come to learn what those objects are called?  Is there a reference somewhere?  A secret codebook that I have to find behind a door guarded by an ogre?  Can someone guide me to that door?  Thanks.
    Tuesday, May 25, 2010 2:16 PM

Answers

  • Hi Kingsley,

    I am hoping I can shed a little light for you on the structure of the PSI. Essentially, and at a very high level, the PSI consists of a number of web services. Each of these web services (and there may be an exception or two to this rule) is named after the logical entity it surfaces: There is a web service called Project which exposes functionality around projects, there is one called Resource which exposes functionality around resources (users, users in a project etc.). See this link for some more info around these and a good explanation on the actual objects.

    The typical operations on the business objects follow the CRUD pattern and so you can, when you look at the operations on the individual objects, see how to accomplish your goals.

    Hope this helps,

    Boaz Lev

    MSFT

    Friday, May 28, 2010 4:42 AM
    Moderator
  • Hi Kingsley,

    Regarding your specific question, the Schedule grid in PWA 2010 uses the new JS Grid control. There is an article in the SDK that shows how to work with the JS Grid in PWA: Walkthrough: Customizing the PWA Ribbon and Accessing the JS Grid

    Regarding the link to Project Server 2007: Getting Started -- if you are referring to the link on the Project 2010 SDK Documentation introductory page, it does work, both in the online page and in the PJ14SDK.chm file in the SDK download.

    Regarding getting a handle on the PSI, following Boaz' suggestion on looking at the architecture, the PSI Reference Overview briefly describes and links to the primary class (i.e., object) in each of the 22 public PSI services. There are many other classes in each service, most of which are DataSet, DataTable, and DataRow classes that are used or returned by the primary class methods.

    Programming the PSI is more complicated in Project Server 2010 than in Project Server 2007, because Project Server supports a dual interface: ASMX web services and WCF services. Project Server 2007 is "simply" ASMX. Another complication is mixing Windows authentication with Forms authentication, which both use the new Claims infrastructure in SharePoint 2010. For a basic example, take a look at the ASMXLogon_MultiAuth and WCFLogon_MultiAuth samples in the download in Code samples from the Project 2010 SDK webcast.

    Incidentally, the Project 2010 SDK download includes the ProjectServerServices.xml Intellisense file, which works if you compile the ProjectServerServices.dll proxy assembly and put them in the same directory. The source and script to compile are in the download.

    --Jim

    Friday, May 28, 2010 8:05 PM

All replies

  • Hi,
     
    The definitive source is the Software Development Kit (SDK for project. It's a free download from MSDN:

    --

    Rod Gill
    Microsoft MVP for Project - http://www.project-systems.co.nz
     
    Author of the only book on Project VBA, see: http://www.projectvbabook.com
     

     
    "Hill57" wrote in message news:f9bdebd8-300c-4836-9505-3f76b29d9a03...
    This question could apply to customization of any MS application.  I understand the object model of MS Project but what I have never been able to figure out is how does one learn the name of objects instantiated within the program that I might want to interact with.  For example in MS Project Server PWA there is a object called "ProjectCenterMain" which is the manifestation of the list of projects in Project Center.  I learned that name (ProjectCenterMain) from a demo app.  There must be thousands of such objects not covered in a demo app.  SO, HOW do you come to learn what those objects are called?  Is there a reference somewhere?  A secret codebook that I have to find behind a door guarded by an ogre?  Can someone guide me to that door?  Thanks.


    __________ Information from ESET Smart Security, version of virus signature database 5145 (20100525) __________

    The message was checked by ESET Smart Security.

    http://www.eset.com
    Tuesday, May 25, 2010 9:55 PM
    Moderator
  • Hi Rod,

    Thanks for the reply.  But I don't see anywhere in the SDK a comprehensive reference to the object model and structure, available methods and attributes, etc that says what they do and what they mean.  I have looked all through the SDK, and in this area even Intellisense seems useless for understanding what is possible.  

    Regards,

    Kingsley

    Wednesday, May 26, 2010 8:03 PM
  • PSI is web services with no hierarchical object model, so no intellisense. DO you mean for VBA? All VBA Objects are in VBA help.

    --

    Rod Gill
    Microsoft MVP for Project - http://www.project-systems.co.nz
     
    Author of the only book on Project VBA, see: http://www.projectvbabook.com
     

     
    "Hill57" wrote in message news:a1c68e99-887c-4a70-9002-ace1eb610285...

    Hi Rod,

    Thanks for the reply.  But I don't see anywhere in the SDK a comprehensive reference to the object model and structure, available methods and attributes, etc that says what they do and what they mean.  I have looked all through the SDK, and in this area even Intellisense seems useless for understanding what is possible.  

    Regards,

    Kingsley



    __________ Information from ESET Smart Security, version of virus signature database 5148 (20100526) __________

    The message was checked by ESET Smart Security.

    http://www.eset.com
    Wednesday, May 26, 2010 8:27 PM
    Moderator
  • I am referring to PSI.  Struggling to understand how it all fits together.  Struggling to understand what functionality is available.  The SDK is not helping.  The link on the SDK page for "ProjServer 2007: Getting started ..." does not work and there is no quick start for developers of 2010.  I am specifically trying to find a way to identify which rows in the Schedule Grid may have been selected before clicking a button in the Ribbon (using PWA 2010).  The object is to launch some functionality associated with the selected row(s)/task(s).  I am happy to study...just need to know what I should read.  Thanks.

    -Kingsley

    Wednesday, May 26, 2010 8:46 PM
  • Hi Kingsley,

    I am hoping I can shed a little light for you on the structure of the PSI. Essentially, and at a very high level, the PSI consists of a number of web services. Each of these web services (and there may be an exception or two to this rule) is named after the logical entity it surfaces: There is a web service called Project which exposes functionality around projects, there is one called Resource which exposes functionality around resources (users, users in a project etc.). See this link for some more info around these and a good explanation on the actual objects.

    The typical operations on the business objects follow the CRUD pattern and so you can, when you look at the operations on the individual objects, see how to accomplish your goals.

    Hope this helps,

    Boaz Lev

    MSFT

    Friday, May 28, 2010 4:42 AM
    Moderator
  • Hi Kingsley,

    Regarding your specific question, the Schedule grid in PWA 2010 uses the new JS Grid control. There is an article in the SDK that shows how to work with the JS Grid in PWA: Walkthrough: Customizing the PWA Ribbon and Accessing the JS Grid

    Regarding the link to Project Server 2007: Getting Started -- if you are referring to the link on the Project 2010 SDK Documentation introductory page, it does work, both in the online page and in the PJ14SDK.chm file in the SDK download.

    Regarding getting a handle on the PSI, following Boaz' suggestion on looking at the architecture, the PSI Reference Overview briefly describes and links to the primary class (i.e., object) in each of the 22 public PSI services. There are many other classes in each service, most of which are DataSet, DataTable, and DataRow classes that are used or returned by the primary class methods.

    Programming the PSI is more complicated in Project Server 2010 than in Project Server 2007, because Project Server supports a dual interface: ASMX web services and WCF services. Project Server 2007 is "simply" ASMX. Another complication is mixing Windows authentication with Forms authentication, which both use the new Claims infrastructure in SharePoint 2010. For a basic example, take a look at the ASMXLogon_MultiAuth and WCFLogon_MultiAuth samples in the download in Code samples from the Project 2010 SDK webcast.

    Incidentally, the Project 2010 SDK download includes the ProjectServerServices.xml Intellisense file, which works if you compile the ProjectServerServices.dll proxy assembly and put them in the same directory. The source and script to compile are in the download.

    --Jim

    Friday, May 28, 2010 8:05 PM