SlideShare a Scribd company logo
1 of 30
Dynamic Charts with
JavaScript, HTML5 and
SharePoint
Derek Gusoff
Senior Consultant, Sogeti USA
October 5, 2013
Your presenter
 Derek Gusoff
 Sogeti USA (5 years)
 http://derekgusoff.wordpress.com
 @dgusoff
 www.linkedin.com/in/derekgusoff/
A story
Why HTML5 Charts?
 No back-end configuration
 Don’t require admin privileges to deploy
 Can be heavily customized – or not
 Can be extended
 Are supported by a wide array of 3rd party
tools, many of which are free
Agenda
 The Web, HTML5, JavaScript, and charting technology
 Technical underpinnings
 3rd Party libraries
 Browser implications
 Simple demos
 SharePoint as a data source
 REST, CSOM, SharePoint Web Services and roll-your own
 Case study – agile development team sites for Enterprise Project
Management
Out of Scope
 This is a short (45 minute) talk!
 Deployment
 In depth analysis of code
HTML5 and graphics technology
 Scalable Vector Graphics
 Canvas
 VML
Scalable Vector Graphics (SVG)
 XML-based markup that is part of HTML5 specification
 SVG-based markup becomes part of the browser’s DOM
 Performance degrades with very large sets of data
 Can attach DOM events (onhover, onclick, etc)
 Can be manipulated in jQuery or any other javaScript Library
Browser implications – SVG
 Chrome / Firefox – it “just works” in all cases
 Internet Explorer – supported in version 9 and up
 IE 8 and lower – most 3rd party libraries will detect SVG support
and revert to VML output.
 SharePoint 2010
 SharePoint 2010 will render VML output for ALL versions of Internet Explorer
HTML5 Canvas
 Part of HTML5 specification
 Graphics elements drawn via a JavaScript API
 “Fire and Forget” – drawn elements do NOT become part
of the DOM
 Can handle high-volumes of data with better performance
 No interaction from JavaScript – must redraw entire
graphic
 Cannot attach event receivers
Browser implications – HTML5 Canvas
 Chrome / Firefox – it “just works” in all scenrios
 Internet Explorer – canvas support starts with IE 9
 IE 8 and lower – no canvas support and no fallback
 SharePoint 2010:
 Canvas will not work in Internet Explorer
Vector Markup Language (VML)
 Developed by Microsoft for Microsoft Office (“save as HTML”)
 Implemented in IE5,6,7,8 – but no other browser
 Replaced by SVG support with IE9
 A necessary evil
Popular 3rd party Libraries
 Canvas
 Chart.JS
 rGraph
 Flot (a jQuery plugin)
 SVG/VML
 RaphaelJS
 Google Charts
 HighCharts ($$ but includes great documentation and export capability)
Third Party libraries in action
 Link to the library
 Declare an element (either <canvas> or <div> (for SVG))
 Create and populate an array of JavaScript objects to
store your data
 Create an options object
 Make an API call with your options object, data, and
container
DEMO - Canvas.JS
DEMO - RaphaelJS
In 2013
In 2010 (IE)
The Data Layer – getting data from
SharePoint
REST Interface
Client Object Model
SOAP Web Services
Roll your own
REST Interface
 Speaks the native language of the web server - HTTP
 url-based, REST-ful query syntax
 No CAML!!!
 Based on ODATA standard
 Works really well with jQuery
 Can be used asynchronously or synchronously
 Can access (in 2013):
 List and site data
 Social Feed
 Search
 External Lists
 Taxonomy, Workflow, and more
REST Interface sample code
Client Side Object Model (CSOM or JSOM)
 Quasi-object-oriented API which wraps the REST interface
 Familiar interface for .NET developers who might be afraid of the REST
interface syntax
 Asynchronous only
 Can access:
 List and site data
 Social Feed
 Search
 External Lists
 Taxonomy, Workflow, and more
CSOM Code example
SharePoint SOAP Web Services
 Have been around forever
 Were the only way to get data in JavaScript in SharePoint 2007
 Deprecated, but still VERY heavily used
 Code written for 2007 will still work in 2013*
 Can do a TON of stuff
 Heavy payload, may have performance implications
 Usually used in conjunction with SPServices
 http://msdn.microsoft.com/en-us/library/sharepoint/jj193051.aspx
 http://spservices.codeplex.com/
 (* - more or less)
