470 likes | 571 Views
BRK3120. Developer to Developer: Meeting Custom Needs with Microsoft Project. Aesha Shah Dan MacDonald Eli Sheldon. Developing for Microsoft Project. What is Microsoft Project Online Project Server
E N D
BRK3120 Developer to Developer: Meeting Custom Needs with Microsoft Project AeshaShah Dan MacDonald Eli Sheldon
Developing for Microsoft Project What is Microsoft Project Online \ Project Server Microsoft Project Online is a flexible online solution for project portfolio management (PPM) and everyday work. Delivered through Office 365, Project Online enables organizations to get started, prioritize project portfolio investments and deliver the intended business value—from virtually anywhere on nearly any device. Microsoft Project Server 2013 is a flexible on-premises solution for project portfolio management (PPM) and everyday work. Team members, project participants, and business decision makers can get started, prioritize project portfolio investments and deliver the intended business value from virtually anywhere.
Add-ins for SharePoint Aesha Shah Program Manager II Microsoft
Extensibility Model: Past, Present and Future Azure, IIS, LAMP, etc… SharePoint 2010 SharePoint 2007 SharePoint 2013 SharePoint Sandbox SharePoint _api
Overview Cloud Ready Model Project Server Add-ins are SharePoint Add-ins Well defined lifecycle and isolation policies Work on-premises and online with one codebase Can be hosted in SharePoint (JS), Azure (.Net) or anywhere else Web standards based technologies Embracing web technologies including HTML, JavaScript, REST/ODATA 4, Oauth2.0 Add-ins should be simple Designed primarily as light-weight solutions Full-blown solutions can be broken down into functions Acquire add-in from integrated stores Easy to discover 3rd party add-ins and get more done
Hosting SharePoint-Hosted • Build your whole add-in or use SharePoint for list and document storage in autohosted or provider-hosted add-ins. Provider-hosted • Used for add-ins that require the greatest amount of flexibility and scalability and toolset and backend services that cross add-in instances. Hosting options provide the flexibility and scalability your add-in needs
Project Server Add-in Scenarios Custom methodologies and templates Targeted scenarios to specific industries (hospitals, IT, government, etc) Line of Business application integration Automated timesheet data sync with ERP Reporting dashboards and web parts Surface high-level real-time project data with no configuration needed Contextual training content Tutorials and automated wizards
User Experiences Immersive full page (all add-ins) Implement complete app experiences to satisfy business scenarios • Part (optional) • Create parts that can interact with the SharePoint experience • UI custom actions (optional) • Extend existing functionality with new commands
Add-In Launch <?xml version="1.0" encoding="utf-8"?> <App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest" Name="AwesomeCharts" ProductID="{02416182-9d1b-4859-8ebb-560befab1c92}" Version="1.0.0.1" SharePointMinVersion="15.0.0.0"> <Properties> <Title>Awesome Charts</Title> <StartPage>~appWebUrl/Pages/Default.aspx?{StandardTokens}</StartPage> </Properties> <AppPrincipal> <Internal /> </AppPrincipal> <AppPermissionRequests> <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read" /> </AppPermissionRequests> </App>
Part <?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ClientWebPart Title="PayPalTest" Name="PayPal Test" Description="This is a basic app part with custom properties." > <Content Src="~appWebUrl/Pages/ButtonPage.aspx?{StandardTokens}&RemoteAppUrl=~remoteAppUrl&Price=_Price_" Type="html"/> <Properties> <Property Name="Price" Type="string" RequiresDesignerPermission="true" DefaultValue="0" WebCategory="Product Info" WebDisplayName="Product's Price"> </Property> </Properties> </ClientWebPart> </Elements>
Custom Actions <?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <!-- Adds an ECB custom action to a list in the host web site. --> <!-- Create a new custom list and add a new item to it. This custom action will be on the new item's ECB --> <CustomAction Id="3f3fcc26-ace9-48ad-b58c-289131c369cf.HostWebPinAction" RegistrationType="ContentType" RegistrationId="0x01" Location="EditControlBlock" Sequence="100" Title=“PinThis!"> HostWebDialog="true" HostWebDialogHeight="500" HostWebDialogWidth="600" <UrlActionUrl="https://shareboard.azurewebsites.net/Pages/Default.aspx?{StandardTokens}&WebUrl={SiteUrl}&ItemId={ItemId}&ListId={ListId}" /> </CustomAction> </Elements>
Office365 Apis Released ~months ago Restful APIs leveraging oData4.0 and oAuth 2.0 Allow apps to connect to data in any Office365 workload (calendar, mail, oneDrive for Business, contacts, project – coming soon) Leverage Azure AAD as the auth provider to connect to your office365 identity to consume these resources
Integrated Store • End users and teams have access to the add-ins they need to get their job done • IT admins have the right tools and monitoring to empower users to acquire add-ins from the store
Corporate Catalog / Management Install Any Add-in You WantAdd-ins can be installed directly without publishing into the marketplace or going through validation process Catalog of All Your Add-ins All add-ins from marketplace and add-ins installed manually surfaced in one place Manage Permissions and LicensesEasy to distribute to users and to change permissions Visibility into add-in usage by all users
Project Add-ins Eli Sheldon Program Manager II Microsoft
What is an Office Add-in? Office Store or Add-in Catalog Web server Office Add-in = + Manifest (XML) Web page (HTML + JS)
What does an Office Add-in look like? Supported by Project Content Add-in Task Pane Contextual Add-in Adds embedded content / functionality into document Assists user working with one or more documents Detects content and offers additional functionality
Project Add-ins Functionality Read selected task/resource or any task/resource by ID Write back to the project Data/settings persistence through local storage Add-ins are loaded by the user and are not tied to the project plan Specific Project set of APIs: Access to Tasks, Resources, Views, and Project containers getTaskAsync(), getProjectFieldAsync(),setResourceFieldAsync(), getMaxTaskIndexAsync()… Event handlers for task, resource, view changes taskSelectionChanged(), viewSelectionChanged()… Yellow items are new in Project 2016!
Scenarios for Project Add-ins Extended client functionality Scheduling suggestions and automatic fixes based on project management standards Contextual cloud-hosted training determined by views and selection Connect social networking and external business solutions with Project Surface SharePoint and Project Online content directly in the client Enhanced cross-project decision making based on your full portfolio Leverage SharePoint collateral from project sites and team sites Bring Project Online data into Word, Excel, PowerPoint, Outlook
Development Tools Any text editor will do HTML webpages and related JavaScript and CSS files XML manifest file defining locations, permissions and metadata Microsoft Visual Studio provides the best experience Office Add-in tools and templates installed out-of-the-box Allows rich debugging experience – one click to run your add-in in Project with familiar diagnostics and breakpoints Full IntelliSense support for Project Add-ins helps you hit the ground running along with MSDN documentation
Demo: Project Add-in Eli Sheldon
Developer to Developer: Meeting Custom Needs with Microsoft Project Daniel MacDonald Director of Development Sensei Project Solutions
Your Presenter Daniel MacDonald Director of Development, Sensei Project Solutions Past 20 years working with Microsoft development platforms Project Server and Project development Leading Apps Initiative at Sensei Project Solutions
Meeting Custom Needs with Microsoft Project Learning More Resources for Project Development Microsoft Project Online / Project Server Introduction Developing for Microsoft Project CSOM, JSOM and More
Microsoft Project Online \ Project Server Project Portfolio Management (PPM) Microsoft Project Online \ Project Server takes the functionality of Microsoft Project on the Desktop and add features such as prioritize project portfolio investments, resource capacity and demand and time tacking. Parallel Functionality Microsoft Project Server 2013 is a on-premises solution that is deployed within an organization’s own environment. Microsoft Project Online is a flexible cloud solution that reduces much of a effort required to deploy and maintain the PPM environment.
Opportunities Improvements with PPM The reality of projects +37% Strategic Alignment +32% Schedule Performance 68% Challenged or Failed $50B Failed projects in US 2%-5% IT Budget Savings +22% Time to Market 43% Cost Overruns 82% Schedule Overruns
Application Scenarios Microsoft Project Anywhere Sensei Task Master Visibility and Insight Sensei Portfolio Dashboard Project Maintenance Sensei Bulk Update
Interfacing with Project JSOM JavaScript Object Model JavaScript, JQuery SharePoint Hosted SharePoint Add-ins CSOM Client Side Object Model C#, Visual Basic Windows Applications, Provided Hosted SharePoint Add-ins
Project Owner UpdateCSOM Daniel MacDonald
Project Owner UpdateJSOM Daniel MacDonald
Interfacing with Project – Other Methods OData Web Services Project Server Reporting Service - OData <PWA Web URL>\_api\projectdata\Projects Ex. https:\\senseiprojectsolutions.sharepoint.com\sites\pwadev\_api\projectdata\Projects Rest Interface for Project Online <PWA Web URL>\_api\projectservice\Projects Ex. https:\\senseiprojectsolutions.sharepoint.com\sites\pwadev\_api\projectservice\Projects http://<sitecollection>/<site>/_api/ProjectServer/Projects/add(parameters) Project Server Interface - PSI Traditional Method of access Project Server Does not support Project Online
OData – Project Reporting Service Test OData URLs in Browser Get Projects <PWA Web URL>/_api/projectdata/Projects Get Resource <PWA Web URL>/_api/projectdata/Resources Add Options <PWA Web URL>/_api/projectdata/Resources?$select=ResourceId,ResourceName,ResourceEmailAddress&$filter=ResourceIsActiveeq true
Sensei Portfolio Dashboard™ Daniel MacDonald
References Office Dev Center: Main: msdn.microsoft.com/office Apps for Office and SharePoint: msdn.microsoft.com/library/office/fp161507.aspx Project 2013: msdn.microsoft.com/library/office/fp161358.aspx MSDN Forums: Apps for Office and SharePoint: blogs.msdn.com/b/officeapps Project Customization and Programming: social.msdn.microsoft.com/Forums/office/en-US/home?forum=project2010custprog MSDN Blogs: Getting started with app development: blogs.office.com/2013/08/08/getting-started-with-app-development Microsoft Virtual Academy: Courses, Live Events: microsoftvirtualacademy.com
Related Sessions FND2202 Keynote: Office Development matters, and here’s whyBRK3157 Light up mobile apps with Office 365 APIs BRK3199 Supercharging your custom solutions with the Office 365 unified API endpoint
Please evaluate this session Your feedback is important to us! VisitMyigniteathttp://myignite.microsoft.comor download and use the Ignite Mobile Appwith the QR code above.