Building Data Visualization Applications with WPF
Tim Huckaby
InterKnowlogy, CEO
Microsoft RD & MVP
VPF303
About…
• InterKnowlogy (www.InterKnowlogy.com)● Tim Huckaby, CEO - ([email protected])
● Custom App Dev / Consulting / Software & Systems Engineering Firm headquartered in Carlsbad, CA
● Microsoft Gold Partner managed in SoCal and Redmond● Design, Architect, Build and Deploy enterprise class applications ● Industry Experts:
• 90% of the company is published• Microsoft .NET Application development for 5+ years!• Microsoft .NET Smart Client pioneers / industry leaders• Information Worker Solutions• Integration / Messaging, B2B / B2C, Wireless / Mobility • Microsoft BizTalk Web Services, Microsoft Active Directory, Security, SSO,
Authorization, Authentication• Solutions on the emerging Microsoft servers• Largest Client: Microsoft
WPF & XAML - Intro to Advanced in an hour….
Data Visualization
Smart Client Technology Roadmap
Demos, demos, demos!
Session Objectives And Agenda
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
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 & perf 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
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
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
The Peter Kuhn Lab at The Scripps Research Institute (TSRI)
• Research Focus● Early detection and therapy management
of cancer patients● Modulation of protein interactions for
therapeutic intervention
• Projects● Cancer bioengineering partnership● Structural Proteomics of SARS
The Problem
• Laboratory Environment● Research teams work in a distributed environment● Manual, paper notebooks and prone to error● Have stove pipe systems which capture data● Status management requires contacting the
researcher directly
• Collaboration Issues● Data Recorded on scraps of paper then re-written
in lab notebooks● Pasting gel/chromatogram pictures in notebooks● Too many crystal image files to keep track of & too big● Manually linking patient information experimental results● No way to electronically search for images
The Solution: 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
Collaborative Molecular Environment
• Architectural Diagram
Custom 3DRendering
LibraryCustomBusiness
LayerLibrary
C-ME Windows Application
WPF
.NET Framework 3.0
WPF Smart Client Application
CustomSite
CreationWeb
Services
MOSSWeb
Services
MOSSWeb
Pages
MOSS Object Model
SharePoint 2007 Server
Launches
Consumes
∞
∞
(root) Research Site[Collaboration Portal]
ProjectSub-site
[Team Site]
1 1
MOSS Sites/Content Database
Site/Content Structure
Root EntityDocument Library
(.pdb files, etc.)
Entity Site Structure
∞
∞Entity
Sub-site[Team Site]
AnnotationDocument Library
(contains context metadata)
AutomaticallyGenerate Team Sites
CollaborativeMolecularEnvironmentArchitecture Diagram
For more information, please contact Tim Huckaby at [email protected].
Artifact Control
Artifact Viewer
Image Viewer PDB Viewer
Residue Control
Structure Control
Molecule
Atom Residue
Con
tain
sC
on
tain
s
Con
tain
s
Con
tain
s
Con
tain
s
Contains
Inhe
rits
How the 3d WPF Works…
3D with WPF
Check out the method level support for
Rotation
This is why you should have paid attention in high school calculus..
3D Collaborator Opens AutoCAD *.dwg Files Natively
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
The IHC Catheter Angiography Annotation Application
• Interactive experiences for devices, PC & Mac platforms
• Strict subset of Windows Presentation Foundation• Lightweight download• Programming model uses XAML + JScript• Access to WPF tooling
Lightweight WPF runtimeLightweight WPF runtime
<XAML> <Button Width="100px"> OK <Button.Background> LightBlue </Button.Background> </Button></XAML>
WPF-based Tools
Where to go next
• Windows Presentation Foundation Unleashed (WPF)
• by Adam Nathan, Daniel Lehenbauer
• Essential Windows Presentation Foundation (WPF)
• by Chris Anderson
Tim Huckaby, InterKnowlogy
• More info on InterKnowlogy:● www.InterKnowlogy.com
• Contact me: Tim Huckaby● E-mail: [email protected]
or [email protected]● Phone: 760-930-0075 x201● Blog: http://blogs.InterKnowlogy.com/TimHuckaby
• About Tim Huckaby● Microsoft® Regional Director – Southern California● Microsoft® .NET Partner Advisory Council Founder / Member● Microsoft® MVP - .NET● Microsoft® Prescriptive Architecture Group Advisory Council● Microsoft Office® Developer Advisory Council● Microsoft® MSF advisory board member● INETA Speaker – International .NET Users Group Association● Windows and .NET Magazine Advisory Board Member● .NET Developers Journal Magazine Advisory Board Member● Author / Speaker
Your Feedback is Important
Please fill out a session evaluation form and either put them in the basket near the exit
or drop them off at the conference registration desk.
Thank you!