SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

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 enovationEnovation
 
Intro apps
Intro appsIntro apps
Intro appsBIWUG
 
Jollgin_SharePoint
Jollgin_SharePointJollgin_SharePoint
Jollgin_SharePointjollgin 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 SimplifiedDavid 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 SharePointRob Wilson
 
Office 365 development
Office 365 developmentOffice 365 development
Office 365 developmentyounjw
 
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)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
 
Dev day paris020415
Dev day paris020415Dev day paris020415
Dev day paris020415pdufourSFDC
 
Workflow in SharePoint 2010
Workflow in SharePoint 2010Workflow in SharePoint 2010
Workflow in SharePoint 2010barryboudreau
 
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 - v2Nilesh Shah
 
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 2018Nilesh Shah
 
SharePoint Add-Ins - Brief Overview
SharePoint Add-Ins - Brief OverviewSharePoint Add-Ins - Brief Overview
SharePoint Add-Ins - Brief OverviewNous Infosystems
 
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 reviewConcetto Labs
 
WKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationWKDNUG SP2010 Development Presentation
WKDNUG SP2010 Development PresentationRob Wilson
 
Oracle Web ADI Implementation Steps
Oracle Web ADI Implementation StepsOracle Web ADI Implementation Steps
Oracle Web ADI Implementation Stepsstandale
 
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...Joel Oleson
 
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.comSalesforce Developers
 

What's hot (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
 

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

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 SchoutenRyan 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 thingSPC Adriatics
 
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 2015Ryan Schouten
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013Toni Il Caiser
 
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)Christian Heindel
 
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 backNCCOMMS
 
sps-2013-architecture-overview.pdf
sps-2013-architecture-overview.pdfsps-2013-architecture-overview.pdf
sps-2013-architecture-overview.pdfandinieldananty
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013SPC Adriatics
 
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)Mahmoud Hamed Mahmoud
 
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 actionNCCOMMS
 
SharePoint 2010 and its development tools
SharePoint 2010 and its development toolsSharePoint 2010 and its development tools
SharePoint 2010 and its development toolsShakir Majeed Khan
 
Office appsbiwugpresentation
Office appsbiwugpresentationOffice appsbiwugpresentation
Office appsbiwugpresentationBIWUG
 
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 ...SPTechCon
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsShailen Sukul
 
Chris givens building custom service applications
Chris givens building custom service applicationsChris givens building custom service applications
Chris givens building custom service applicationsChris Givens
 
CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Developmentryanaoliveira
 
Getting Started with Office 365 Development
Getting Started with Office 365 DevelopmentGetting Started with Office 365 Development
Getting Started with Office 365 DevelopmentDragan Panjkov
 
Relearning SharePoint Development
Relearning SharePoint DevelopmentRelearning SharePoint Development
Relearning SharePoint Developmentbgerman
 

Similar to 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
 

More from AntonioMaio2

Introduction to Microsoft Enterprise Mobility + Security
Introduction to Microsoft Enterprise Mobility + SecurityIntroduction to Microsoft Enterprise Mobility + Security
Introduction to Microsoft Enterprise Mobility + SecurityAntonioMaio2
 
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 365AntonioMaio2
 
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 maioAntonioMaio2
 
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 teamAntonioMaio2
 
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 maioAntonioMaio2
 
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?AntonioMaio2
 
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 maioAntonioMaio2
 
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 - publishedAntonioMaio2
 
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 SharePointAntonioMaio2
 
What’s new in SharePoint 2016!
What’s new in SharePoint 2016!What’s new in SharePoint 2016!
What’s new in SharePoint 2016!AntonioMaio2
 
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 365AntonioMaio2
 
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 MaioAntonioMaio2
 
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...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 2013AntonioMaio2
 
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 publishedAntonioMaio2
 
Keeping SharePoint Always On
Keeping SharePoint Always OnKeeping SharePoint Always On
Keeping SharePoint Always OnAntonioMaio2
 
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 SharePointAntonioMaio2
 
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 2013AntonioMaio2
 
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...AntonioMaio2
 

More from 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...
 

Recently uploaded

Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Recently uploaded (20)

Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

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