Sample SPServices call
Public web services and “Roll your own”
 Query services from sources such as Azure
Data Market or Programmable Web
 Write your own web services, in
SharePoint, in the cloud, or wherever
Case study – Agile Project Management
Sprints and Tasks
Are we progressing toward our goal for this sprint? (Burndown Chart)
Breakdown of finished / unfinished tasks for a sprint
Drilldown capability to drill down from chart to individual tasks
Elements of a burndown chart
DEMO - Burndown Chart
 Current state – a SharePoint site with sprints and sprint tasks
 Allow the user to select a sprint, and for the selected sprint,
 Show the total number of story points and the ideal path
 Render the progression of story point completion throughout the sprint
DEMO - Task status breakdown
 For the selected sprint,
 Show the uncompleted story points in a chart grouped visually by the
developer assigned to those tasks
 When a developer’s “wedge” is clicked, show all the tasks assigned to that
developer for the sprint in a list
 When a task is hovered, show the display form for that task so that executives
can see the comment history and other metadata.
Reference links
 Charting APIs
 ChartJS
 Raphael JS
 HighCharts
 Google Charts
 rGraph
• Canvas vs SVG discussion
• http://msdn.microsoft.com/en-
us/library/ie/gg193983(v=vs.85).aspx#Using_Canvas_AndOr_SVG
• http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/
• SharePoint Data Access
• REST Interface
• JavaScript CSOM
• SPServices
Thank you!

More Related Content

What's hot

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
 
Blazor certification training - Dot Net Tricks
Blazor certification training - Dot Net TricksBlazor certification training - Dot Net Tricks
Blazor certification training - Dot Net TricksGaurav Singh
 
Going mobile with RichFaces
Going mobile with RichFacesGoing mobile with RichFaces
Going mobile with RichFacesLukáš Fryč
 
RichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component DevelopmentRichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component DevelopmentLukáš Fryč
 
Introduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathIntroduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathMark Rackley
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien
 
qooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Frameworkqooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Frameworkecker
 
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint LimitationsSPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint LimitationsMark Rackley
 
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Asish Padhy
 
Progressive web applications
Progressive web applicationsProgressive web applications
Progressive web applicationsTom Martin
 
SharePoint Development in Government Environments
SharePoint Development in Government EnvironmentsSharePoint Development in Government Environments
SharePoint Development in Government EnvironmentsGunjan Datta
 
Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!judofyr
 
SharePoint 2010 Web Content Management - The Developer Story
SharePoint 2010 Web Content Management - The Developer StorySharePoint 2010 Web Content Management - The Developer Story
SharePoint 2010 Web Content Management - The Developer StoryWaldek Mastykarz
 
Working with a super model for SharePoint Tuga IT 2016
Working with a super model for SharePoint Tuga IT 2016Working with a super model for SharePoint Tuga IT 2016
Working with a super model for SharePoint Tuga IT 2016Sonja Madsen
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templatesPaul Hunt
 
SPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITProsSPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITProsPaul Hunt
 

What's hot (20)

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
 
Blazor certification training - Dot Net Tricks
Blazor certification training - Dot Net TricksBlazor certification training - Dot Net Tricks
Blazor certification training - Dot Net Tricks
 
gwt-pushstate
gwt-pushstategwt-pushstate
gwt-pushstate
 
Going mobile with RichFaces
Going mobile with RichFacesGoing mobile with RichFaces
Going mobile with RichFaces
 
RichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component DevelopmentRichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component Development
 
Html 5
Html 5Html 5
Html 5
 
Eclipse orion
Eclipse orionEclipse orion
Eclipse orion
 
Introduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathIntroduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPath
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
 
qooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Frameworkqooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Framework
 
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint LimitationsSPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
 
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
 
Progressive web applications
Progressive web applicationsProgressive web applications
Progressive web applications
 
SharePoint Development in Government Environments
SharePoint Development in Government EnvironmentsSharePoint Development in Government Environments
SharePoint Development in Government Environments
 
Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!
 
SharePoint 2010 Web Content Management - The Developer Story
SharePoint 2010 Web Content Management - The Developer StorySharePoint 2010 Web Content Management - The Developer Story
SharePoint 2010 Web Content Management - The Developer Story
 
Working with a super model for SharePoint Tuga IT 2016
Working with a super model for SharePoint Tuga IT 2016Working with a super model for SharePoint Tuga IT 2016
Working with a super model for SharePoint Tuga IT 2016
 
