28
Patterns in Add-ins for SharePoint Sonja Madsen

Patterns in add ins espc15

Embed Size (px)

Citation preview

Page 1: Patterns in add ins espc15

Patterns in Add-insfor SharePoint

Sonja Madsen

Page 2: Patterns in add ins espc15

Add-ins

SharePoint hosted Provider hosted

Page 3: Patterns in add ins espc15

TransportBaggageTimeCostPeopleCount

Page 4: Patterns in add ins espc15

Patterns and Decision Making

Page 5: Patterns in add ins espc15
Page 6: Patterns in add ins espc15

SharePoint MVPSONJASAPPS ConsultingSpeaker

@sonjamadsen sp2013.blogspot.com [email protected] www.sonjasapps.com

Sonja Madsen#WPC15 Best International Developer

Page 7: Patterns in add ins espc15

Things to Consider• Development• Skills• Customers• Content• Hosting• Future-proofing• Cost

Page 8: Patterns in add ins espc15

Skills• Front-end• Back-end• Hosting

Page 9: Patterns in add ins espc15

Development• C# vs JavaScript vs PowerShell• C# REST vs CSOM• SharePoint API, Databases, Web Services• SharePoint Content Types, Lists and Libraries• Facebook, Instagram, Google +, Linkedin

Page 10: Patterns in add ins espc15

using (var clientContext = spContext.CreateUserClientContextForSPHost())

{

if (clientContext != null)

{

WebCreationInformation creation = new WebCreationInformation();

creation.Url = webTitle;

creation.Title = webTitle;

Web newWeb = clientContext.Web.Webs.Add(creation);

clientContext.Load(newWeb);

clientContext.ExecuteQuery();

}

}

Create Site with Strongly Typed CSOM

Page 11: Patterns in add ins espc15

Query.ajax({ url: "http://<site url>/_api/web/webinfos/add", type: "POST", data: JSON.stringify( {'parameters': { '__metadata': { 'type': 'SP.WebInfoCreationInformation' }, 'Url': 'RestSubWeb', 'Title': 'RestSubWeb', 'Description': 'REST created web', 'Language':1033, 'WebTemplate':'sts', 'UseUniquePermissions':false} } ), headers: { "accept": "application/json; odata=verbose", "content-type":"application/json;odata=verbose", "content-length": <length of post body>, "X-RequestDigest": $("#__REQUESTDIGEST").val() }, success: doSuccess, error: doError });

Create site with REST

Page 12: Patterns in add ins espc15

DEMOInstagram, CoffeeMaker

Page 13: Patterns in add ins espc15

Instagram Demo - SharePoint Hosted

App PartStart PageJavaScript

Page 14: Patterns in add ins espc15
Page 15: Patterns in add ins espc15

Content• Security Considerations• IP Considerations• EU Regulations

Page 16: Patterns in add ins espc15

SharePoint Hosted

ListContent TypeApp PartStart pageJavaScript

Page 17: Patterns in add ins espc15

Provider Hosted

ListContent TypeJavaScript

C# code-behindStart page

SharePoint hosted

Page 18: Patterns in add ins espc15

Provider Hosted

C# code-behindStart pageSend emailSchedule emailDatabase

SharePoint hosted

Page 19: Patterns in add ins espc15

Future-Proofing

Page 20: Patterns in add ins espc15

Future-Proofing• Maintenance• Scalability• Upgrade to SharePoint 2016• Support• Lifetime

Page 21: Patterns in add ins espc15

Customers• Custom Add-in or Office App Store• Number of Instances per Customer• Mobile Devices• Authentication• Provider

Page 22: Patterns in add ins espc15

C# code-behindStart page

Send emailSchedule emailDatabase

C# code-behindStart page

Send emailSchedule emailDatabase

C# code-behindStart page

Send emailSchedule emailDatabase

C# code-behindStart page

Send emailSchedule emailDatabase

Page 23: Patterns in add ins espc15

Hosting• SharePoint on-premise or Office 365• Hosting on Azure or On-premise• Hosting partner

Page 24: Patterns in add ins espc15
Page 25: Patterns in add ins espc15

Cost

Page 26: Patterns in add ins espc15

Summary

Page 27: Patterns in add ins espc15
Page 28: Patterns in add ins espc15

SharePoint MVPSONJASAPPS ConsultingSpeaker

@sonjamadsen sp2013.blogspot.com [email protected] www.sonjasapps.com

Sonja Madsen#WPC15 Best International Developer