SlideShare une entreprise Scribd logo
1  sur  41
05-04-2013 Ottawa IT Camp 2013 – By Devs, For Devs!
Introduction to Developing and Deploying Apps
for Microsoft SharePoint and Office 2013
Antonio Maio
Senior Product Manager, TITUS
Microsoft SharePoint Server MVP
@AntonioMaio2 www.trustsharepoint.com
antonio.maio@titus.com
 Introduction
 The New App Model – What is it? Why?
 Platform Goals, Programming Model & Technologies
 Capability Comparison
 Office Applications, SharePoint Models
 Developing Office 2013 Apps
 Manifest, JavaScript API Examples
 Deployment Options
 Developing SharePoint 2013 Apps
 Manifest, JavaScript API Examples
 Deployment Options
2Ottawa Code Camp 2009
 New First-Class Microsoft Development Platform
 Purpose: Allow 3rd parties to build custom applications,
capabilities, features that integrate closely with Microsoft
Platforms like:
 Microsoft Office 2013, SharePoint 2013
 Windows 8
 Windows Phone 8
 Why?
4
 Standard Web Technologies
 Cross-Device Ready
 Integrate rich web content with Office content
 Include contextual content within apps for Office
Pre-Office 2013
Extending
Office Ribbon COM Add-In
Macro VSTO
Office 2013
Extending
Office Ribbon COM Add-In
Macro VSTO
App for
Office
Document
Template
App for
SharePoint
Deployment Options
On-Premise Farm
Installation
Office 365 &
SharePoint Online
Hosted Installation
Development Options
Full-Trust Solution
SharePoint-Hosted App
Provider-Hosted App
Azure Auto-Hosted App
Development Tools
Web Browser (NAPA)
SharePoint Designer
2013
Visual Studio 2012
Eclipse, LAMP, Etc.
 Use web content & standard web technologies like HTML5, XML, CSS3,
JavaScript, JQuery, and REST APIs
 Insert an App into a Document
 Cross-Platform – Write Once, Run Everywhere
 Asynchronous Programming Pattern used Heavily – JavaScript API
