From 0 to 60 with Project Online
An application developer can customize a Project Online site (SharePoint hosted) using standalone applications and/or Project add-ins. A wealth of applications is possible that range from addressing needs of those involved in a project to PMO support functions, such as any of the following:
- Streamlined timecard data entry for workers
- Efficient timecard approval for supervisors
- Oversight of permits (procurement and status) needed for a project
- Status/Health check of active projects
- Issues report
- Change Management Status report
Project Online includes API support to accommodate the following scenarios:
For a Project (SharePoint) hosted add-in:
- Code (JavaScript, HTML, CSS) that is hosted in SharePoint Online
- Assets that are downloaded to the browser and executed against SharePoint Online.
- Business logic that is in JavaScript
- Access data that is in/stored in Project Online or SharePoint such as (but is not limited to):
- Custom fields
- Lists
For a Project (SharePoint) provider-hosted add-in:
- Code that exists on a site external to the Project Online site
- An external site, which can be (but is not limited to):
- Another SharePoint site
- Web App/Service built on any platform
- The external site contains business logic
- The browser is redirected from Project Online to external site with access tokens to Project Online
- The external site can make calls to SharePoint and Project Online
For an external/standalone add-in:
- User executes an application on their device
- Application authenticates and calls Project Online APIs directly
Type of application | API implementation | Target environment | Application examples |
---|---|---|---|
Project hosted |
JSOM (Java Script Object Model) REST |
Browser |
Timecard entry Timecard approval Project Status Issues Report |
Project Provider Hosted |
CSOM client library |
Azure Website/App Non-Windows environment (LAMP, etc.) |
External timesheet validator Project Importer |
External/Standalone |
REST CSOM |
REST - any platform CSOM - any .NET supported platform |
Timecard entry Migration of projects to a new site Change Management Status. |
What does it take to start developing applications for Project Online?
The common items needed for developing Project Online applications are a Project Online account and test data--projects and project-related information that include assignments, tasks, resources, and custom fields. A development environment is needed as well, but specifics of the development environment depend on the type of application and the API interface needed for the application. The next few sections describe development needs for the three API interfaces.
The reference documentation describes the object model that is common for all three interfaces, as well as an entity map that shows relations among the object model components.
Project hosted add-in development environment
A hosted add-in is an add-in that resides on the server and is downloaded to a browser for runtime execution. Hosted add-ins can use the JSOM or REST interfaces and are written in JavaScript. Project Online provides references to the JSOM library for runtime execution. Assuming development is on a Windows platform, the needed resources follow:
Visual Studio 2015 (preferred) or Visual Studio 2013
Office development tools for Visual Studio
JavaScript language
Visit https://github.com/OfficeDev/Project-JSOM-Copy-Work-Packages for a sample application.
You can download and run the sample in a few easy steps:
Download and open the sample application
Update the SiteURL in the Properties window
Project Online examines both the application scope of the add-in and the user permissions to govern access to information on the Project Online host. If access is explicitly denied in either or both settings, Project Online denies access to the information. Otherwise, access is granted.
Enable sideloading on your site.
Build the project.
Run the project.
Project provider-hosted add-in development environment
Provider hosted add-ins are applications written and residing on any web platform. They can connect and perform data operations using the REST (or CSOM for Microsoft platforms) API. Any language and environment that supports the REST interface can be used for development.
An example of the Windows development environment for this type of application includes the following items:
Visual Studio 2015 (preferred) or Visual Studio 2013
Microsoft Office Development Tools for Visual Studio (supplied with Visual Studio 2015 Professional and Enterprise editions)
.NET Framework 4.0 or newer
SharePointOnline CSOM package (for CSOM calls)
A programming language, such as C#
Visit https://github.com/OfficeDev/Project-Add-in-REST-BasicDataOperations for working sample scripts.
You can run the sample in a few steps:
Download and open the sample application
Update the SiteURL in the Properties window
Project Online examines both the application scope of the add-in and the user permissions to govern access to information on the Project Online host. If access is explicitly denied in either or both settings, Project Online denies access to the information. Otherwise, access is granted.
Enable sideloading on your site.
Build the project.
Run the project.
External/standalone application development environment
A standalone application can call Project Online using the Client Side Object Model (CSOM) or REST to communicate with Project Online to create, retrieve, update, and delete information residing on the server. This is a standalone client application that depends on the user access level to run.
An example of the Windows development environment for this type of application includes the following items:
Visual Studio 2015 (preferred) or Visual Studio 2013
Microsoft Office Development Tools for Visual Studio (supplied with Visual Studio 2015 Professional and Enterprise editions)
.NET Framework 4.0 or newer
SharePointOnline CSOM package (for CSOM calls)
A programming language, such as C#
Visit https://github.com/OfficeDev/Project-CSOM-Read-Enterprise-CustomFields for a sample application.
You can run the sample in a few steps:
Download the sample application
Make a couple of changes to access your Project Online siteāthe site name, user account, and password.
Ensure the user has access to all projects. Project Online uses user permissions to govern access to information in the data store.
Add the SharePoint assembly to the references using the Nuget Package Manager Console, available from the Tools menu by typing the following in the Nuget console:
Install-Package Microsoft.SharePointOnline.CSOM
Build the project.
Run the project.
Next steps
Each sample application has an article to explain the highlights of working with the individual Project API. The articles appear in the following list, along with a few articles that describe the entity relationships, information on the query system, and accessing Custom Fields.
Developing a Project Online Application Using the Client-side Object Model
Developing a Project Online add-in using the JavaScript Object Model (JSOM)
See also
For documentation and samples related to Project Online and application development using CSOM, see the Project Development Portal.