SlideShare ist ein Scribd-Unternehmen logo
1 von 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!

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...Bill Ayers
 

Ähnlich wie 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
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
 

Kürzlich hochgeladen

Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 

Kürzlich hochgeladen (20)

Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 

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!