8
• Apps are saved within the document
• Pre-populating a document with an App requires a new Document Template
App for OfficeApp manifest
<XML>
Web page
HTML + JavaScript
Pre-Office 2013 Development
Extending Office Ribbon
COM Add-In
Macro
VSTO
Office 2013 Web Apps
Task Pane app
Content app
Mail app
Office 2013 Desktop Apps
Task Pane app
Content app
Mail app
Functional area Word Excel/Excel WAC PowerPoint Outlook/OWA Project
Set/Get Data as text,
table, matrix
Set/Get Data as
Html, ooxml
Get whole doc
Bindings
Custom XML Parts
Settings
App Specific API
* *
* Only supportText format
App for OfficeApp manifest
<XML>
Web page
HTML + JavaScript
<?xml version="1.0" encoding="utf-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0"
xsi:type="ContentApp">
<Id>df5b5660-84ce-11e1-b0c4-0800200c9a66</Id>
<AlternateId>en-USWA123456789</AlternateId>
<Version>1.0.0.0</Version>
<ProviderName>Microsoft</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Sample content app" />
<Description DefaultValue="Describe the features of this app." />
<IconUrl DefaultValue="http://contoso.com/ENUSIcon.png" />
<Capabilities>
<Capability Name="Workbook" />
</Capabilities>
<DefaultSettings>
<SourceLocation DefaultValue="http://contoso.com/apps/content.html" />
<RequestedWidth>400</RequestedWidth>
<RequestedHeight>400</RequestedHeight>
</DefaultSettings>
<Permissions>Restricted</Permissions>
</OfficeApp>
<?xml version="1.0" encoding="utf-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0"
xsi:type="ContentApp">
<Id>df5b5660-84ce-11e1-b0c4-0800200c9a66</Id>
<AlternateId>en-USWA123456789</AlternateId>
<Version>1.0.0.0</Version>
<ProviderName>Microsoft</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Sample content app" />
<Description DefaultValue="Describe the features of this app." />
<IconUrl DefaultValue="http://contoso.com/ENUSIcon.png" />
<Capabilities>
<Capability Name="Workbook" />
</Capabilities>
<DefaultSettings>
<SourceLocation DefaultValue="http://contoso.com/apps/content.html" />
<RequestedWidth>400</RequestedWidth>
<RequestedHeight>400</RequestedHeight>
</DefaultSettings>
<Permissions>Restricted</Permissions>
</OfficeApp>
Basic App description
values like: ID, Version,
Provider, Locale, Display
Name, Description, Icon.
<?xml version="1.0" encoding="utf-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0"
xsi:type="ContentApp">
<Id>df5b5660-84ce-11e1-b0c4-0800200c9a66</Id>
<AlternateId>en-USWA123456789</AlternateId>
<Version>1.0.0.0</Version>
<ProviderName>Microsoft</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Sample content app" />
<Description DefaultValue="Describe the features of this app." />
<IconUrl DefaultValue="http://contoso.com/ENUSIcon.png" />
<Capabilities>
<Capability Name="Workbook" />
</Capabilities>
<DefaultSettings>
<SourceLocation DefaultValue="http://contoso.com/apps/content.html" />
<RequestedWidth>400</RequestedWidth>
<RequestedHeight>400</RequestedHeight>
</DefaultSettings>
<Permissions>Restricted</Permissions>
</OfficeApp>
<Capabilities>
Workbook
Document
Project
Presentation
<?xml version="1.0" encoding="utf-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0"
xsi:type="ContentApp">
<Id>df5b5660-84ce-11e1-b0c4-0800200c9a66</Id>
<AlternateId>en-USWA123456789</AlternateId>
<Version>1.0.0.0</Version>
<ProviderName>Microsoft</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Sample content app" />
<Description DefaultValue="Describe the features of this app." />
<IconUrl DefaultValue="http://contoso.com/ENUSIcon.png" />
<Capabilities>
<Capability Name="Workbook" />
</Capabilities>
<DefaultSettings>
<SourceLocation DefaultValue="http://contoso.com/apps/content.html" />
<RequestedWidth>400</RequestedWidth>
<RequestedHeight>400</RequestedHeight>
</DefaultSettings>
<Permissions>Restricted</Permissions>
</OfficeApp>
<DefaultSettings>
Width and Height of Page
URL of App UI Page
Can have default URL and
different URLs per locale.
<?xml version="1.0" encoding="utf-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0"
xsi:type="ContentApp">
<Id>df5b5660-84ce-11e1-b0c4-0800200c9a66</Id>
<AlternateId>en-USWA123456789</AlternateId>
<Version>1.0.0.0</Version>
<ProviderName>Microsoft</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Sample content app" />
<Description DefaultValue="Describe the features of this app." />
<IconUrl DefaultValue="http://contoso.com/ENUSIcon.png" />
<Capabilities>
<Capability Name="Workbook" />
</Capabilities>
<DefaultSettings>
<SourceLocation DefaultValue="http://contoso.com/apps/content.html" />
<RequestedWidth>400</RequestedWidth>
<RequestedHeight>400</RequestedHeight>
</DefaultSettings>
<Permissions>Restricted</Permissions>
</OfficeApp>
For TaskPane and Content:
Restricted
WriteDocument
ReadDocument
ReadWriteDocument
For TaskPane only:
ReadAllDocument
For Mail only:
ReadItem
ReadWriteMailbox
App for OfficeApp manifest
<XML>
Web page
HTML + JavaScript
Example API Signature
Office.context.document.setSelectedDataAsync(data, [options], callback);
function setData(data)
{
var options = {coercionType: Office.CoercionType.Text };
Office.context.document.setSelectedDataAsync(data, options);
}
function getFileData(elementID) {
Office.context.document.getFileAsync(Office.FileType.Text,function(asyncResult) {
if(asyncResult.status == ‘succeeded’) {
var myFile = asyncResult.value;
$(elementId).val(myFile.size);
}
});
}
//Test for an object in the host application
if (Office.context.document.settings)
{
//Make use of the settings object
}
else
{
//use some other technique for saving custom properties, like
//localStorage, sessionStorage or cookies
{
 Several options available for public or internal deployment:
 Office Store (Microsoft Market Place)
 Apps for Office Catalog on SharePoint
 Exchange Catalog
 Network Shared Folder App Catalog
26
 SharePoint apps do not “live” on the SharePoint server
 Custom code executes in the client, cloud or on premise
 Apps are granted permissions to SharePoint via OAuth
 Apps communicate with SharePoint via OData / CSOM
 Acquire apps via centralized location
 App Catalog
 Public Store (via submission process)
 APIs for manual deployment
 Full Trust Solutions
 Introduced in SharePoint 2007
 Hosted in the same process as SharePoint
 Full server-side SharePoint API access
 Sandbox Solutions (Deprecated)
 For existing SharePoint 2010 solutions only
 SharePoint App Model
 Introduced in SharePoint 2013
 Provides for highest level of app isolation
 Much cleaner & simpler install & upgrade process
 New SharePoint App Model is the preferred route for
building app scenarios
 Provides most flexibility in development technologies, capabilities &
infrastructure choices
 Provides highest level of process, user & data isolation
 Full-trust solutions ideal for:
 Deep customizations to SharePoint
 Provisioning custom master pages, page layouts,
branding assets
 Deploying advanced administration scenarios
We do not yet have API parity yet between Full Trust and Apps
 A web application
 Registered with SharePoint using an App Manifest
 Within SharePoint Apps are contained within an
iframe
 Contains the Content for apps
 Ribbon and Context menu extensions are also available
<?xml version="1.0" encoding="utf-8" ?>
<App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest
(http://schemas.microsoft.com/sharepoint/2012/app/manifest)"
ProductID="{5eccee90-1e41-4ecc-af8c-485facb5c188}"
Version="1.0.0.0"
SharePointMinVersion="15.0.0.0"
Name=“CreateFieldsAndViews">
<Properties>
<Title>Create Fields and Views</Title>
<StartPage>https://localhost:44303/Default.aspx/?{StandardTokens}
</StartPage>
</Properties>
<AppPrincipal>
<RemoteWebApplication ClientId="ca81d876-8525-44a8-8a60-e02ee79a4a6e"/>
</AppPrincipal>
</App>
function sharePointReady() {
context = new SP.ClientContext.get_current();
web = context.get_web();
$("#createFieldButton").click(function () {
var fieldName = $("#fieldName").val();
createField(fieldName);
});
$("#createViewButton").click(function () {
var fieldName = $("#fieldName").val();
var viewName = $("#viewName").val();
createView(viewName, fieldName);
});
}
35
function createView(viewName, fieldName) {
spHostUrl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
rootClientContext = new SP.ClientContext(spHostUrl);
list = rootClientContext.get_web().get_lists().getByTitle($("#listName").val());
var viewCreationInformation = new SP.ViewCreationInformation();
viewCreationInformation.set_title(viewName);
var viewType = new SP.ViewType();
viewCreationInformation.set_viewTypeKind(viewType.html)
view = list.get_views().add(viewCreationInformation);
view.set_jsLink("viewtemplate.js");
view.get_viewFields().add("Field");
view.update();
rootClientContext.load(view);
rootClientContext.executeQueryAsync(
Function.createDelegate(this, this.onCreateViewSucceeded),
Function.createDelegate(this, this.onCreateViewFailed)
);
}
36
App for SharePoint
App for
Office
Rich Web content YouTube Video,
Photo Gallery
Data Visualization,
Analysis & Mashups
Maps, Custom
charts, Lookups
Reference Tools Translation, Definitions,
Dictionary, Help, Research
Content Authoring &
Publishing
Contextual
Content & Services
Workflow and
Collaboration
Doc builders,
Print
services
Business data lookup (CRM),
Contextual forms (surveys)
Project tracking,
Coauthoring
Content Authoring Resumes,
Contracts
Dashboards Data Analysis,
Data Mashups
Forms &
Reports
Legal Forms,
Financial Reports
Business Processes Sales & Marketing,
Finance, HR
Team Collaboration Content & Project
Management
Workflow Document Approval,
Expenses
Document Template
App for
Office
App for
Office
App for
Office
App for
Office
Document Template
App for
Office
App for
Office
App for
Office
App for
Office
SharePoint Solution
(*.wsp)
App for SharePoint
(*.app)
Farm Solution Implement custom branding & UX
Custom administration tools
Sandbox Solution Workflow automating business process
available to entire site
Custom site, list, & library templates
SharePoint-Hosted App Expense calculator
Holiday request
Provider-Hosted App Event registration management
Help desk support
Azure Auto-Hosted
App
Product defect tracking database
 My Blog: www.TrustSharePoint.com for this presentation
 Office Developer Center: http://dev.office.com
 JavaScript API Wall Poser: http://www.microsoft.com/en-
us/download/confirmation.aspx?id=36850
 Reference for SharePoint App Manifest: http://msdn.microsoft.com/en-
US/library/office/apps/jj992004
 JavaScript API for Office Reference: http://msdn.microsoft.com/en-
us/library/fp142185.aspx
 JavaScript API for SharePoint Reference: http://msdn.microsoft.com/en-
us/library/jj193034.aspx
 Q&A?
 Source Code
 Available online at CodePlex
 http://ottawacodecamp.codeplex.com/
 Downloads
 Each year’s source code in one easily download
 Evals = Prize Draws
 Sessions Evals = book draws!
 Event Evals
 LOTS of great things, make sure you’re there to win!
 Thank you!
41Ottawa Code Camp 2009

Contenu connexe

Tendances

Jollgin_SharePoint
Jollgin_SharePointJollgin_SharePoint
Jollgin_SharePoint
jollgin sam
 
Microsoft Office Web Apps Server - Deployment Simplified
Microsoft Office Web Apps Server - Deployment SimplifiedMicrosoft Office Web Apps Server - Deployment Simplified
Microsoft Office Web Apps Server - Deployment Simplified
David J Rosenthal
 
Streamlining Business Processes with InfoPath and SharePoint
Streamlining Business Processes with InfoPath and SharePointStreamlining Business Processes with InfoPath and SharePoint
Streamlining Business Processes with InfoPath and SharePoint
Rob Wilson
 
SharePoint Saturday Indy - Streamlining Business Processes with InfoPath and ...
SharePoint Saturday Indy - Streamlining Business Processes with InfoPath and ...SharePoint Saturday Indy - Streamlining Business Processes with InfoPath and ...
SharePoint Saturday Indy - Streamlining Business Processes with InfoPath and ...
Rob Wilson
 
WKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationWKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development Presentation
Rob Wilson
 

Tendances (20)

Moodle integration with microsoft office 365 by enovation
Moodle integration with microsoft office 365 by enovationMoodle integration with microsoft office 365 by enovation
Moodle integration with microsoft office 365 by enovation
 
Intro apps
Intro appsIntro apps
Intro apps
 
Jollgin_SharePoint
Jollgin_SharePointJollgin_SharePoint
Jollgin_SharePoint
 
Microsoft Office Web Apps Server - Deployment Simplified
Microsoft Office Web Apps Server - Deployment SimplifiedMicrosoft Office Web Apps Server - Deployment Simplified
Microsoft Office Web Apps Server - Deployment Simplified
 
Streamlining Business Processes with InfoPath and SharePoint
Streamlining Business Processes with InfoPath and SharePointStreamlining Business Processes with InfoPath and SharePoint
Streamlining Business Processes with InfoPath and SharePoint
 
Office 365 development
Office 365 developmentOffice 365 development
Office 365 development
 
When to Develop on a Platform (IndyTechFest 2008)
When to Develop on a Platform (IndyTechFest 2008)When to Develop on a Platform (IndyTechFest 2008)
When to Develop on a Platform (IndyTechFest 2008)
 
SharePoint Saturday Indy - Streamlining Business Processes with InfoPath and ...
SharePoint Saturday Indy - Streamlining Business Processes with InfoPath and ...SharePoint Saturday Indy - Streamlining Business Processes with InfoPath and ...
SharePoint Saturday Indy - Streamlining Business Processes with InfoPath and ...
 
Dev day paris020415
Dev day paris020415Dev day paris020415
Dev day paris020415
 
Workflow in SharePoint 2010
Workflow in SharePoint 2010Workflow in SharePoint 2010
Workflow in SharePoint 2010
 
Getting started with office 365 add ins development 3 may 2018 - v2
Getting started with office 365 add ins development 3 may 2018 - v2Getting started with office 365 add ins development 3 may 2018 - v2
Getting started with office 365 add ins development 3 may 2018 - v2
 
Webinar getting started with office 365 add ins development 5 may 2018
Webinar getting started with office 365 add ins development 5 may 2018Webinar getting started with office 365 add ins development 5 may 2018
Webinar getting started with office 365 add ins development 5 may 2018
 
SharePoint Add-Ins - Brief Overview
SharePoint Add-Ins - Brief OverviewSharePoint Add-Ins - Brief Overview
SharePoint Add-Ins - Brief Overview
 
FormADF app overview
FormADF app overviewFormADF app overview
FormADF app overview
 
Power apps portal out for public review
Power apps portal  out for public reviewPower apps portal  out for public review
Power apps portal out for public review
 
WKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationWKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development Presentation
 
Sharepoint2
Sharepoint2Sharepoint2
Sharepoint2
 
Oracle Web ADI Implementation Steps
Oracle Web ADI Implementation StepsOracle Web ADI Implementation Steps
Oracle Web ADI Implementation Steps
 
SharePoint and Office 365 Data Compliance Made Easy: Site Classifications, La...
SharePoint and Office 365 Data Compliance Made Easy: Site Classifications, La...SharePoint and Office 365 Data Compliance Made Easy: Site Classifications, La...
SharePoint and Office 365 Data Compliance Made Easy: Site Classifications, La...
 
Hands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.comHands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.com
 

Similaire à Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013

SharePoint 2010 and its development tools
SharePoint 2010 and its development toolsSharePoint 2010 and its development tools
SharePoint 2010 and its development tools
Shakir Majeed Khan
 
Office appsbiwugpresentation
Office appsbiwugpresentationOffice appsbiwugpresentation
Office appsbiwugpresentation
BIWUG
 
Chris givens building custom service applications
Chris givens building custom service applicationsChris givens building custom service applications
Chris givens building custom service applications
Chris Givens
 
CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Development
ryanaoliveira
 

Similaire à Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013 (20)

SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan SchoutenSharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thing
 
Using office add ins to solve business problems-SharePoint Saturday Redmond 2015
Using office add ins to solve business problems-SharePoint Saturday Redmond 2015Using office add ins to solve business problems-SharePoint Saturday Redmond 2015
Using office add ins to solve business problems-SharePoint Saturday Redmond 2015
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
 
Apps für SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)
Apps für SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)Apps für SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)
Apps für SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)
 
