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