New Mexico .NET User Group
Windows Presentation Foundation
Tim HuckabyCEO, InterKnowlogy
Microsoft Regional Director & MVP
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
Agenda
• WPF & XAML• Intro to Advanced in an hour….• Smart Client Technology Roadmap• Demos
New Mexico .NET User Group
Web vs. WPF – NY Times Reader
What the hell 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
New Mexico .NET User Group
Gratuitous XAML Demos
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
New Mexico .NET User Group
Hello World with VS.NET Orcas B2
WPF VisionWPF 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 FAQ1. 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
Best way to deliver superior user experiences• Improve usability, productivity, and
satisfaction• Increase developer productivity• Expand product relevance
Sets new bar for a modern client platform• Unified developer platform for
applications, documents, and graphics• Integrated, vector-based composition
engine• Support for declarative and procedural
programming
New Mexico .NET User Group
Hello World WPF with Expression Designer and Expression Blend
New Mexico .NET User Group
The Scripps Research Institute
Reminder: Start the TSRIDEMOSVR vpc
New Mexico .NET User Group
C-MEA Smart Client Front-end for
SharePoint 2007
Tim HuckabyCEO – InterKnowlogy
Microsoft Regional DirectorMicrosoft MVP – .NET
Marketing Highlights
• Demoed in the Steve Ballmer Keynote at the Vista / Office 2007 Launch in NY
• Featured as a technical article in .NET Developers Journal Magazine
• BioIT Alliance • Accelerate technology solutions within the Life Science Industry• InterKnowlogy is a founding member of the BioIT Alliance.
• Video for Microsoft WPC & MGX Launches• Video for Microsoft Vista / Office Launch• MSDN Channel 9 Interview• Highlighted on .NET Rocks! Interview• Highlighted in TechEd Keynote sessions• Demoed at WPC Keynotes
Media Highlights:TRSI Media Coverage.docx - Shortcut.lnk
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• SharePoint 2007 Collaboration
• Proven collaborative solution with SharePoint 2007
• Data is stored within SPS hierarchy• Each Cancer / Sars Entity is a site
• Provides a secure searchable infrastructure but…
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
C-ME Architecture• Smart client for rich
visual experience and ease of finding information
• XML Web Service interfaces
• SharePoint 2007 for storing data, documents and Metadata
• No custom SQL structures
Windows Vista.NET 3.0
WPF Application
SharePoint 2007
Internet
New Mexico .NET User Group
Tim HuckabyCEO – InterKnowlogy
Microsoft Regional DirectorMicrosoft MVP – .NET
C-ME – A .NET 3.0 Smart Client for SharePoint
2007
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
onta
ins
Con
tain
s
Con
tain
s
Con
tain
s
Contains
Inhe
rits
How the 3d WPF Works…
3D with WPFCheck out the method level support for
Rotation
This is why you should have paid attention in high school calculus..
New Mexico .NET User Group
Collective Molecular Environment
The Future: 3D Collaborator Opens AutoCAD *.dwg Files
Natively
Existing Prototype
• 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
• Interactive experiences for devices, PC & Mac platforms• Strict subset of Windows Presentation Foundation• Lightweight download• Programming model uses XAML + JScript• Access to all WPF tooling
<XAML> <Button Width="100px"> OK <Button.Background> LightBlue </Button.Background> </Button></XAML>
WPF-based Tools
Silverlight
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