SPCA2013 - Once you go app you don't go back
SPCA2013 - Once you go app you don't go backSPCA2013 - Once you go app you don't go back
SPCA2013 - Once you go app you don't go back
 
sps-2013-architecture-overview.pdf
sps-2013-architecture-overview.pdfsps-2013-architecture-overview.pdf
sps-2013-architecture-overview.pdf
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
Developing apps for share point 2013
Developing apps for share point 2013Developing apps for share point 2013
Developing apps for share point 2013
 
What's new in SharePoint Server 2013 (End user - Admin – Developer)
What's new in SharePoint Server 2013 (End user - Admin – Developer)What's new in SharePoint Server 2013 (End user - Admin – Developer)
What's new in SharePoint Server 2013 (End user - Admin – Developer)
 
W8/WP8 App Dev for SAP, Part 2: Microsoft OData Application Development
W8/WP8 App Dev for SAP, Part 2: Microsoft OData Application DevelopmentW8/WP8 App Dev for SAP, Part 2: Microsoft OData Application Development
W8/WP8 App Dev for SAP, Part 2: Microsoft OData Application Development
 
O365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionO365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in action
 
SharePoint 2010 and its development tools
SharePoint 2010 and its development toolsSharePoint 2010 and its development tools
SharePoint 2010 and its development tools
 
