Transcript Slide 1
WPF
Origins – Who, When, Where
Who?
Microsoft
When?
November 2006
Where?
Windows Vista
Windows Server 2003
Windows XP Service Pack 2
What
Application development framework
.NET 3.0 graphical subsystem
Codenamed Avalon
Web-transportable subset (Silverlight)
Why
Features
Media – video, animation, images, documents
Effects – shadows, blurs, transparencies, etc.
Data binding
Design (XAML)
Unified, language-agnostic modeling
View / logic separation – “code-behind”
Performance
2D / 3D hardware acceleration
How – Layers
Presentation Framework
End-user presentation – layouts, animations, data binding
Presentation Core
Properties, dependencies, dispatchers
Common Language Runtime
.NET virtual machine
Media Integration
3D, animations
User32
Legacy system
DirectX
Hardware Accel.
Codecs
Media codecs
How – Internal Structure
Document Object Model (DOM)
Eg. JavaScript’s HTML DOM
Tree of Visual Objects
○ Rendering details (transparencies, clipping, etc.)
Dependency Objects
Event-driven behaviour triggers
Declarative Programming (XAML)
eXtensible Application Markup Language
How – Thread Responsibilities
Media Integration Layer (MIL)
Background thread
Periodically traverses DOM
○ Painter’s Algorithm
○ Caches, buffers and renders elements
UI Manager
Priority-sorted Dispatcher queue
GUI functionality only
○ Like SwingWorkers and Event Dispatch Thread
XAML
eXtensible Application Markup Language
Like the eXtensible UI Language (XUL)
XML-based
eXtensible HyperText Markup Language
(XHTML)
OpenDocument Format (ODF)
Office Open XML (OOXML - .docx, .xlsx, .pptx)
eXtensible Presentation Format (XPF)
Scalable Vector Graphics (SVG)
XML Advantages
Dominant document model language
Readable and generic
XQuery (XML Query Language)
Set of all colours used
○ //@color
Average count of buttons per window
○ count(//button)
XSL (Extensible Stylesheet Language)
XSL-FO (XSL Formatting Objects)
XSLT (XSL Transform)
Development
Microsoft Expression Blend
The artist [tool] formerly
known as Sparkle
Artist-friendly development
○ No Photoshop / UI translation
Searchable components
Scalable modules
Scrollable panel container
Assignment
Install Microsoft Expression Blend trial
\\142.232.18.47\4870\blend.msi
Create GUI in design mode
GridSplitter
Rectangle, featuring
○ Rounded corners
○ Angled gradients
○ Transparency
○ Borders
View and comment XAML