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

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

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