Office appsbiwugpresentation
Office appsbiwugpresentationOffice appsbiwugpresentation
Office appsbiwugpresentation
 
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 
Chris givens building custom service applications
Chris givens building custom service applicationsChris givens building custom service applications
Chris givens building custom service applications
 
CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Development
 
Getting Started with Office 365 Development
Getting Started with Office 365 DevelopmentGetting Started with Office 365 Development
Getting Started with Office 365 Development
 
Relearning SharePoint Development
Relearning SharePoint DevelopmentRelearning SharePoint Development
Relearning SharePoint Development
 

Plus de AntonioMaio2

Identity management challenges when moving share point to the cloud antonio...
Identity management challenges when moving share point to the cloud   antonio...Identity management challenges when moving share point to the cloud   antonio...
Identity management challenges when moving share point to the cloud antonio...
AntonioMaio2
 
A Practical Guide Information Governance with Microsoft SharePoint 2013
A Practical Guide Information Governance with Microsoft SharePoint 2013A Practical Guide Information Governance with Microsoft SharePoint 2013
A Practical Guide Information Governance with Microsoft SharePoint 2013
AntonioMaio2
 

Plus de AntonioMaio2 (20)

Introduction to Microsoft Enterprise Mobility + Security
Introduction to Microsoft Enterprise Mobility + SecurityIntroduction to Microsoft Enterprise Mobility + Security
Introduction to Microsoft Enterprise Mobility + Security
 
