46
Dave Bost Developer Evangelist http://davebost.com/blog

WPF Applications, It's all about XAML these days

Embed Size (px)

DESCRIPTION

This is a session I delivered at Indy TechFest '08 on Oct. 4, 2008. It serves as an introduction to building Windows Presentation Foundation applications using Visual Studio 2008 and Expression Blend.

Citation preview

Page 1: WPF Applications, It's all about XAML these days

Dave BostDeveloper Evangelisthttp://davebost.com/blog

Page 2: WPF Applications, It's all about XAML these days

Dave BostDeveloper [email protected]://davebost.com/bloghttp://twitter.com/davebost

Page 3: WPF Applications, It's all about XAML these days

http://thirstydeveloper.comhttp://thirstydeveloper.com

“Looking at someone’s code, but with audio”

Page 4: WPF Applications, It's all about XAML these days

Create WPF application withVisual Studio 2008Expression Blend

A WPF application is managed codeIt runs on the .NET 2.0 runtime

Some classes similar to the WinForms modelApplication class Has Window class instead of Form classUse .Show() or .ShowDialog to display Page class for forward/back navigation

Host WinForms controls on WPF windowHost WPF controls on Winform forms

Page 5: WPF Applications, It's all about XAML these days
Page 6: WPF Applications, It's all about XAML these days

Manhattan Associates: Integrated Logistics Solutions (ILS)Supply Chain OptimizationStatus: Shipping Info: http://www.manh.com/ils_net/

Page 7: WPF Applications, It's all about XAML these days

Zurich Airport “Zeus”Business monitoring for airport operationsStatus: CompleteCase Study: microsoft.com

Page 8: WPF Applications, It's all about XAML these days

SilverWareSilverWare Avrio is a powerful hospitality industry solution with a highly intuitive GUI that makes it one of the most accessible P.O.S. solutions that restaurateurs and staff can use.Status: Shipping

Page 9: WPF Applications, It's all about XAML these days

Entellium RaveCRM software for small and medium businessesStatus: Launched

Page 10: WPF Applications, It's all about XAML these days

Eikos Partners: OpenTick Opentick is an open-source data provider that delivers free real-time and historical market data for trading systems and trading platforms.Status: Shipping

Page 11: WPF Applications, It's all about XAML these days

Asahiyama Zoo Portal for the virtual exploration of one of Japan’s largest zoos.Status: Shipping Live Site: http://www.asahiyamazoo-aict.jp/asahiyamazoo.xbap

Page 12: WPF Applications, It's all about XAML these days

YahooNext-generation instant messaging clientStatus: Public Beta

Page 13: WPF Applications, It's all about XAML these days

Libronix NotescrapsPost-it note softwareStatus: Shipping Download: http://www.notescraps.com

Page 14: WPF Applications, It's all about XAML these days

Seattle Post-Intelligencer News ReaderReading experience for Seattle-based newspaperStatus: CompletedWebsite: http://seattlepi.nwsource.com

Page 15: WPF Applications, It's all about XAML these days

OTTONext-generation retail experienceStatus: CompletePR: Microsoft PressPass

Page 16: WPF Applications, It's all about XAML these days

FujitsuFujitsu North American Retail released the Global Store product line using WPF as the UI for their point of sales system.Status: Deploying in AMC theaters in May 2008

Page 17: WPF Applications, It's all about XAML these days

Wells FargoNext-generation ATM clientStatus: In deployment to new ATMs across the US

Page 18: WPF Applications, It's all about XAML these days

British LibraryRevolutionary new 3D experience for accessing priceless literary treasuresStatus: Complete

Page 19: WPF Applications, It's all about XAML these days

Scripps HealthcareAllowing cancer researchers to collaborate in the search for a cureStatus: Late Beta (Shown at Windows Vista BV Launch)PR: .NET Developer’s Journal

Page 20: WPF Applications, It's all about XAML these days

Electric Rain STANDOUTHigh-end tool for delivering visually stunning presentationsStatus: Beta

Page 21: WPF Applications, It's all about XAML these days

Whether you are designing rich standards-based websites, ultimate experiences on the desktop, or managing digital assets and content, Expression professional design tools give you the flexibility and freedom to bring your vision to reality.

Page 22: WPF Applications, It's all about XAML these days

Extensive Application Markup LanguageExtensive Application Markup Language•Toolable, declarative markup•Code and content are separate•Compatible with Windows Presentation

Foundation

<Button Width="100"> OK <Button.Background> LightBlue </Button.Background></Button>

XAML

Button b1 = new Button();b1.Content = "OK";b1.Background = new SolidColorBrush(Colors.LightBlue);b1.Width = 100;

C#