ECS19 - Katja Jokisalo - Modernize your Intranet
ECS19 - Katja Jokisalo - Modernize your IntranetECS19 - Katja Jokisalo - Modernize your Intranet
ECS19 - Katja Jokisalo - Modernize your Intranet
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templates
 
SPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITProsSPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITPros
 

Similar to Spsmi13 charts

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
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Rodolfo Finochietti
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by GoogleASG
 
Web II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side developmentWeb II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side developmentRandy Connolly
 
HTML5 introduction for beginners
HTML5 introduction for beginnersHTML5 introduction for beginners
HTML5 introduction for beginnersVineeth N Krishnan
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft SilverlightGlen Gordon
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. Kushan Lahiru Perera
 
Data Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight ApplicationsData Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight ApplicationsDave Allen
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive SummaryGilad Khen
 
Websites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly WebsitesWebsites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly Websiteswebsiteunlimited
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devsguest0a62e8
 
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
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourBrian Culver
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | IntroductionJohnTaieb
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)Kevin Gill
 
Building the next generation of browser apps today
Building the next generation of browser apps todayBuilding the next generation of browser apps today
Building the next generation of browser apps todayRandy Williams
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack DiscussionZaiyang Li
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksSunil Patil
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworksSunil Patil
 

Similar to Spsmi13 charts (20)

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
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Web II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side developmentWeb II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side development
 
HTML5 introduction for beginners
HTML5 introduction for beginnersHTML5 introduction for beginners
HTML5 introduction for beginners
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
 
Data Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight ApplicationsData Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight Applications
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
 
Websites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly WebsitesWebsites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly Websites
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devs
 
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
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 
Html5
Html5Html5
Html5
 
Building the next generation of browser apps today
Building the next generation of browser apps todayBuilding the next generation of browser apps today
Building the next generation of browser apps today
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack Discussion
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source Frameworks
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworks
 

Recently uploaded

Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

