With HighCharts & D3.js SharePoint Data Visualization.

download With HighCharts & D3.js SharePoint Data Visualization.

If you can't read please download the document

Transcript of With HighCharts & D3.js SharePoint Data Visualization.

  • Slide 1

With HighCharts & D3.js SharePoint Data Visualization Slide 2 About me Daniel Segan Senior Software Engineer @ BlueMetal Based in NYC 15+ Years Experience SharePoint, Web /.NET Development, Enterprise Software, BI, Data, Agile Projects Collaboration, Line-of-Business, Integration Industries: Financial Services, Professional Services, Manufacturing, Advertising, Pharmaceutical, Construction, Education, Non Profit Slide 3 Modern technology, craftsman quality. Were an interactive design and technology architecture firm matching the most experienced consultants in the industry to the most challenging business and technical problems facing our clients. The Modern Application Company Slide 4 Strategy. Design. Enterprise Architecture. Strategy & Design Devices & Mobility Collaboration & Social Cloud & Services Data & Analytics Slide 5 Our Clients. Industry Expertise. Slide 6 Cross-Platform Solutions Our approach aligns business strategy with technical architecture and capabilities for optimum velocity and impact. Slide 7 Goals Identify some nuances in the data visualization capabilities of the Microsoft BI stack Describe some scenarios where an alternative approach is desirable Offer an introduction to a couple of those alternatives Slide 8 Agenda Questions for the audience Review of the Microsoft SharePoint BI Stack The Dilemma Some Alternatives HighCharts Demo: HighCharts Examples D3.js Demo: Building an animated bar chart with D3 Q&A Slide 9 Questions for you What tools are most of you using today for data visualization? Where do the Microsoft BI tools work the best? Where have they fallen short? What kind of BI functionality are your users asking for? Better looking dashboards? More functionality? Richer Mobile Experience? What level of familiarity do you have with JavaScript? Its really not that bad Slide 10 DISCLAIMER Slide 11 Chart Web Parts And theyre gone Slide 12 SQL Server Reporting Services Originally introduced as an add on to SQL Server 2000 Has come a long way! Integrates with SharePoint for Deployment / Publishing / Rendering Supports subscription model Scalability Data Caching Server load balancing and redundancy Slide 13 SSRS: The Good Accessible Development Environment Skills transfer from Crystal Reports, Access Flexible Data Sources Nearly all Databases, XML, Text Files, SharePoint Join data across data sources Robust Document Exporting / Printing Support Word, Excel, PDF, Text, etc. Built in Pagination Was designed with printing in mind Slide 14 SSRS Reports are relatively static Parameters, Hide/Show sections, Conditional formatting, links between reports Chart Layouts Built in charts work for the most standard scenarios, but there is limited flexibility you cant simply create a new chart type. Infrastructure / Licensing Some companies just dont set it up or have the licensing to support it Slide 15 SSRS Appearance Great for rows / columns Charts / Fonts appear pixelated, dated Front-end Extensibility JavaScript Hacks You can do it, but its no fun E.g Same Server URL Issue Difficult to maintain / debug Slide 16 Excel Services / Excel Web Application Extremely accessible Everyone kind of knows how to use Excel Very easy to quickly deliver a remarkably functional solution Mature Product In its current versions (2013 / O365) it really shines. Extensible JavaScript Object Mode (JSOM) allows you to interact with workbooks programmatically Slide 17 Excel Services / Excel Web Application Looks like Excel Cell based layout / Standard Excel Charts User Experience Can sometimes be confusing Feels canned Additional Setup Requires Services Licensing Enterprise CAL Slide 18 Power Pivot / Power View Familiar Tools Extends Excel, leverages knowledge of Pivot Tables DAX is similar to Excel functions and expressions Pivot Incredibly easy to slice and dice data Rich Dynamic Display of Data Modern Looking with some trade-offs Slide 19 Power Pivot / Power View Complex Setup A lot of moving parts and a somewhat invasive installation cant just set it up on a whim Silverlight HTML5 seems to be on its way, but no real promises yet from Microsoft not really an option for mobile users Refresh Limited Refresh Schedule Licensing Enterprise CAL Slide 20 Power BI O365 Based BI Suite 100% Cloud Uses Power Pivot / Power View Adds more capabilities Power Query, Power Map, Integration with HD Insights, Windows Store App HTML5 Rendering Nice! Truly awesome potential Demos are breathtaking Rapid release cycle Slide 21 Power BI Limited to O365 Not sure when if/when features will be available on-prem, Possibly never! A lot of people are not ready for the cloud Slide 22 The dilemma (hitting that brick wall) Cant do what I want Due to the design of the tool or some technical limitations, I cant display the data how I would like to Quick and Dirty I am unable to use the standard BI tools because they arent set up, I dont have access, or I dont have the licensing Lame Visuals The data is right and the report works, but it just doesnt pop Slide 23 What do we want? Flexible Layout Mobile Friendly Modern Dynamic Look & Feel Vector Based Extensible Flexible Data Sources Wide Browser Support SharePoint 2010 / 2013 / O365 No Obscene Licensing Costs Slide 24 Some alternatives Slide 25 Based on JavaScript Easy to extend functionality Vast Array of Plugins for both HighCharts and D3.js Dynamic Visualizations can have Animations, update display Open Source Both options are open source HighCharts is not free for business use Active Communities Easy to find answers to questions / get support Tons of Sample Code If you are looking to do something, chances are it or something like it has been done. Slide 26 Getting the data 100% Client Side Approach We cant directly query a SQL Database But we can do other things Slide 27 Getting the Data Array JSON / JSONP OData TSV / CSV / XML SharePoint JSOM SharePoint REST HTML / DOM SQL ServerWCF Slide 28 HighCharts Pure JavaScript based charting library Chart Types line, spline, area, area spline column, bar, pie, scatter angular gauges area range, area spline range, column range, bubble, box plot error bars, funnel, waterfall, polar chart types Charts can be Interactive Clickable, Hover, Animation Slide 29 TD Ameritrade Windows 8 Store App Real-time streaming quotes, Charts, Market data, Order status, News Account information, Balances and positions, Transaction history Slide 30 HighCharts Licensing Free for non-profits / Free to Developers Site or Developer Licensing for Commercial / Government Compatibility Works on all modern browsers Support for legacy versions of IE Slide 31 HighCharts Solution Example Slide 32 Demo: HighCharts Examples 32 Slide 33 D3.js Slide 34 Slide 35 Open Source Used extensively by the New York Times for rich / interactive infographics Developed by Mike Bostock Based on a long history of other similar work Slide 36 D3.js Prefuse 2005 Java Flare 2007 Action Script/Flash Protovis 2009 JavaScript D3 2011 JavaScript Slide 37 D3.js jQueryD3 AJAXYES AttributesYES CSSYES DimensionsYESNO EffectsYES EventsYES ManipulationYES SelectorsYES TraversalYES Data BindingNOYES More than just visualization Slide 38 Demo: D3.js Examples 38 Slide 39 D3.js How does it work D3 is set based Operations occur on the entire set of object think SQL Data is Bound to DOM elements this is called a join You define the binding operation and let it happen; there is no for loop E.g. For every data object, draw a circle Attributes Operations can use the attributes of the data E.g. if the Gender Attribute is Male make the circle blue Slide 40 D3.js How does it work Get your data Fetch list items from a SharePoint list in JSON format using REST API Select DOM nodes you want to work with Translate the data objects into DOM elements and attributes Bind your data to DOM elements (Join) Enter New data, for which there were no existing elements [Update New data joined successfully to a new element] [Exit Existing elements, for which there were no new data] __data__ - Data objects are bound to this Attribute Key Function determines the Primary Key used in Update / Exit Slide 41 D3.js - SVG Slide 42 Demo: More D3.js Examples 42 Slide 43 D3.js - Layouts BundleChordClusterForce HierarchyHistogramPackPartition PieStackTreeTreemap Slide 44 D3.js Important Ideas Scales Functions to map input domain to an output domain General Update Pattern The general update pattern is used when a data-join is followed by operations on the enter, update and exit selections in order to actively draw new elements, update existing elements, and remove elements no longer needed. Slide 45 Demo: Building a Bar Chart with D3.js 45 Slide 46 D3.js Learning Resources Main Website: d3js.org GitHub mbostock/d3 Local General Assembly Data Visualization Workshop Slide 47 Questions? 47 Slide 48 Info Daniel Segan Email: [email protected]@bluemetal.com Twitter: @dsegan Julie Turners Solution & MSDN Article http://bit.ly/SODo5O