Dim b1 As New Buttonb1.Content = "OK"b1.Background = New _ SolidColorBrush(Colors.LightBlue)b1.Width = 100

VB.NET

Page 23: WPF Applications, It's all about XAML these days

designers & developers: Speak the same language

designers design

designers & developers: Speak different languages

developers add business logic

designer developer

The new way for designers and developers to work together

Page 24: WPF Applications, It's all about XAML these days
Page 25: WPF Applications, It's all about XAML these days

WPF includes a flexible, panel based layout engineWhat is layout?

Measuring and arranging a region of WPF UIAll layout is handled by panelsPanel has ultimate control over every child

Child size, location, ZOrderChild location relative to other children

Frees you from hard coding sizes/locationsMix and combine panels

Page 26: WPF Applications, It's all about XAML these days

<Grid/><Grid/>

Page 27: WPF Applications, It's all about XAML these days

<Canvas/><Canvas/>

Page 28: WPF Applications, It's all about XAML these days

<StackPanel<StackPanel/>/>

Page 29: WPF Applications, It's all about XAML these days

<StackPanel<StackPanel/>/>

Page 30: WPF Applications, It's all about XAML these days

<DockPanel/<DockPanel/>>by

lee.mccain.photorama

http://flickr.com/photos/mccain007/2218878568/

Page 31: WPF Applications, It's all about XAML these days

<WrapPanel/<WrapPanel/>>

by thomas hawkhttp://flickr.com/photos/thomashawk/379282442

Page 32: WPF Applications, It's all about XAML these days
Page 33: WPF Applications, It's all about XAML these days

Styles provide a convenient way to itemize a set of property values for an element type

Example: Set font attributes for all textboxesTo define a Style

Styles are defined in a Resource elementAny element in XAML can have a resource sectionUsual locations are Page, Window and Application levelEvery Style in resource must have a x:Key valueUse TargetType to limit style to one element type

Page 34: WPF Applications, It's all about XAML these days

To apply a Style to an ElementReference the Style by setting the Style attributeUse the Markup Extension syntax '{}'

Page 35: WPF Applications, It's all about XAML these days

Data Binding & TemplatesData Binding & Templates

Page 36: WPF Applications, It's all about XAML these days

Binding overviewWPF synchronizes a data source and data targetAdd binding to target element with {Binding ***}

Change notificationWPF dependency system updates target upon source changes provided:

Source must implement change notificationVia IPropertyNotifyChanged and other mechanisms

Single bindingBind a target to a single property on sourceExample: TextBlock.Text to Customer.Age

List bindingBind a target to a array, collection etc.Example: Treeview. ItemsSource to XML source

Page 37: WPF Applications, It's all about XAML these days

Templates provide a convenient way to centralize the replacement UI for:

Tabular dataHierarchical dataControls

Data TemplateDefine the UI for one Type

Example: Customer classRender UI with six TextBlocks and one Image

Page 38: WPF Applications, It's all about XAML these days
Page 39: WPF Applications, It's all about XAML these days

WPF is a rich UI programming frameworkSince WPF is managed code, working with .NET APIs is easy and familiarCore concept is the composable UI model

Create UI out of any valid WPF elementMix and merge elements Formalize these replacement parts with Styles and Templates

Page 40: WPF Applications, It's all about XAML these days

Visit MSDN at msdn.microsoft.com

Visit the URL below for additional information

http://windowsclient.net/

Virtual Labshttp://msdn.microsoft.com/virtuallabs

MIX Universityhttp://visitmix.com/university

Page 41: WPF Applications, It's all about XAML these days

For the latest titles, visitwww.microsoft.com/learning/books/

devtools

Page 42: WPF Applications, It's all about XAML these days

These books can be found and purchased at all major book stores and online retailers

Page 43: WPF Applications, It's all about XAML these days

Course ID Title

6460A Windows Presentation Foundation

For training information and availability

www.microsoft.com/learning

Page 44: WPF Applications, It's all about XAML these days

•Are you ready to take your career as a developer to the next level?

•Looking for a learning experience that is designed for you?

Join MSDN Ramp Up and Summit Your Career!

MSDN Ramp Up is your online source that provides free training and technical resources to help take your development skills to the next level.• Step-by-Step training plans to build your development skills.

• Premium technical content created by expert developers for developers.

• Access to valuable online e-learning, e-references, and virtual labs.

• 50% discount on select certification exams and 30% discount on Microsoft Press training kits.

Join Ramp Up for free today! Go to: http://msdn.microsoft.com/rampup

Page 45: WPF Applications, It's all about XAML these days

Dave [email protected]

thank you!

http://davebost.comhttp://twitter.com/davebost

Page 46: WPF Applications, It's all about XAML these days

© 2007 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.