Spsmi13 charts

  • 1. Dynamic Charts with JavaScript, HTML5 and SharePoint Derek Gusoff Senior Consultant, Sogeti USA October 5, 2013
  • 2. Your presenter  Derek Gusoff  Sogeti USA (5 years)  http://derekgusoff.wordpress.com  @dgusoff  www.linkedin.com/in/derekgusoff/
  • 4. Why HTML5 Charts?  No back-end configuration  Don’t require admin privileges to deploy  Can be heavily customized – or not  Can be extended  Are supported by a wide array of 3rd party tools, many of which are free
  • 5. Agenda  The Web, HTML5, JavaScript, and charting technology  Technical underpinnings  3rd Party libraries  Browser implications  Simple demos  SharePoint as a data source  REST, CSOM, SharePoint Web Services and roll-your own  Case study – agile development team sites for Enterprise Project Management
  • 6. Out of Scope  This is a short (45 minute) talk!  Deployment  In depth analysis of code
  • 7. HTML5 and graphics technology  Scalable Vector Graphics  Canvas  VML
  • 8. Scalable Vector Graphics (SVG)  XML-based markup that is part of HTML5 specification  SVG-based markup becomes part of the browser’s DOM  Performance degrades with very large sets of data  Can attach DOM events (onhover, onclick, etc)  Can be manipulated in jQuery or any other javaScript Library
  • 9. Browser implications – SVG  Chrome / Firefox – it “just works” in all cases  Internet Explorer – supported in version 9 and up  IE 8 and lower – most 3rd party libraries will detect SVG support and revert to VML output.  SharePoint 2010  SharePoint 2010 will render VML output for ALL versions of Internet Explorer
  • 10. HTML5 Canvas  Part of HTML5 specification  Graphics elements drawn via a JavaScript API  “Fire and Forget” – drawn elements do NOT become part of the DOM  Can handle high-volumes of data with better performance  No interaction from JavaScript – must redraw entire graphic  Cannot attach event receivers
  • 11. Browser implications – HTML5 Canvas  Chrome / Firefox – it “just works” in all scenrios  Internet Explorer – canvas support starts with IE 9  IE 8 and lower – no canvas support and no fallback  SharePoint 2010:  Canvas will not work in Internet Explorer
  • 12. Vector Markup Language (VML)  Developed by Microsoft for Microsoft Office (“save as HTML”)  Implemented in IE5,6,7,8 – but no other browser  Replaced by SVG support with IE9  A necessary evil
  • 13. Popular 3rd party Libraries  Canvas  Chart.JS  rGraph  Flot (a jQuery plugin)  SVG/VML  RaphaelJS  Google Charts  HighCharts ($$ but includes great documentation and export capability)
  • 14. Third Party libraries in action  Link to the library  Declare an element (either <canvas> or <div> (for SVG))  Create and populate an array of JavaScript objects to store your data  Create an options object  Make an API call with your options object, data, and container
  • 16. DEMO - RaphaelJS In 2013 In 2010 (IE)
  • 17. The Data Layer – getting data from SharePoint REST Interface Client Object Model SOAP Web Services Roll your own
  • 18. REST Interface  Speaks the native language of the web server - HTTP  url-based, REST-ful query syntax  No CAML!!!  Based on ODATA standard  Works really well with jQuery  Can be used asynchronously or synchronously  Can access (in 2013):  List and site data  Social Feed  Search  External Lists  Taxonomy, Workflow, and more
  • 20. Client Side Object Model (CSOM or JSOM)  Quasi-object-oriented API which wraps the REST interface  Familiar interface for .NET developers who might be afraid of the REST interface syntax  Asynchronous only  Can access:  List and site data  Social Feed  Search  External Lists  Taxonomy, Workflow, and more
  • 22. SharePoint SOAP Web Services  Have been around forever  Were the only way to get data in JavaScript in SharePoint 2007  Deprecated, but still VERY heavily used  Code written for 2007 will still work in 2013*  Can do a TON of stuff  Heavy payload, may have performance implications  Usually used in conjunction with SPServices  http://msdn.microsoft.com/en-us/library/sharepoint/jj193051.aspx  http://spservices.codeplex.com/  (* - more or less)
  • 24. Public web services and “Roll your own”  Query services from sources such as Azure Data Market or Programmable Web  Write your own web services, in SharePoint, in the cloud, or wherever
  • 25. Case study – Agile Project Management Sprints and Tasks Are we progressing toward our goal for this sprint? (Burndown Chart) Breakdown of finished / unfinished tasks for a sprint Drilldown capability to drill down from chart to individual tasks
  • 26. Elements of a burndown chart
  • 27. DEMO - Burndown Chart  Current state – a SharePoint site with sprints and sprint tasks  Allow the user to select a sprint, and for the selected sprint,  Show the total number of story points and the ideal path  Render the progression of story point completion throughout the sprint
  • 28. DEMO - Task status breakdown  For the selected sprint,  Show the uncompleted story points in a chart grouped visually by the developer assigned to those tasks  When a developer’s “wedge” is clicked, show all the tasks assigned to that developer for the sprint in a list  When a task is hovered, show the display form for that task so that executives can see the comment history and other metadata.
  • 29. Reference links  Charting APIs  ChartJS  Raphael JS  HighCharts  Google Charts  rGraph • Canvas vs SVG discussion • http://msdn.microsoft.com/en- us/library/ie/gg193983(v=vs.85).aspx#Using_Canvas_AndOr_SVG • http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/ • SharePoint Data Access • REST Interface • JavaScript CSOM • SPServices