Learn how to protect against and recover from data breaches in Office 365
Learn how to protect against and recover from data breaches in Office 365Learn how to protect against and recover from data breaches in Office 365
Learn how to protect against and recover from data breaches in Office 365
 
A beginners guide to administering office 365 with power shell antonio maio
A beginners guide to administering office 365 with power shell   antonio maioA beginners guide to administering office 365 with power shell   antonio maio
A beginners guide to administering office 365 with power shell antonio maio
 
Office 365 Security - MacGyver, Ninja or Swat team
Office 365 Security -  MacGyver, Ninja or Swat teamOffice 365 Security -  MacGyver, Ninja or Swat team
Office 365 Security - MacGyver, Ninja or Swat team
 
Information security in office 365 a shared responsibility - antonio maio
Information security in office 365   a shared responsibility - antonio maioInformation security in office 365   a shared responsibility - antonio maio
Information security in office 365 a shared responsibility - antonio maio
 
SharePoint Saturday Ottawa - How secure is my data in office 365?
SharePoint Saturday Ottawa - How secure is my data in office 365?SharePoint Saturday Ottawa - How secure is my data in office 365?
SharePoint Saturday Ottawa - How secure is my data in office 365?
 
Office 365 security new innovations from microsoft ignite - antonio maio
Office 365 security   new innovations from microsoft ignite - antonio maioOffice 365 security   new innovations from microsoft ignite - antonio maio
Office 365 security new innovations from microsoft ignite - antonio maio
 
Real world SharePoint information governance a case study - published
Real world SharePoint information governance a case study - publishedReal world SharePoint information governance a case study - published
Real world SharePoint information governance a case study - published
 
Overcoming Security Threats and Vulnerabilities in SharePoint
Overcoming Security Threats and Vulnerabilities in SharePointOvercoming Security Threats and Vulnerabilities in SharePoint
Overcoming Security Threats and Vulnerabilities in SharePoint
 
What’s new in SharePoint 2016!
What’s new in SharePoint 2016!What’s new in SharePoint 2016!
What’s new in SharePoint 2016!
 
Data Visualization in SharePoint and Office 365
Data Visualization in SharePoint and Office 365Data Visualization in SharePoint and Office 365
Data Visualization in SharePoint and Office 365
 
Hybrid Identity Management with SharePoint and Office 365 - Antonio Maio
Hybrid Identity Management with SharePoint and Office 365 - Antonio MaioHybrid Identity Management with SharePoint and Office 365 - Antonio Maio
Hybrid Identity Management with SharePoint and Office 365 - Antonio Maio
 
Developing custom claim providers to enable authorization in share point an...
Developing custom claim providers to enable authorization in share point   an...Developing custom claim providers to enable authorization in share point   an...
Developing custom claim providers to enable authorization in share point an...
 
Identity management challenges when moving share point to the cloud antonio...
Identity management challenges when moving share point to the cloud   antonio...Identity management challenges when moving share point to the cloud   antonio...
Identity management challenges when moving share point to the cloud antonio...
 
A Practical Guide Information Governance with Microsoft SharePoint 2013
A Practical Guide Information Governance with Microsoft SharePoint 2013A Practical Guide Information Governance with Microsoft SharePoint 2013
A Practical Guide Information Governance with Microsoft SharePoint 2013
 
Best practices for security and governance in share point 2013 published
Best practices for security and governance in share point 2013   publishedBest practices for security and governance in share point 2013   published
Best practices for security and governance in share point 2013 published
 
