![Page 1: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/1.jpg)
Tim HuckabyCEO, InterKnowlogyMicrosoft RD & MVP
Declarative based UI programming:WPF, Silverlight & Surface
![Page 2: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/2.jpg)
About…
• InterKnowlogy (www.InterKnowlogy.com)• Tim Huckaby, CEO ([email protected])
– Custom Application Development / Consulting / Software & Systems Engineering Firm headquartered in Carlsbad, CA
– Design, Architect, Build and Deploy Enterprise Class Applications – Industry Experts:
•Most of the employees are published, MVPs, RD, Speakers, etc.•Microsoft .NET Application development since 2000•Microsoft .NET Rich Client Pioneers / Industry Leaders•Microsoft Touch Application Development Leaders (Surface / Windows 7 / Silverlight 3)•Information Worker Solutions (VSTO & SharePoint)•Integration / Messaging, B2B / B2C, Wireless / Mobility •Leading Edge: Surface, WPF, Silverlight, Win7 touch, SharePoint, VSTO•Cutting Edge Solutions on emerging Microsoft technologies•Largest Client: Microsoft
![Page 3: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/3.jpg)
Declarative Programming
Layout and Controls
Events and Commands
Working with Data
Session Agenda
Styles
![Page 4: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/4.jpg)
Reference Applications Demo
Tim HuckabyCEO, InterKnowlogyMicrosoft RD & MVP
DEMO
![Page 5: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/5.jpg)
Declarative Programming
• XAML replaces code• Attributes control Layout and Style• Event handlers wired-up in XAML• Declarative Data Binding
![Page 6: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/6.jpg)
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
![Page 7: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/7.jpg)
Sample XAML
Runs in a WPF Application:
Runs in the Browser::
![Page 8: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/8.jpg)
Declarative Programming Gotcha(s), tips & tricks
• Not all XAML is created equal• Silverlight was designed to be a small subset
of WPF not a direct port• Surface works with gestures so unique
versions of some controls are required• The Surface SDK is going to permeate WPF
and Silverlight to provide a consistent API for touch across the stack.
![Page 9: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/9.jpg)
Declarative Programming: XAMLProductSeach in WPF & Silverlight
Surface XAML
Tim HuckabyCEO, InterKnowlogyMicrosoft RD & MVP
DEMO
![Page 10: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/10.jpg)
Layout Overview
• Content rendering flows inside parent• Fixed positioning (Canvas) is seldom used• Panels are used to house content• Margins and Padding over fixed size
![Page 11: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/11.jpg)
Panels (ALL)• StackPanel
• Arranges child elements into a single line that can be oriented horizontally or vertically.
• Grid• A flexible grid area that consists of columns and rows.
• Canvas• An area within which you can explicitly position child
elements by using coordinates that are relative to the Canvas area.
![Page 12: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/12.jpg)
Panels (WPF and Surface)• WrapPanel
• Positions child elements in sequential position from left to right, breaking content to the next line at the edge of the containing box.
• DockPanel• An area where you can arrange child elements either
horizontally or vertically, relative to each other.
![Page 13: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/13.jpg)
Positioning
• Horizontal and Vertical Alignment• Margin• Padding
Margin
Text Block Text Block
Padding
![Page 14: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/14.jpg)
Layout DemoWPF -warehouse\ProductLocation.xaml
Silverlight-StoreInformation.xaml (in controls/store)
Tim HuckabyCEO, InterKnowlogyMicrosoft RD & MVP
DEMO
![Page 15: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/15.jpg)
Controls Overview
• Not all controls are created equal• Silverlight is a subset of WPF so certain
controls have not ported over yet• Surface relies on touch so it has unique
versions of some controls
![Page 16: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/16.jpg)
Standard Common Controls
• TextBox• Button• CheckBox / ComboBox• Image• ListBox• Tab
![Page 17: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/17.jpg)
WPF Controls
• Menu and Toolbar• TextBlock• InkCanvas / InkPresenter• Expander• TreeView• DocumentViewer• UniformGrid
![Page 18: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/18.jpg)
Silverlight Controls
• DataGrid• Calendar• ProgressBar
![Page 19: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/19.jpg)
Surface Controls
• ScatterView• Menu• TagVisualizer• InkCanvas
![Page 20: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/20.jpg)
Controls Demo
Tim HuckabyCEO, InterKnowlogyMicrosoft RD & MVP
DEMO
![Page 21: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/21.jpg)
Working with Data
• Overview• Simple Data Binding• Complex Data Binding
![Page 22: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/22.jpg)
Data Binding Overview
• Simple Field level Data Binding• Complex Data Binding to multiple controls at a
time (Master/Detail/Detail)• Client-Side Sorting and Filtering• Support for binding to Objects, XML and
Relational data sources
![Page 23: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/23.jpg)
Simple Data Binding
• Simple Data Binding using Business Objects• Support for two-way synchronization in simple
objects via the INotifyPropertyChanged interface
• Implicit and Declarative binding via the DataContext
![Page 24: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/24.jpg)
Complex Data Binding
• Binding to Lists• Supports two-way data binding to list if list
inherits from ObservableCollection<T>• Data Templates• Sorting• Filtering• Master/Detail/Detail
![Page 25: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/25.jpg)
Working with Data Demo
Tim HuckabyCEO, InterKnowlogyMicrosoft RD & MVP
DEMO
![Page 26: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/26.jpg)
Adding Style to Your Application
• Overview• Resources *• Triggers *
* Partial or no support in Silverlight
![Page 27: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/27.jpg)
Styles Overview
• What are styles?• Problems they address in WinForms 2.0
– Styling controls one at a time– Unnecessary Custom Control Creation
• Similarities to Cascading Style Sheets– Inline declaration– Page level declaration– Separate file declaration
![Page 28: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/28.jpg)
Style Examples
![Page 29: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/29.jpg)
Resources
• Static Resources– Loaded when Window or Page Loads– Leads to slower page loading– Changes to underlining values are not propagated
• Dynamic Resources *– More overhead to allow for constant updates– Can only be used to set dependency properties– Can potentially improve Page and Window load time
* Not supported in Silverlight
![Page 30: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/30.jpg)
Resource Dictionary
• Contains hash table of resources• Great way to organize resources• Resource.MergedDictionaries combines many
different file based resources *
* Not supported in Silverlight
![Page 31: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/31.jpg)
Triggers
• Setters that are set based on one or more conditions
• Three Types of Triggers– Property – Invoked when the value of a
dependency property changes– Data – Invoked when the value of a plain .NET
property changes– Event – Invoked when a routed event changes
Not supported in Silverlight
![Page 32: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/32.jpg)
The Silverlight Visual State Manager
• Alternative to Triggers in Silverlight• Promotes separation between UI and code• Controls have States and State Groups• States within a State Group are immutable• Fully supported in Blend
Not supported in WPF
![Page 33: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/33.jpg)
Adding Style to Your Application with Blend
Tim HuckabyCEO, InterKnowlogyMicrosoft RD & MVP
DEMO
![Page 34: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/34.jpg)
Summary• Layout in XAML is flexible• Each technology has it’s own set of controls• Data Binding is rich & supports many data types• Styles bring life to your applications• The learning curve can be steep, but is worth it.• Download all my resources and dedicate some time to
learn.
![Page 35: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/35.jpg)
Where to go next:http://WindowsClient.InterKnowlogy.com
• Windows Client Guidance Microsoft Platform Solution Architecture for the Application Developer
by Tim Huckaby
• The “Anchor Document” to a ton of Rich Client Guidance
![Page 36: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/36.jpg)
WPF: Where to go Next Free Resources• WindowsClient.net - this is the official Microsoft community
portal for WPF development, and is chock full of great resources
• Windows Client Development Samples, Guidance, FAQs and Blogs - Contains an aggregation of a ton of great stuff on the Windows Client Development platform.
• Learn WPF page - this page links to podcasts, labs, and the very popular "how do I?" videos
• MIX University's WPF Bootcamp - this is a full 3-day video training course on WPF, in which expert instructors guide you from the surface into the depths of the technology stack
![Page 37: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/37.jpg)
Silverlight & Surface: Where to go Next Free Resources
• http://silverlight.net - this is the official Microsoft community portal for Silverlight development
• http://www.microsoft.com/surface - this is the official Microsoft community portal for Surface
![Page 38: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/38.jpg)
Where to go NextBooks
Windows Presentation Foundation Unleashed (WPF)
by Adam Nathan, Daniel Lehenbauer
Essential Windows Presentation Foundation (WPF)
by Chris Anderson
Silverlight In Actionby Chad Campbell and John Stockton
![Page 39: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/39.jpg)
Where to go…soon…• Windows Presentation
Foundation A Scenario-Based Approach
by Billy Hollis
• “Early April…I hope…”B. Hollis, 12/7/07
• “October…”B. Hollis, 6/3/08
• “It’s not going to be done in April.”
B. Hollis, 2/24/09• “I took a .NET 4.0 dependency. Projected date now Jan
2010, because it can’t come out until VS2010 is released.”
• B. Hollis, 4/29/09
![Page 40: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/40.jpg)
Where to go next :The InterKnowlogy WPF & Silverlight Reference Applications
![Page 41: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/41.jpg)
Tim Huckaby, InterKnowlogy• More info on InterKnowlogy:
– www.InterKnowlogy.com
• Contact me: Tim Huckaby
– E-mail: [email protected]– Phone: 760-444-8640– Blog: http://team.interknowlogy.com/blogs/timhuckaby
• About Tim Huckaby…– CEO, InterKnowlogy– Microsoft® Regional Director – Southern California– Microsoft® .NET Partner Advisory Council Founder / Member– Microsoft® MVP - .NET – Microsoft® Surface Partner Advisory Council– INETA Speaker – International .NET Users Group Association– Windows and .NET Magazine Advisory Board Member– .NET Developers Journal Magazine Advisory Board Member– Author / Speaker
![Page 42: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/42.jpg)
DEMO
Tim HuckabyCEO, InterKnowlogyMicrosoft RD & MVP
Visual Studio Tools for the Office System & the Windows Presentation Foundation
![Page 43: Tim Huckaby CEO, InterKnowlogy Microsoft RD & MVP](https://reader035.vdocuments.site/reader035/viewer/2022062814/56816882550346895ddefe53/html5/thumbnails/43.jpg)
Tim Huckaby, InterKnowlogy
• More info on InterKnowlogy:– www.InterKnowlogy.com
• Contact me: Tim Huckaby– E-mail: [email protected]
or [email protected]– Phone: 760-444-8640– 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