Editor's Notes

  1. My name is Derek Gusoff, and I have been working for Sogeti USA for the last five years, spending much of that time building client-side solutions on SharePoint.I live in Hell, Michigan (yes, really), with my wife and two three daughters.
  2. Back in 2011 I was a part of a team that was using SharePoint to implement an Enterprise Project Management solution, which included agile projects as part of its mix. Since Agile relies heavily on charts, I thought it would be a perfect opportunity to use HTML5 and JavaScript to produce fast, attractive, easy-to-use charts that would provide easier access to data than ever before.Alas, we ended up implementing these reports in SSRS, and while they looked OK, I always thought we could have done something that was better-looking and better-performing and more functional. Today, I’ll show you what could have been.
  3. Charts allow us to present data in a manner that visually conveys information to users better than raw data. There are a number of ways we can build charts in SharePoint: SSRS, Excel Services, Chart Web Parts.HTML5 Charts are an attractive option because they:Require no back end configuration – they can be deployed in something as simple as a content editorDon’t require elevated privileges to deploy – a user with contribute permission can deploy thisCan be heavily customized – or not – use the default options or roll your ownCan be extended – you can add click or hover events to drive additional functionalityAre supported by a wide array of 3rd party tools, many of them free.
  4. In this talk we will discuss how to leverage the technology of the web to create dynamic, responsive charts. We will discuss the specific technologies that make it possible, and introduce some 3rd party libraries that abstract away much of the complexity. Then we’ll touch on browser support for these technologies and think about how to make the most with the browsers we have to support. We will also look at some simple demos that demonstrate how to use these libraries.Next we’ll focus on SharePoint and look at the array of possibilities for accessing data in JavaScript. Finally we’ll examine some real-world scenarios by implementing some use cases based on a site for agile project management.
  5. Since this is a relatively short talk – 45 minutes - we will have to work quickly to get through all of the material. This talk is meant to be a high-level overview of the technologies and how to put them together in a SharePoint context, so you can implement a variation in accordance with your own business requirements.We will need to gloss over a few things, like:Deployment. The solutions can be deployed in a number of ways. They can be pasted into a Content Editor. They can be deployed in a custom Web Part. They can be deployed as HTML/JavaScript files in Farm or Sandbox solutions. They can be custom SharePoint Designer pages, as I have done here, or they can be deployed via a SharePoint 2013 App. Which approach is best for you is going to depend on a number of factors related to your environment and development skills.Step-By-Step. I am going to show you representative code for a couple of typical solutions, along with high-level descriptions of the technologies involved. It’s not a step-by-step because your requirements will undoubtedly be different. But if you understand jQuery, AJAX concepts and custom objects in JavaScript, you should be able to follow along.
  6. There are two separate technologies that can be used to visualize charts in HTML5 and another older technology that is still around for backward-compatibility reasons. They evolved to solve different problems. It’s important to understand the strengths and weaknesses of each in order to make the best decision on which to use
  7. Vector markup language was developed by Microsoft in the late 1990s and used in Microsoft Office applications for its “export to HTML” options, among other things. It was implemented by Microsoft in Internet Explorer 5 through 8 but was never supported by any other browser.VML is the only technology available in Internet Explorer prior to IE9, so it must be included in any solution that renders graphics. Fortunately it is usually implemented as a “fallback” technology in most of the commonly used charting APIs.
  8. Rolling your own Canvas or SVG charting engine is possible, but not really necessary or feasible. A number of third-party libraries, many of them free, can be used to create dynamic charts in web pages.(might be useful to highlight some advantages/disadvantages of each one)
  9. The REST interface works with the way the web is architected – request and responseThe REST interface is URL-based – you send a url to the server, it sends a raw responseIf you tell the server via the header to send JSON, it will send JSONThe JSON data object is accessed easily using dot notation
  10. Code written in 2010 against CSOM will continue to work in 20132013 has expanded the functionality into Search, BCS, etcAsynchronous operation can quickly lead to complex ‘spaghetti’ code if not careful
  11. One of agile’s biggest draws is its claim of transparency and communication, which is accomplished in part with the use of charts to show at a glance a team’s progress toward its objectives.With a burndown chart, teams can see early on in a sprint if they are tracking behind, and can closely monitor progress throughout the sprint.
  12. During an agile sprint, teams can measure progress against the sprint’s goals by displaying their progress on a burndown chart. Generally a burndown chart shows the ideal progression of a sprint’s tasks (represented in “Story Points”) alongside a graphical representation of the story points completed at any point of the sprint. B y looking at the burndown chart teams can easily see whether they are on track for a sprint’s goals or falling behind.A burndown chart is normally represented as a line chart, with dates listed along the x axis (the bottom) and story points along the y axis (up the left side). The straight diagonal line represents the ideal path, and the other line represents actual progress against the sprint objectives.
  13. The burndown chart consists of:A canvas elementJavscript code that fetches the range of values representing the ideal path of story point completionJavaScript code that fetches the number of outstanding story points at every day of the sprint.A call to the CanvasJS library, passing the element’s ID and the two arrays of valuesSome styling and option data.
  14. Since we have user interaction baked into this use case, we should use SVG because it supports DOM events, while Canvas does not.To implement this, we need:A &lt;div&gt; element to serve as the chart containerCode to pull the tasks and sort them by developer and completed statusA call to Raphael that constructs the pie chartA click handler that opens the list of tasks and renders them to the pageCode that attaches a hover handler and “screen scrapes” the selected task’s view page