Keeping SharePoint Always On
Keeping SharePoint Always OnKeeping SharePoint Always On
Keeping SharePoint Always On
 
How Claims is Changing the Way We Authenticate and Authorize in SharePoint
How Claims is Changing the Way We Authenticate and Authorize in SharePointHow Claims is Changing the Way We Authenticate and Authorize in SharePoint
How Claims is Changing the Way We Authenticate and Authorize in SharePoint
 
Best practices for Security and Governance in SharePoint 2013
Best practices for Security and Governance in SharePoint 2013Best practices for Security and Governance in SharePoint 2013
Best practices for Security and Governance in SharePoint 2013
 
SPTechCon Boston 2013 - Introduction to Security in Microsoft Sharepoint 2013...
SPTechCon Boston 2013 - Introduction to Security in Microsoft Sharepoint 2013...SPTechCon Boston 2013 - Introduction to Security in Microsoft Sharepoint 2013...
SPTechCon Boston 2013 - Introduction to Security in Microsoft Sharepoint 2013...
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Intro to Develop and Deploy Apps for Microsoft SharePoint and Office 2013

  • 1. 05-04-2013 Ottawa IT Camp 2013 – By Devs, For Devs! Introduction to Developing and Deploying Apps for Microsoft SharePoint and Office 2013 Antonio Maio Senior Product Manager, TITUS Microsoft SharePoint Server MVP @AntonioMaio2 www.trustsharepoint.com antonio.maio@titus.com
  • 2.  Introduction  The New App Model – What is it? Why?  Platform Goals, Programming Model & Technologies  Capability Comparison  Office Applications, SharePoint Models  Developing Office 2013 Apps  Manifest, JavaScript API Examples  Deployment Options  Developing SharePoint 2013 Apps  Manifest, JavaScript API Examples  Deployment Options 2Ottawa Code Camp 2009
  • 3.
  • 4.  New First-Class Microsoft Development Platform  Purpose: Allow 3rd parties to build custom applications, capabilities, features that integrate closely with Microsoft Platforms like:  Microsoft Office 2013, SharePoint 2013  Windows 8  Windows Phone 8  Why? 4
  • 5.  Standard Web Technologies  Cross-Device Ready  Integrate rich web content with Office content  Include contextual content within apps for Office Pre-Office 2013 Extending Office Ribbon COM Add-In Macro VSTO Office 2013 Extending Office Ribbon COM Add-In Macro VSTO App for Office Document Template App for SharePoint
  • 6. Deployment Options On-Premise Farm Installation Office 365 & SharePoint Online Hosted Installation Development Options Full-Trust Solution SharePoint-Hosted App Provider-Hosted App Azure Auto-Hosted App Development Tools Web Browser (NAPA) SharePoint Designer 2013 Visual Studio 2012 Eclipse, LAMP, Etc.
  • 7.
  • 8.  Use web content & standard web technologies like HTML5, XML, CSS3, JavaScript, JQuery, and REST APIs  Insert an App into a Document  Cross-Platform – Write Once, Run Everywhere  Asynchronous Programming Pattern used Heavily – JavaScript API 8 • Apps are saved within the document • Pre-populating a document with an App requires a new Document Template
  • 9. App for OfficeApp manifest <XML> Web page HTML + JavaScript
  • 10.
  • 11.
  • 12.
  • 13. Pre-Office 2013 Development Extending Office Ribbon COM Add-In Macro VSTO Office 2013 Web Apps Task Pane app Content app Mail app Office 2013 Desktop Apps Task Pane app Content app Mail app
  • 14. Functional area Word Excel/Excel WAC PowerPoint Outlook/OWA Project Set/Get Data as text, table, matrix Set/Get Data as Html, ooxml Get whole doc Bindings Custom XML Parts Settings App Specific API * * * Only supportText format
  • 15.
  • 16. App for OfficeApp manifest <XML> Web page HTML + JavaScript
  • 17. <?xml version="1.0" encoding="utf-8"?> <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0" xsi:type="ContentApp"> <Id>df5b5660-84ce-11e1-b0c4-0800200c9a66</Id> <AlternateId>en-USWA123456789</AlternateId> <Version>1.0.0.0</Version> <ProviderName>Microsoft</ProviderName> <DefaultLocale>en-US</DefaultLocale> <DisplayName DefaultValue="Sample content app" /> <Description DefaultValue="Describe the features of this app." /> <IconUrl DefaultValue="http://contoso.com/ENUSIcon.png" /> <Capabilities> <Capability Name="Workbook" /> </Capabilities> <DefaultSettings> <SourceLocation DefaultValue="http://contoso.com/apps/content.html" /> <RequestedWidth>400</RequestedWidth> <RequestedHeight>400</RequestedHeight> </DefaultSettings> <Permissions>Restricted</Permissions> </OfficeApp>
  • 18. <?xml version="1.0" encoding="utf-8"?> <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0" xsi:type="ContentApp"> <Id>df5b5660-84ce-11e1-b0c4-0800200c9a66</Id> <AlternateId>en-USWA123456789</AlternateId> <Version>1.0.0.0</Version> <ProviderName>Microsoft</ProviderName> <DefaultLocale>en-US</DefaultLocale> <DisplayName DefaultValue="Sample content app" /> <Description DefaultValue="Describe the features of this app." /> <IconUrl DefaultValue="http://contoso.com/ENUSIcon.png" /> <Capabilities> <Capability Name="Workbook" /> </Capabilities> <DefaultSettings> <SourceLocation DefaultValue="http://contoso.com/apps/content.html" /> <RequestedWidth>400</RequestedWidth> <RequestedHeight>400</RequestedHeight> </DefaultSettings> <Permissions>Restricted</Permissions> </OfficeApp> Basic App description values like: ID, Version, Provider, Locale, Display Name, Description, Icon.
  • 19. <?xml version="1.0" encoding="utf-8"?> <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0" xsi:type="ContentApp"> <Id>df5b5660-84ce-11e1-b0c4-0800200c9a66</Id> <AlternateId>en-USWA123456789</AlternateId> <Version>1.0.0.0</Version> <ProviderName>Microsoft</ProviderName> <DefaultLocale>en-US</DefaultLocale> <DisplayName DefaultValue="Sample content app" /> <Description DefaultValue="Describe the features of this app." /> <IconUrl DefaultValue="http://contoso.com/ENUSIcon.png" /> <Capabilities> <Capability Name="Workbook" /> </Capabilities> <DefaultSettings> <SourceLocation DefaultValue="http://contoso.com/apps/content.html" /> <RequestedWidth>400</RequestedWidth> <RequestedHeight>400</RequestedHeight> </DefaultSettings> <Permissions>Restricted</Permissions> </OfficeApp> <Capabilities> Workbook Document Project Presentation
  • 20. <?xml version="1.0" encoding="utf-8"?> <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0" xsi:type="ContentApp"> <Id>df5b5660-84ce-11e1-b0c4-0800200c9a66</Id> <AlternateId>en-USWA123456789</AlternateId> <Version>1.0.0.0</Version> <ProviderName>Microsoft</ProviderName> <DefaultLocale>en-US</DefaultLocale> <DisplayName DefaultValue="Sample content app" /> <Description DefaultValue="Describe the features of this app." /> <IconUrl DefaultValue="http://contoso.com/ENUSIcon.png" /> <Capabilities> <Capability Name="Workbook" /> </Capabilities> <DefaultSettings> <SourceLocation DefaultValue="http://contoso.com/apps/content.html" /> <RequestedWidth>400</RequestedWidth> <RequestedHeight>400</RequestedHeight> </DefaultSettings> <Permissions>Restricted</Permissions> </OfficeApp> <DefaultSettings> Width and Height of Page URL of App UI Page Can have default URL and different URLs per locale.
  • 21. <?xml version="1.0" encoding="utf-8"?> <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0" xsi:type="ContentApp"> <Id>df5b5660-84ce-11e1-b0c4-0800200c9a66</Id> <AlternateId>en-USWA123456789</AlternateId> <Version>1.0.0.0</Version> <ProviderName>Microsoft</ProviderName> <DefaultLocale>en-US</DefaultLocale> <DisplayName DefaultValue="Sample content app" /> <Description DefaultValue="Describe the features of this app." /> <IconUrl DefaultValue="http://contoso.com/ENUSIcon.png" /> <Capabilities> <Capability Name="Workbook" /> </Capabilities> <DefaultSettings> <SourceLocation DefaultValue="http://contoso.com/apps/content.html" /> <RequestedWidth>400</RequestedWidth> <RequestedHeight>400</RequestedHeight> </DefaultSettings> <Permissions>Restricted</Permissions> </OfficeApp> For TaskPane and Content: Restricted WriteDocument ReadDocument ReadWriteDocument For TaskPane only: ReadAllDocument For Mail only: ReadItem ReadWriteMailbox
  • 22. App for OfficeApp manifest <XML> Web page HTML + JavaScript
  • 23. Example API Signature Office.context.document.setSelectedDataAsync(data, [options], callback); function setData(data) { var options = {coercionType: Office.CoercionType.Text }; Office.context.document.setSelectedDataAsync(data, options); } function getFileData(elementID) { Office.context.document.getFileAsync(Office.FileType.Text,function(asyncResult) { if(asyncResult.status == ‘succeeded’) { var myFile = asyncResult.value; $(elementId).val(myFile.size); } }); }
  • 24.
  • 25. //Test for an object in the host application if (Office.context.document.settings) { //Make use of the settings object } else { //use some other technique for saving custom properties, like //localStorage, sessionStorage or cookies {
  • 26.  Several options available for public or internal deployment:  Office Store (Microsoft Market Place)  Apps for Office Catalog on SharePoint  Exchange Catalog  Network Shared Folder App Catalog 26
  • 27.
  • 28.  SharePoint apps do not “live” on the SharePoint server  Custom code executes in the client, cloud or on premise  Apps are granted permissions to SharePoint via OAuth  Apps communicate with SharePoint via OData / CSOM  Acquire apps via centralized location  App Catalog  Public Store (via submission process)  APIs for manual deployment
  • 29.  Full Trust Solutions  Introduced in SharePoint 2007  Hosted in the same process as SharePoint  Full server-side SharePoint API access  Sandbox Solutions (Deprecated)  For existing SharePoint 2010 solutions only  SharePoint App Model  Introduced in SharePoint 2013  Provides for highest level of app isolation  Much cleaner & simpler install & upgrade process
  • 30.  New SharePoint App Model is the preferred route for building app scenarios  Provides most flexibility in development technologies, capabilities & infrastructure choices  Provides highest level of process, user & data isolation  Full-trust solutions ideal for:  Deep customizations to SharePoint  Provisioning custom master pages, page layouts, branding assets  Deploying advanced administration scenarios We do not yet have API parity yet between Full Trust and Apps
  • 31.  A web application  Registered with SharePoint using an App Manifest  Within SharePoint Apps are contained within an iframe  Contains the Content for apps  Ribbon and Context menu extensions are also available
  • 32.
  • 33.
  • 34. <?xml version="1.0" encoding="utf-8" ?> <App xmlns="http://schemas.microsoft.com/sharepoint/2012/app/manifest (http://schemas.microsoft.com/sharepoint/2012/app/manifest)" ProductID="{5eccee90-1e41-4ecc-af8c-485facb5c188}" Version="1.0.0.0" SharePointMinVersion="15.0.0.0" Name=“CreateFieldsAndViews"> <Properties> <Title>Create Fields and Views</Title> <StartPage>https://localhost:44303/Default.aspx/?{StandardTokens} </StartPage> </Properties> <AppPrincipal> <RemoteWebApplication ClientId="ca81d876-8525-44a8-8a60-e02ee79a4a6e"/> </AppPrincipal> </App>
  • 35. function sharePointReady() { context = new SP.ClientContext.get_current(); web = context.get_web(); $("#createFieldButton").click(function () { var fieldName = $("#fieldName").val(); createField(fieldName); }); $("#createViewButton").click(function () { var fieldName = $("#fieldName").val(); var viewName = $("#viewName").val(); createView(viewName, fieldName); }); } 35
  • 36. function createView(viewName, fieldName) { spHostUrl = decodeURIComponent(getQueryStringParameter("SPHostUrl")); rootClientContext = new SP.ClientContext(spHostUrl); list = rootClientContext.get_web().get_lists().getByTitle($("#listName").val()); var viewCreationInformation = new SP.ViewCreationInformation(); viewCreationInformation.set_title(viewName); var viewType = new SP.ViewType(); viewCreationInformation.set_viewTypeKind(viewType.html) view = list.get_views().add(viewCreationInformation); view.set_jsLink("viewtemplate.js"); view.get_viewFields().add("Field"); view.update(); rootClientContext.load(view); rootClientContext.executeQueryAsync( Function.createDelegate(this, this.onCreateViewSucceeded), Function.createDelegate(this, this.onCreateViewFailed) ); } 36
  • 37. App for SharePoint App for Office Rich Web content YouTube Video, Photo Gallery Data Visualization, Analysis & Mashups Maps, Custom charts, Lookups Reference Tools Translation, Definitions, Dictionary, Help, Research Content Authoring & Publishing Contextual Content & Services Workflow and Collaboration Doc builders, Print services Business data lookup (CRM), Contextual forms (surveys) Project tracking, Coauthoring Content Authoring Resumes, Contracts Dashboards Data Analysis, Data Mashups Forms & Reports Legal Forms, Financial Reports Business Processes Sales & Marketing, Finance, HR Team Collaboration Content & Project Management Workflow Document Approval, Expenses Document Template App for Office App for Office App for Office App for Office Document Template App for Office App for Office App for Office App for Office
  • 38.
  • 39. SharePoint Solution (*.wsp) App for SharePoint (*.app) Farm Solution Implement custom branding & UX Custom administration tools Sandbox Solution Workflow automating business process available to entire site Custom site, list, & library templates SharePoint-Hosted App Expense calculator Holiday request Provider-Hosted App Event registration management Help desk support Azure Auto-Hosted App Product defect tracking database
  • 40.  My Blog: www.TrustSharePoint.com for this presentation  Office Developer Center: http://dev.office.com  JavaScript API Wall Poser: http://www.microsoft.com/en- us/download/confirmation.aspx?id=36850  Reference for SharePoint App Manifest: http://msdn.microsoft.com/en- US/library/office/apps/jj992004  JavaScript API for Office Reference: http://msdn.microsoft.com/en- us/library/fp142185.aspx  JavaScript API for SharePoint Reference: http://msdn.microsoft.com/en- us/library/jj193034.aspx
  • 41.  Q&A?  Source Code  Available online at CodePlex  http://ottawacodecamp.codeplex.com/  Downloads  Each year’s source code in one easily download  Evals = Prize Draws  Sessions Evals = book draws!  Event Evals  LOTS of great things, make sure you’re there to win!  Thank you! 41Ottawa Code Camp 2009