Building Data Visualization Applications with the Windows Presentation Foundation and SilverLight Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP 2 About… InterKnowlogy (www.InterKnowlogy.com) ● Custom Application Development / Consulting / Software & Systems Engineering Firm headquartered in Carlsbad, CA ● Design, Architect, Build and Deploy Enterprise Class Applications ● Industry Experts: Most of the employees are published Microsoft .NET Application development since 2000! Microsoft .NET Smart Client pioneers / industry leaders Information Worker Solutions (VSTO & SharePoint) Integration / Messaging, B2B / B2C, Wireless / Mobility Leading Edge: Surface, WPF, Silverlight, SharePoint, OBA, Surface Cutting Edge Solutions on emerging Microsoft technologies Largest Client: Microsoft 4 Session Objectives And Agenda Data Visualization: WPF & XAML…and Silverlight Session Objective: To get you excited by showing you “what you can do” so that you start doing it. Why you need Rich Client Applications Smart Client Technology Roadmap Demos, demos, demos!... 5 The Scripps Research Institute: C-me Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP 6 The Scripps Research Institute: C-ME WPF Smart Client for SharePoint 2007 Collaborative Client 2D & 3D views at a molecular level Leverage the collaborate environment of SharePoint 2007 Provide data in the context of the project not in the context of it’s storage Allow users to drag and drop data into the context of the project Smart client then handles the display & annotations of the underlying storage Allow user’s to add ad-hoc information 7 3D with WPF Check out the method level support for Rotation This is why you should have paid attention in high school calculus.. 8 How the 3d WPF Works… Contains Artifact Control Inherits Artifact Viewer PDB Viewer Contains Contains Atom Residue Control 9 Contains Molecule Contains Image Viewer Structure Control Contains Residue What the heck is XAML? Separates the front-end from the back-end Simple declarative programming language suitable for constructing and initializing .NET Objects Usually the most concise way to represent user interfaces (or other hierarchies of objects) Doesn’t need a compile to render The language that almost all WPF related tools emit 10 XAML Demos 11 WPF – News Readers 12 WPF CRUD – Avalon Patient Monitoring. 13 WPF FAQ 1. Does WPF enable me to do something I couldn’t have done before? No. Unless you factor in time & money… 2. Is DirectX dead? No. It is more applicable to advanced 3D developers writing hard-core “twitch” games. 3. Are Winforms dead? No. …but it will not be advanced; the last version was 2.0 in .NET 2005. WPF / Winforms Bastardization Windows 98 Supports WinForms 4. Does WPF run better on Vista than on XP? Yes. 3D objects only get anti-aliasing on Windows Vista or Later Non-rectangular windows only get hardware acceleration on Vista. Vista has a driver model that helps with resource contention – ChartFX Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP 15 RadControls for WPF CTP Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP 16 WPF – how does it work? Built on Top of Direct 3D Converted to 3D triangles, textures and other Direct3D objects & then rendered by hardware Benefits of hardware acceleration & performance due to work being off-loaded to GPUs (unlike GDI based systems) Ensures the maximum benefit of new hardware and drivers Software rendering pipeline as fallback Simulating the "design to dev" WPF experience with Expression Designer and Expression Blend 18 Why WPF? The GDI & USER subsystems were introduced in Windows 1.0 in 1985 OpenGL – Early 90s DirectX – 1995 Goal: Overcome the limits of GDI+ & USER with the productivity of Windows Forms WPF 3D Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP 20 3D Collaborator Technologies used Rendering Autodesk DWF Toolkit (C++ library) Custom DWF C++/CLI (Managed) wrapper C# WPF 3D rendering User interface Built using WPF XAML skin 21 WPF Vision Unified approach to UI, Documents, and Media Integration as part of development and experience Integrated, vector-based composition engine Utilizing the power of the PC throughout the graphics stack Declarative programming Bringing designers directly into application development Ease of deployment Allowing administrators to deploy and manage applications securely 22 Welcome to the Surface PAC! 23 Vision Instead of a PC on every desk, now every desk becomes a computer. History of Surface The concept of an interactive table is born A dedicated group is formed, and more than 85 prototypes are developed The first prototype is presented to Bill Gates The look and feel of Surface is finalized Microsoft Surface is unveiled to the world 25 Mission Change the way people interact with digital information by freeing consumers from the boundaries of today’s technology. VitruView InterKnowlogy’s VitruView is a Microsoft Surface 3D Application. It is based on a prototype we built for InterMountain Healthcare – one of the leaders in technology for the healthcare industry. It leverages 3D digital models from Zygote. Zygote is the world’s leader in 3D anatomical modeling and textures. You can see a video of the functionality of the application here: http://silverlight.interknow logy.com/Videos/VitruView /default.html 27 Gold Certified Partner www.InterKnowlogy.com VitruView 28 Lightweight WPF runtime Interactive experiences for devices, PC, & Mac platforms (and others…) Strict subset of Windows Presentation Foundation Lightweight download Programming model uses XAML + JScript Access to WPF tooling WPF-based Tools <XAML> <Button Width="100px"> OK <Button.Background> LightBlue </Button.Background> </Button> </XAML> Silverlight – InterKnowlogy Demos: iZoofari: The San Diego Zoo Photo Stakr – Wish 43 - Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP 30 Silverlight – Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP 31 •Paradigm shifting software for visual decision making •Software that bridges the gap between design, engineering, and marketing •Deliver easy to use, compelling visualization solutions for everyone For more information contact: Ken Preslo Vice President of Strategic Alliances 310-701-7442 32 WPF will be a first class Silverlight host Web + Desktop Scenarios: Silverlight as cross-platform content viewer for WPF Application Silverlight as scaled down WPF application WPF as offline Silverlight Companion application with lightup on desktop Single source control for both web and desktop Same tools, designers, code, markup, … XBAP for richer browser-hosted applications Where to go next Windows Presentation Foundation Unleashed (WPF) by Adam Nathan, Daniel Lehenbauer Essential Windows Presentation Foundation (WPF) by Chris Anderson 34 Where to go…soon… Windows Presentation Foundation A Scenario-Based Approach by Billy Hollis “Early April…I hope…” B. Hollis, 12/7/07 “October…” B. Hollis, 6/3/08 35 Tim Huckaby, InterKnowlogy More info on InterKnowlogy: www.InterKnowlogy.com Contact me: Tim Huckaby E-mail: TimHuck@InterKnowlogy.com or v-TimHu@Microsoft.com Phone: 760-444-8640 Blog: http://blogs.InterKnowlogy.com/TimHuckaby About Tim Huckaby CEO, InterKnowlogy Microsoft® Regional Director – Southern California Microsoft® .NET Partner Advisory Council Founder / Member Microsoft® MVP - .NET Microsoft® Surface Partner Advisory Council INETA Speaker – International .NET Users Group Association Windows and .NET Magazine Advisory Board Member .NET Developers Journal Magazine Advisory Board Member Author / Speaker Free professional edition of Xceed’s Datagrid for WPF v. 2.0 The first 100 people who register by Emailing: tech-ed08@xceed.com. We need the following information to register them First / Last Name Phone Number Corporate Email Address (Gmail, Hotmail etc. Cannot be used) Mailing address Company Name (Optional) Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP TimHuck@InterKnowlogy.com 37 Video Title 41 Customer Title Name Title Company 42 Demo Title Name Title Company 43 Demo Title Name Title Company 44 Partner Title Name Title Company 45 Announcement Title 46 PowerPoint Template Subtitle color Example of a slide with a subhead Set the slide title in “title case” Set subheads in “sentence case” Generally set subhead to 36pt or smaller so it will fit on a single line The subhead color is defined for this template but must be selected; In PowerPoint 2007, it is the fourth font color from the left 47 PowerPoint Guidelines Font, size, and color for text have been formatted for you in the Slide Master Use the color palette shown below See next slide for additional guidelines Hyperlink color: www.microsoft.com 48 Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Sample Fill Slide for Showing Software Code Use this layout to show software code The font is Consolas, a monospace font The slide doesn’t use bullets but levels can be indented using the “Increase List Level” icon on the Home menu To use straight quotes " instead of smart quotes ”, do this: 1.Click on the Office Button in the upper left corner 2.At the bottom of the menu, choose PowerPoint Options 3.From the left pane, select Proofing 4.Click on the AutoCorrect Options button 5.Select the AutoFormat As You Type tab, and deselect “Straight quotes” with “smart quotes”. Then Click OK. 49 Table Format Table Title Column 1 50 Column 2 Column 3 Column 4 Column 5 Bar Chart Example Chart Title Series 1 Series 2 Series 3 5 4.5 4.4 4.3 3.5 3 2.4 2.5 2 Category 1 51 2 Category 2 2.8 1.8 Category 3 Category 4 Pie Chart Example 10% 23% 52 9% Chart Title 1st Qtr 58% 53 Resources for Developers www.microsoft.com/teched Tech·Talks Live Simulcasts Tech·Ed Bloggers Virtual Labs http://microsoft.com/msdn Developer’s Kit, Licenses, and MORE! Related Content Hands-on Labs (session codes and titles) Interactive Theater Sessions (session codes and titles) Hands-on Labs (session codes and titles) Hands-on Labs (session codes and titles) Track Resources Resource 1 Resource 2 Resource 3 Resource 4 1 Year Subscription! Complete an evaluation on CommNet and enter to win! © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 59