SlideShare uma empresa Scribd logo
1 de 23
Building High-Performance Cross-Platform
Mobile Apps for Office 365 and SharePoint
Roy Sheinfeld, Co-Founder and VP R&D
harmon.ie
@roysheinfeld
www.sharepointeurope.com
Android iOS BlackBerr
y
Windows
Phone
Mobile
• Apache Cordova + HTML5
– Sencha Touch
– JQuery Mobile
• Appcelerator
• Qt Mobile
Cross-Platform Frameworks
Picture by breezi.blog
Recommended: Using Sencha Touch as a Strategic Platform
Pros:
– End-to-End Development Framework (UI, BL, DA, MVC)
– Out-of-the-Box UI Components
– Cross-platform theming
– Community
Cons:
– The framework’s comprehensiveness
Sencha Touch
Performance Challenges
• Native – HTML Integration
• HTML5 Rendering
• Client-Sever Interaction
Native – HTML Integration
• Native uses an embedded browser (e.g. UIWebView)
• Networking and other operations are executed in a
the native layer
• Native needs to pass the output to the browser
DEMO
HTML5 Rendering
• Lazy Rendering
• Minimizing Image Elements
• Web Workers
Lazy Rendering
DEMO
• Minimizing the DOM by only rendering what is
needed now by the user
• Use a pool of existing <div> elements
• Sencha List: Ext.create('Ext.List', {infinite: true} )
Minimizing Image Elements
Simplify image rendering by unifying complex images.
Example:
<div class="list-item">
<div class=“document-icon">
<div class=“pdf-class">
<div class="overlay tl-overlay favorite"></div>
<div class="overlay br-overlay checkout"></div>
</div>
</div>
<div class=“document-description">PDF Document</div>
</div>
<div class="pdf-favorite-checkout">
<span style="margin-left:50px">PDF Document</span>
</div>
Complex Element Simple Element
DEMO
Web Workers
• JS that runs in the background, independently of the
UI JS
• Web Workers utilize multi-core CPUs more effectively
• Use to process raw data retrieved from Office
365/SharePoint
• iOS 5+, Android 4.4 (Kitkat)
Client-Sever Interaction
• Connection Pooling
• CSOM/JSOM
• Lazy Calls
• Paging
• Optimized APIs
• Caching
Connection Pooling
DEMO
Minimizing authentication requests:
CSOM
A way to fetch information from different contexts in a
single request. Example:
$Web = $Context.Web
$Context.Load($Web)
$Lists = $Web.Lists
$Context.Load($Lists)
$Context.ExecuteQuery()
DEMO
Can you use JSOM from non-SharePoint
environments (e.g. HTML5 clients)?
No… and Yes!
Recommended:
[MS-CSOM]: SharePoint Client Query Protocol
Using SharePoint CSOM in Node.js
JSOM
Running JSON from a non-browser context:
var ctx = new SP.ClientContext("/site"),
web = ctx.get_web(),
list = web.get_lists().getByTitle(‘list'),
items = list.getItems('');
ctx.load(web);
ctx.load(items);
ctx.executeQueryAsync(function () {…}
DEMO
Lazy Calls
DEMO
Delay expensive
requests.
UI:
1. Async
2. On-demand
3. Combine both
Paging
DEMO
• Retrieve list information in chunks
• Make the chunk-size configurable (environment
depended)
• GetListItems supports server-side paging. It includes
a ListItemCollectionPositionNext attribute inside
the rs:Data element to support paging.
What does ‘vti’ in ‘_vti_bin’ stand for?
Vermeer Technology Incorporated (the
original creators of Front Page)
Optimized APIs
• Lists.GetListItemChangesSinceToken method
• Lists.GetListItemChangesWithKnowledge method
• Includes Schema Changes!
• In REST: perform a POST request that includes a
SP.ChangeLogItemQuery object in the request body
Caching
• Try not to change business logic
• Be sensitive to:
– Memory allocation
– Storage
Make these parameters configurable
• Use intervals and optimized APIs to invalidate the
cache
Roy Sheinfeld
Co-founder and VP R&D
roys@harmon.ie
@roysheinfeld
il.linkedin.om/pub/roy-sheinfeld/1/170/238
Thank you!

Mais conteúdo relacionado

Mais procurados

Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015Sonja Madsen
 
Share point hosted add ins munich
Share point hosted add ins munichShare point hosted add ins munich
Share point hosted add ins munichSonja Madsen
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per officeFabio Franzini
 
Introduction to Srb4j
Introduction to Srb4jIntroduction to Srb4j
Introduction to Srb4jJian Chen
 
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​FDConf
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Fabio Franzini
 
Using jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityUsing jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityMark Rackley
 
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...Marc D Anderson
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsFabio Franzini
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Richard Esplin
 
New Ways of (Web) Content Management
New Ways of (Web) Content ManagementNew Ways of (Web) Content Management
New Ways of (Web) Content ManagementSPC Adriatics
 
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web App
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web AppMolly Holzschlag - How HTML 5 is Going to Completely Change your Web App
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web AppCarsonified Team
 
Single Page Apps
Single Page AppsSingle Page Apps
Single Page AppsGil Fink
 
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesTulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesMark Rackley
 
Share point 2013 - Javascript Object Model
Share point 2013 - Javascript Object ModelShare point 2013 - Javascript Object Model
Share point 2013 - Javascript Object ModelMuawiyah Shannak
 
Spsbe2012 sessie start to-jquery
Spsbe2012 sessie start to-jquerySpsbe2012 sessie start to-jquery
Spsbe2012 sessie start to-jqueryMarijn Somers
 
An alternative SilverStripe story: Business applications
An alternative SilverStripe story: Business applicationsAn alternative SilverStripe story: Business applications
An alternative SilverStripe story: Business applicationsAndy Adiwidjaja
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOMMark Rackley
 
Transform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScriptTransform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScriptJohn Calvert
 

Mais procurados (20)

Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
 
Share point hosted add ins munich
Share point hosted add ins munichShare point hosted add ins munich
Share point hosted add ins munich
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per office
 
Introduction to Srb4j
Introduction to Srb4jIntroduction to Srb4j
Introduction to Srb4j
 
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...
 
Using jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityUsing jQuery to Maximize Form Usability
Using jQuery to Maximize Form Usability
 
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...
Unity Connect Haarlem 2016 - The Lay of the Land of Client-Side Development c...
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
 
New Ways of (Web) Content Management
New Ways of (Web) Content ManagementNew Ways of (Web) Content Management
New Ways of (Web) Content Management
 
Bayt training
Bayt trainingBayt training
Bayt training
 
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web App
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web AppMolly Holzschlag - How HTML 5 is Going to Completely Change your Web App
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web App
 
Single Page Apps
Single Page AppsSingle Page Apps
Single Page Apps
 
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesTulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
 
Share point 2013 - Javascript Object Model
Share point 2013 - Javascript Object ModelShare point 2013 - Javascript Object Model
Share point 2013 - Javascript Object Model
 
Spsbe2012 sessie start to-jquery
Spsbe2012 sessie start to-jquerySpsbe2012 sessie start to-jquery
Spsbe2012 sessie start to-jquery
 
An alternative SilverStripe story: Business applications
An alternative SilverStripe story: Business applicationsAn alternative SilverStripe story: Business applications
An alternative SilverStripe story: Business applications
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOM
 
Transform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScriptTransform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScript
 

Destaque

Power point
Power pointPower point
Power pointSiffredo
 
ΚΕΣΥΠ Ηρακλείου Θ Αντωνίου. Μετά το γυμνάσιο Τι; (Ιούνιος 2014)
ΚΕΣΥΠ Ηρακλείου Θ Αντωνίου. Μετά το γυμνάσιο Τι; (Ιούνιος 2014)ΚΕΣΥΠ Ηρακλείου Θ Αντωνίου. Μετά το γυμνάσιο Τι; (Ιούνιος 2014)
ΚΕΣΥΠ Ηρακλείου Θ Αντωνίου. Μετά το γυμνάσιο Τι; (Ιούνιος 2014)kogxylak
 
2η πανελλήνια ημέρα σχ. αθλητισμού
2η πανελλήνια ημέρα σχ. αθλητισμού2η πανελλήνια ημέρα σχ. αθλητισμού
2η πανελλήνια ημέρα σχ. αθλητισμούkogxylak
 
Module%201%20 physics%20basic%20science
Module%201%20 physics%20basic%20scienceModule%201%20 physics%20basic%20science
Module%201%20 physics%20basic%20scienceSarah Rodriguez
 
Δες τη ζωή υγιεινά. Η διατροφή στην εφηβική ηλικία.
Δες τη ζωή υγιεινά. Η διατροφή στην εφηβική ηλικία.Δες τη ζωή υγιεινά. Η διατροφή στην εφηβική ηλικία.
Δες τη ζωή υγιεινά. Η διατροφή στην εφηβική ηλικία.kogxylak
 
我想請你吃飯 (繁体)
我想請你吃飯 (繁体)我想請你吃飯 (繁体)
我想請你吃飯 (繁体)Na Li
 
Η χημεία του κρασιού
Η χημεία του κρασιούΗ χημεία του κρασιού
Η χημεία του κρασιούkogxylak
 
你不是我的男朋友 (繁體)
你不是我的男朋友 (繁體)你不是我的男朋友 (繁體)
你不是我的男朋友 (繁體)Na Li
 
Hippo gettogether april 2012 faceted navigation a tale of daemons
Hippo gettogether april 2012 faceted navigation   a tale of daemonsHippo gettogether april 2012 faceted navigation   a tale of daemons
Hippo gettogether april 2012 faceted navigation a tale of daemonsHippo
 
Hippo get together presentation solr integration
Hippo get together presentation   solr integrationHippo get together presentation   solr integration
Hippo get together presentation solr integrationHippo
 
Weight count chart m.o.
Weight count chart  m.o.Weight count chart  m.o.
Weight count chart m.o.yogm2m
 
跟网友见面 (Integrated Chinese L1P1 Lesson 8)
跟网友见面 (Integrated Chinese L1P1 Lesson 8)跟网友见面 (Integrated Chinese L1P1 Lesson 8)
跟网友见面 (Integrated Chinese L1P1 Lesson 8)Na Li
 
Chinese TPRS Storytelling 你叫什么名字
Chinese TPRS Storytelling 你叫什么名字Chinese TPRS Storytelling 你叫什么名字
Chinese TPRS Storytelling 你叫什么名字Na Li
 
高文中的生日(1) Integrated Chinese L1P1 Lesson 6
高文中的生日(1) Integrated Chinese L1P1 Lesson 6 高文中的生日(1) Integrated Chinese L1P1 Lesson 6
高文中的生日(1) Integrated Chinese L1P1 Lesson 6 Na Li
 
家有儿女 Integrated Chinese L1P1 Lesson7
家有儿女 Integrated Chinese L1P1 Lesson7 家有儿女 Integrated Chinese L1P1 Lesson7
家有儿女 Integrated Chinese L1P1 Lesson7 Na Li
 
高文中的生日(2) Integrated Chinese L1P1 Lesson 6
高文中的生日(2) Integrated Chinese L1P1 Lesson 6 高文中的生日(2) Integrated Chinese L1P1 Lesson 6
高文中的生日(2) Integrated Chinese L1P1 Lesson 6 Na Li
 

Destaque (17)

Power point
Power pointPower point
Power point
 
ΚΕΣΥΠ Ηρακλείου Θ Αντωνίου. Μετά το γυμνάσιο Τι; (Ιούνιος 2014)
ΚΕΣΥΠ Ηρακλείου Θ Αντωνίου. Μετά το γυμνάσιο Τι; (Ιούνιος 2014)ΚΕΣΥΠ Ηρακλείου Θ Αντωνίου. Μετά το γυμνάσιο Τι; (Ιούνιος 2014)
ΚΕΣΥΠ Ηρακλείου Θ Αντωνίου. Μετά το γυμνάσιο Τι; (Ιούνιος 2014)
 
2η πανελλήνια ημέρα σχ. αθλητισμού
2η πανελλήνια ημέρα σχ. αθλητισμού2η πανελλήνια ημέρα σχ. αθλητισμού
2η πανελλήνια ημέρα σχ. αθλητισμού
 
Module%201%20 physics%20basic%20science
Module%201%20 physics%20basic%20scienceModule%201%20 physics%20basic%20science
Module%201%20 physics%20basic%20science
 
Δες τη ζωή υγιεινά. Η διατροφή στην εφηβική ηλικία.
Δες τη ζωή υγιεινά. Η διατροφή στην εφηβική ηλικία.Δες τη ζωή υγιεινά. Η διατροφή στην εφηβική ηλικία.
Δες τη ζωή υγιεινά. Η διατροφή στην εφηβική ηλικία.
 
我想請你吃飯 (繁体)
我想請你吃飯 (繁体)我想請你吃飯 (繁体)
我想請你吃飯 (繁体)
 
Η χημεία του κρασιού
Η χημεία του κρασιούΗ χημεία του κρασιού
Η χημεία του κρασιού
 
你不是我的男朋友 (繁體)
你不是我的男朋友 (繁體)你不是我的男朋友 (繁體)
你不是我的男朋友 (繁體)
 
Hippo gettogether april 2012 faceted navigation a tale of daemons
Hippo gettogether april 2012 faceted navigation   a tale of daemonsHippo gettogether april 2012 faceted navigation   a tale of daemons
Hippo gettogether april 2012 faceted navigation a tale of daemons
 
Hippo get together presentation solr integration
Hippo get together presentation   solr integrationHippo get together presentation   solr integration
Hippo get together presentation solr integration
 
Weight count chart m.o.
Weight count chart  m.o.Weight count chart  m.o.
Weight count chart m.o.
 
跟网友见面 (Integrated Chinese L1P1 Lesson 8)
跟网友见面 (Integrated Chinese L1P1 Lesson 8)跟网友见面 (Integrated Chinese L1P1 Lesson 8)
跟网友见面 (Integrated Chinese L1P1 Lesson 8)
 
Chinese TPRS Storytelling 你叫什么名字
Chinese TPRS Storytelling 你叫什么名字Chinese TPRS Storytelling 你叫什么名字
Chinese TPRS Storytelling 你叫什么名字
 
高文中的生日(1) Integrated Chinese L1P1 Lesson 6
高文中的生日(1) Integrated Chinese L1P1 Lesson 6 高文中的生日(1) Integrated Chinese L1P1 Lesson 6
高文中的生日(1) Integrated Chinese L1P1 Lesson 6
 
家有儿女 Integrated Chinese L1P1 Lesson7
家有儿女 Integrated Chinese L1P1 Lesson7 家有儿女 Integrated Chinese L1P1 Lesson7
家有儿女 Integrated Chinese L1P1 Lesson7
 
Teri
Teri Teri
Teri
 
高文中的生日(2) Integrated Chinese L1P1 Lesson 6
高文中的生日(2) Integrated Chinese L1P1 Lesson 6 高文中的生日(2) Integrated Chinese L1P1 Lesson 6
高文中的生日(2) Integrated Chinese L1P1 Lesson 6
 

Semelhante a Building high performance

App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarinMohit Chhabra
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
 
Rest - Representational State Transfer (EMC BRDC Internal Tech talk)
Rest - Representational State Transfer (EMC BRDC Internal Tech talk)Rest - Representational State Transfer (EMC BRDC Internal Tech talk)
Rest - Representational State Transfer (EMC BRDC Internal Tech talk)Rodrigo Senra
 
Cross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinCross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinPranav Ainavolu
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Kashif Imran
 
Share point apps the good, the bad, and the pot of gold at the end of the r...
Share point apps   the good, the bad, and the pot of gold at the end of the r...Share point apps   the good, the bad, and the pot of gold at the end of the r...
Share point apps the good, the bad, and the pot of gold at the end of the r...Bill Ayers
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 
Client Object Model - SharePoint Extreme 2012
Client Object Model - SharePoint Extreme 2012Client Object Model - SharePoint Extreme 2012
Client Object Model - SharePoint Extreme 2012daniel plocker
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14Mark Rackley
 
Serverless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and XamarinServerless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and XamarinMark Arteaga
 
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohl
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni PohlSPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohl
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohlatwork
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Bram de Jager
 
Creating Great Applications in SharePoint 2010 with Silverlight 4
Creating Great Applications in SharePoint 2010 with Silverlight 4Creating Great Applications in SharePoint 2010 with Silverlight 4
Creating Great Applications in SharePoint 2010 with Silverlight 4Boston Area SharePoint Users Group
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSPC Adriatics
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012NCCOMMS
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for DevelopersRob Wilson
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesBrian Culver
 
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...SPS Paris
 

Semelhante a Building high performance (20)

App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarin
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
 
Rest - Representational State Transfer (EMC BRDC Internal Tech talk)
Rest - Representational State Transfer (EMC BRDC Internal Tech talk)Rest - Representational State Transfer (EMC BRDC Internal Tech talk)
Rest - Representational State Transfer (EMC BRDC Internal Tech talk)
 
Cross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinCross platform mobile app development with Xamarin
Cross platform mobile app development with Xamarin
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365
 
Share point apps the good, the bad, and the pot of gold at the end of the r...
Share point apps   the good, the bad, and the pot of gold at the end of the r...Share point apps   the good, the bad, and the pot of gold at the end of the r...
Share point apps the good, the bad, and the pot of gold at the end of the r...
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Client Object Model - SharePoint Extreme 2012
Client Object Model - SharePoint Extreme 2012Client Object Model - SharePoint Extreme 2012
Client Object Model - SharePoint Extreme 2012
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14
 
What's new for Developers in SharePoint 2013
What's new for Developers in SharePoint 2013What's new for Developers in SharePoint 2013
What's new for Developers in SharePoint 2013
 
Serverless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and XamarinServerless Computing with Azure Functions and Xamarin
Serverless Computing with Azure Functions and Xamarin
 
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohl
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni PohlSPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohl
SPC Adriatics 2013 - Working with the new SharePoint Online Apps by Toni Pohl
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
 
Creating Great Applications in SharePoint 2010 with Silverlight 4
Creating Great Applications in SharePoint 2010 with Silverlight 4Creating Great Applications in SharePoint 2010 with Silverlight 4
Creating Great Applications in SharePoint 2010 with Silverlight 4
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for Developers
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
 

Último

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 

Último (20)

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 

Building high performance

  • 1. Building High-Performance Cross-Platform Mobile Apps for Office 365 and SharePoint Roy Sheinfeld, Co-Founder and VP R&D harmon.ie @roysheinfeld
  • 3. • Apache Cordova + HTML5 – Sencha Touch – JQuery Mobile • Appcelerator • Qt Mobile Cross-Platform Frameworks Picture by breezi.blog Recommended: Using Sencha Touch as a Strategic Platform
  • 4. Pros: – End-to-End Development Framework (UI, BL, DA, MVC) – Out-of-the-Box UI Components – Cross-platform theming – Community Cons: – The framework’s comprehensiveness Sencha Touch
  • 5. Performance Challenges • Native – HTML Integration • HTML5 Rendering • Client-Sever Interaction
  • 6. Native – HTML Integration • Native uses an embedded browser (e.g. UIWebView) • Networking and other operations are executed in a the native layer • Native needs to pass the output to the browser DEMO
  • 7. HTML5 Rendering • Lazy Rendering • Minimizing Image Elements • Web Workers
  • 8. Lazy Rendering DEMO • Minimizing the DOM by only rendering what is needed now by the user • Use a pool of existing <div> elements • Sencha List: Ext.create('Ext.List', {infinite: true} )
  • 9. Minimizing Image Elements Simplify image rendering by unifying complex images. Example: <div class="list-item"> <div class=“document-icon"> <div class=“pdf-class"> <div class="overlay tl-overlay favorite"></div> <div class="overlay br-overlay checkout"></div> </div> </div> <div class=“document-description">PDF Document</div> </div> <div class="pdf-favorite-checkout"> <span style="margin-left:50px">PDF Document</span> </div> Complex Element Simple Element DEMO
  • 10. Web Workers • JS that runs in the background, independently of the UI JS • Web Workers utilize multi-core CPUs more effectively • Use to process raw data retrieved from Office 365/SharePoint • iOS 5+, Android 4.4 (Kitkat)
  • 11. Client-Sever Interaction • Connection Pooling • CSOM/JSOM • Lazy Calls • Paging • Optimized APIs • Caching
  • 13. CSOM A way to fetch information from different contexts in a single request. Example: $Web = $Context.Web $Context.Load($Web) $Lists = $Web.Lists $Context.Load($Lists) $Context.ExecuteQuery() DEMO
  • 14. Can you use JSOM from non-SharePoint environments (e.g. HTML5 clients)?
  • 15. No… and Yes! Recommended: [MS-CSOM]: SharePoint Client Query Protocol Using SharePoint CSOM in Node.js
  • 16. JSOM Running JSON from a non-browser context: var ctx = new SP.ClientContext("/site"), web = ctx.get_web(), list = web.get_lists().getByTitle(‘list'), items = list.getItems(''); ctx.load(web); ctx.load(items); ctx.executeQueryAsync(function () {…} DEMO
  • 17. Lazy Calls DEMO Delay expensive requests. UI: 1. Async 2. On-demand 3. Combine both
  • 18. Paging DEMO • Retrieve list information in chunks • Make the chunk-size configurable (environment depended) • GetListItems supports server-side paging. It includes a ListItemCollectionPositionNext attribute inside the rs:Data element to support paging.
  • 19. What does ‘vti’ in ‘_vti_bin’ stand for?
  • 20. Vermeer Technology Incorporated (the original creators of Front Page)
  • 21. Optimized APIs • Lists.GetListItemChangesSinceToken method • Lists.GetListItemChangesWithKnowledge method • Includes Schema Changes! • In REST: perform a POST request that includes a SP.ChangeLogItemQuery object in the request body
  • 22. Caching • Try not to change business logic • Be sensitive to: – Memory allocation – Storage Make these parameters configurable • Use intervals and optimized APIs to invalidate the cache
  • 23. Roy Sheinfeld Co-founder and VP R&D roys@harmon.ie @roysheinfeld il.linkedin.om/pub/roy-sheinfeld/1/170/238 Thank you!