WPF for ASP.NET Developers
Brian Noyes gave a presentation to the Cleveland .NET SIG last night on WPF for ASP.NET Developers. I took some notes, which I’ll present a few of here in case they’re helpful to anyone else.
- WPF
- Logical Pixels, not physical pixels, each 1/96 of an inch
- Vector Graphics based
- Containers
- Many controls are containers
- Support composition (images within buttons within buttons etc.)
- Declarative XAML
- Documents and Media are 1st class objects
- Video/Audio
- Word DOCs, PDF, etc.
- Supports Interop (both ways) with Windows Forms in about 4 LOC
- Requires .NET 2.0
- New features will require .NET 3.0/3.5
- Application Types
- Windows Application
- Same as Windows Forms
- Can support ClickOnce deployment
- XBAP
- XAML Browser Application
- Runs in the browser transparent to the user
- Behind scenes, uses ClickOnce to deploy
- Limited Security Context
- XAML in the Browser
- Static – no script/DLLs
- Basically a way to render without resorting to HTML
- Silverlight 1.1 – What’s needed?
- Runtime
- SDK
- Orcas B1 and Tools
- Expression Blend 2
- Silverlight 1.1 – Features
- .NET Codebehind
- Some Controls
- Access to BCL
- LINQ
- Networking stack including REST/RSS
- Dynamic Language Support
- Some DRM story
- XAML Basics
- Elements define objects or set properties – similar to ASP.NET markup
- XML namespaces scope objects defined in markup
- Think Imports or using statements
- Dependency Properties – Attached Property
- Objects can refer to properties of their containers
- e.g. <Grid><Image Grid.Column=”1” … /></Grid>
- Also used to affect behavior, particularly in WF
- Note calls to InitializeComponent() at design time, even though this doesn’t exist until runtime.
- Data Binding
- Example: Text=”{Binding Path=Title}”
- Window.DataContext is the property to assign collections or objects to
- Blend2
- Supports Adding Events to Controls if VS is used at same time
- Switches focus to VS and adds the event
- Requires VS to compile the app then before Blend can preview it
- My take – better than hand writing the events but very klugey to have to jump between the tools, especially when MSBuild would be so easy to call from Blend.
Overall it was a good overview. I missed the very beginning. The slides and demos and such are available on Brian’s blog. If that doesn’t work, try the .NET SIG Presentations area.