Building Data Visualization Applications with the Windows Presentation Foundation and SilverLight...and Surface Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP About… • InterKnowlogy (www.InterKnowlogy.com) • Tim Huckaby, CEO (TimHuck@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, MVPs, RD, Speakers, etc. •Microsoft .NET Application development since 2000 •Microsoft .NET Rich Client Pioneers / Industry Leaders •Microsoft Touch Application Development Leaders (Surface / Windows 7 / Silverlight 3) •Information Worker Solutions (VSTO & SharePoint) •Integration / Messaging, B2B / B2C, Wireless / Mobility •Leading Edge: Surface, WPF, Silverlight, Win7 touch, SharePoint, VSTO •Cutting Edge Solutions on emerging Microsoft technologies •Largest Client: Microsoft Session Objectives And Agenda Data Visualization: WPF & XAML…and Silverlight…and Surface 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 Rich Client Technology Roadmap Demos, demos, demos!... 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 Lightweight WPF runtime • Interactive experiences for devices, PC, & Mac platforms (and others…) • Strict subset of Windows Presentation Foundation • Lightweight download (4.2mbs) • Programming model uses XAML + Jscript + WPF • Access to WPF tooling WPF-based Tools <XAML> <Button Width="100px"> OK <Button.Background> LightBlue </Button.Background> </Button> </XAML> 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 compiler to render • The language that almost all WPF related tools emit Sample XAML Runs in a WPF Application: Runs in the Browser: 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 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 Audience Participation Time - WPF 1. Does WPF enable me to do something I couldn’t have done before? – – No. Unless you factor in time & money… And would like to do more with less… 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 Integration is simple Windows 98 Supports WinForms 4. Does WPF run better on Vista & Win 7 than on XP? – – – – Yes. 3D objects only get anti-aliasing on Windows Vista and later. Non-rectangular windows only get hardware acceleration on Vista and later. Vista & Windows 7 have driver models that help with resource contention. 5. Does Silverlight trump all this other WPF Stuff? – – One would think so with all the marketing dollars that are being thrown at it…. But, in Reality the answer is “No” and it makes solution architecture more important than ever. Surface! Where to go next: http://WindowsClient.InterKnowlogy.com • Windows Client Guidance Microsoft Platform Solution Architecture for the Application Developer by Tim Huckaby • The “Anchor Document” to a ton of Rich Client Guidance WPF: Where to go Next Free Resources • WindowsClient.net - this is the official Microsoft community portal for WPF development, and is chock full of great resources • Windows Client Development Samples, Guidance, FAQs and Blogs - Contains an aggregation of a ton of great stuff on the Windows Client Development platform. • Learn WPF page - this page links to podcasts, labs, and the very popular "how do I?" videos • MIX University's WPF Boot Camp - this is a full 3-day video training course on WPF, in which expert instructors guide you from the surface into the depths of the technology stack Silverlight & Surface: Where to go Next Free Resources • http://silverlight.net - this is the official Microsoft community portal for Silverlight development • http://www.microsoft.com/surface - this is the official Microsoft community portal for Surface Where to go Next: Books Windows Presentation Foundation Unleashed (WPF) by Adam Nathan, Daniel Lehenbauer Essential Windows Presentation Foundation (WPF) by Chris Anderson Silverlight In Action by Chad Campbell and John Stockton 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 • “It’s not going to be done in April.” B. Hollis, 2/24/09 • “I took a .NET 4.0 dependency. Projected date now Jan 2010, because it can’t come out until VS2010 is released.” • B. Hollis, 4/29/09 Where to go next : The InterKnowlogy WPF & Silverlight Reference Applications Tim Huckaby, InterKnowlogy • More info on InterKnowlogy: – www.InterKnowlogy.com • Contact me: Tim Huckaby – E-mail: TimHuck@InterKnowlogy.com – Phone: 760-444-8640 – Blog: http://team.interknowlogy.com/blogs/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