Introducing Windows Presentation Foundation (Avalon) The Next GDI? Shawn Wildermuth Wildermuth Consulting Services, LLC

Slides:



Advertisements
Similar presentations
Brown University Swim Center
Advertisements

The Microsoft Technical Roadshow 2006 Windows Presentation Foundation (WPF) Marcus Perryman
FireMonkey Deep Dive The Next Generation of Business Application Development.
Data Binding in GUI Application Development Patrick O’Brien.
Dinko Jakovljević Microsoft Student Partner | BambooLab
An Introduction To Silverlight Gergely Orosz
Henrico Dolfing Business Segment Partners. Océ Document Technologies GmbH2 June, NET Framework Version 3.0.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Windows Presetation Foundation (WPF) 1. Introduction.
1 Moderne GUI og Silverlight Windows Presentation Foundation.
Introducing Longhorn. What is it? Longhorn is Microsoft’s “most important software release since Windows 95” – due for release 2006 What this talk covers.
Introduction & Welcome Marcus Perryman Mike Taulty
Chapter 1 Understanding the Web Design Environment
Developing a Basic Web Page with HTML
Development of mobile applications using PhoneGap and HTML 5
Powerful, modern desktops enable next generation applications Hardware acceleration brings real-time lighting, texturing and rendering Visual.
WinFX – A Lap Around the Windows Presentation Foundation Bart J.F. De Smet MVP Visual C#
Chapter 1 Variables in the Web Design Environment
WPF For PowerBuilder Developers
Chapter 4 Dreamweaver: Part II The Web Warrior Guide to Web Design Technologies.
2 A First Look at Windows Presentation Foundation Everywhere ("WPF/E") Joe Stegman Lead Program Manager Microsoft Corporation.
Microsoft Windows “Longhorn” future version of Windows OS Jan “Honza” Stoklasa janstok at microsoft dot com janstok at microsoft dot com Academic Program.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Windows Presentation Foundation: The Next GDI? Shawn Wildermuth MVP, MCSD.NET, MCT, Author and Speaker Shawn Wildermuth MVP, MCSD.NET, MCT, Author and.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
1 COS240 O-O Languages AUBG, COS dept Lecture 33 Building Apps Technologies C# (WPF part 1)
Next Generation for Desktop Applications Doncho Minkov Telerik School Academy schoolacademy.telerik.com Technical Trainer
A Jumpstart to WPF by Kevin Grossnicklaus ArchitectNow.
An Introduction to Silverlight Matt Harrington Developer Evangelist, Microsoft October 20, 2011.
Windows Presentation Foundation. Agenda Introduction Developing Applications WPF and WF interoperability Custom Controls Styles and Templates Data Binding.
Windows Presentation Foundation. Goal The goal of Windows Presentation Foundation (WPF) is to provide these advances for Windows. Included in version.
Windows Presentation Foundation Adam Calderon Principal Engineer Interknowlogy LLC
Introduction to HTML Tutorial 1 eXtensible Markup Language (XML)
Understand what kind of applications Windows Presentation Foundation can deliver See how Visual Studio 2008 & Microsoft Expression Blend work together.
1 Metro Style Apps in C++ Karthick 8 th May 2012.
Building RIA for Desktop, Web and Mobile using Silverlight and WPF Giorgio Sardo UX Consultant, Microsoft UK blogs.msdn.com/Giorgio.
CHAPTER TEN AUTHORING.
Windows Presentation Foundation (WPF) Declare Your Next User Interface.
LAYOUT CONTROLS. XAML Overview XAML : eXtensible Application Markup Language pronounced (ZAMEL) is a markup language used to design user interfaces XML-based.
Object Oriented Software Development 9. Creating Graphical User Interfaces.
The Microsoft Technical Roadshow 2007 Rich Client Development in XAML Mark Johnston Developer & Platform Group Microsoft Ltd
Presentation advances in.NET Framework 3.0 Mark Johnston Developer & Platform Group, Microsoft Ltd
1 Introduction to WPFUCN / 2012 Introduction to WPF Introduction to WPF Based on a Microsoft presentation.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Windows Presentation Foundation Ruwan Wijesinghe.
New Features Overview. Agenda Silverlight - Intro Silverlight 3 New Features Overview with Demos, Demos and Demos… RIA Services Overview Demos, Demos,
Discover, Master, Influence1 Windows Presentation Foundation David Burela Senior Developer, Readify.
A Lap Around Windows Presentation Foundation. Why hasn’t UX taken off in software? It’s Difficult! Animation 2D 3D Documents Styled Controls Video Windows.
C# kursus Rohde & Schwarz1 Moderne GUI Windows Presentation Foundation.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
Rujchai Ung-arunyawee Department of Computer Engineering Khon Kaen University.
1 Catching up on Rich Clients (round 1) Mike Ormond, Mike Taulty Developer & Platform Group Microsoft Ltd
Modern Design Principles (MS). Hubs & spoke navigation pattern Hierarchical pattern Best for large collections of related content Content is separated.
1 Välkommen till Sommarkollo Windows Presentation Foundation Per Östman ISV Developer Evangelist
.NET Framework Presentation. About Me Patrik Löwendahl –C# MVP –Certified Vista Touchdown Trainer Cornerstone
Friday, March 8 Creating real Custom Controls Kelvin van Geene 12:15.
Windows Presentation Foundation. User Experience: Recent Past Web HTML Sacrificed UX for portability, connectivity and simplicity 1997 – DHTML.
Part of the Microsoft.NET Framework 3.0 Tomer Shamam.NET Technologies Expert Sela Group
Introduction to Avalon Mike Taulty Microsoft Ltd
Adam Schultz MVVM and WPF. MVVM Model, View, ViewModel A software architecture designed to separate out User Interface design, Business Logic, and Data.
Introduction to Silverlight Development Pavel Yosifovich CTO, Matrix Global; Senior Instructor, Hi-Tech College
What is DirectX? DirectX is built by Microsoft as a collection of API’s (Application Programming Interfaces) for the purpose of multimedia processing.
6/10/ :23 PM TOOL-504T A deep dive into Visual Studio 11 Express for designing Metro style apps using XAML Joanna Mason & Unni Ravindranathan Program.
Avalon – Using Data In Your Applications
Haritha Dasari Josue Balandrano Coronel -
XAML User Interface Creation in C#
Reaching more customers with accessible Metro style apps using HTML5
WPF AKEEL AHMED.
.NET and .NET Core 7. XAML Pan Wuming 2017.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל-Windows 8
Windows Presentation Foundation
Presentation transcript:

Introducing Windows Presentation Foundation (Avalon) The Next GDI? Shawn Wildermuth Wildermuth Consulting Services, LLC

Who I Am Shawn Wildermuth Independent Consultant C# MVP INETA Speaker Book Author – “Pragmatic ADO.NET” – “Prescriptive Data Architectures” - Upcoming This Presentation can be found at: – Shawn Wildermuth Independent Consultant C# MVP INETA Speaker Book Author – “Pragmatic ADO.NET” – “Prescriptive Data Architectures” - Upcoming This Presentation can be found at: –

Agenda Happy Birthday GDI Introducing Avalon Hardware Rendering XML Based Markup Avalon Layout New Control Model Happy Birthday GDI Introducing Avalon Hardware Rendering XML Based Markup Avalon Layout New Control Model

Happy Birthday GDI Been around for 20 years – Amazing longevity – Allows writing of productive apps easily – Developer high productivity Been around for 20 years – Amazing longevity – Allows writing of productive apps easily – Developer high productivity

Happy Birthday GDI (2) Problems with GDI – Easy to write vanilla looking applications – Hard to write good looking applications – Dated Look and Feel – Owner-Drawn code is hard – 2-D is better with GDI+, but still verbose – 3-D is possible with DirectX but difficult Problems with GDI – Easy to write vanilla looking applications – Hard to write good looking applications – Dated Look and Feel – Owner-Drawn code is hard – 2-D is better with GDI+, but still verbose – 3-D is possible with DirectX but difficult

Error loading page

Happy Birthday GDI (3) Product Differentiation – Bigger challenges grabbing user interest – Grey boxes are on their way out – OS X adding to the competitive pressure Product Differentiation – Bigger challenges grabbing user interest – Grey boxes are on their way out – OS X adding to the competitive pressure

Introducing Avalon Originally Part of Vista only – Now works with XP SP2 and W2K3 Now Available (January CTP) – Runtime lets you run WPF Apps – SDK includes VS 2005 Support The GDI for the next 10 Years Originally Part of Vista only – Now works with XP SP2 and W2K3 Now Available (January CTP) – Runtime lets you run WPF Apps – SDK includes VS 2005 Support The GDI for the next 10 Years

What is Avalon Hardware Rendered Graphics System – Not tied to DPI – Sometimes called Aero (the Hardware Layer) Improved Control Model – Easier to create custom UI’s XML Based Markup Language (XAML) – Similar ASP.NET 2.0 Programming Model Program Deployment Models – Standalone, Click Once and Express Apps Hardware Rendered Graphics System – Not tied to DPI – Sometimes called Aero (the Hardware Layer) Improved Control Model – Easier to create custom UI’s XML Based Markup Language (XAML) – Similar ASP.NET 2.0 Programming Model Program Deployment Models – Standalone, Click Once and Express Apps

Hardware Rendered Graphics Drawing Directly on GPU Surface – Not tied to the DPI of the machine Impact on Battery Should Be Minimal – Reduced CPU Load Should Balance GPU Load Scalable Renderers – Three levels of rendering  Level 0: Software  Level 1: DirectX 7+ Support –(Pixel and Vertex Shaders), 32 Megs Video Memory  Level 2: DirectX 9+ Support –(Pixel Shader 2.0), 64 Megs of Video Memory Drawing Directly on GPU Surface – Not tied to the DPI of the machine Impact on Battery Should Be Minimal – Reduced CPU Load Should Balance GPU Load Scalable Renderers – Three levels of rendering  Level 0: Software  Level 1: DirectX 7+ Support –(Pixel and Vertex Shaders), 32 Megs Video Memory  Level 2: DirectX 9+ Support –(Pixel Shader 2.0), 64 Megs of Video Memory

Improved Control Model GDI Challenges – Controls are not flexible – Setting Properties are the path to customization – Owner-drawing controls are expensive – Advanced customization requires significantly more work. GDI Challenges – Controls are not flexible – Setting Properties are the path to customization – Owner-drawing controls are expensive – Advanced customization requires significantly more work.

Improved Control Model (2) New Control Model – Build with the platform for the platform – Controls can contain anything (e.g. Controls) – Controls have flexible styling model

Improved Control Model (3) Keyboard Navigation – Use arrow keys to navigate your application – Separate from Tab Navigation Globalization and localization – “Size to content” by default – Built-in support for “right to left” Accessibility – Accessibility is not an afterthought – UIAutomation patterns in all base classes— consistent across all controls Keyboard Navigation – Use arrow keys to navigate your application – Separate from Tab Navigation Globalization and localization – “Size to content” by default – Built-in support for “right to left” Accessibility – Accessibility is not an afterthought – UIAutomation patterns in all base classes— consistent across all controls

Improved Control Model (4) Look-less Controls – Do not contain “Render” code – Visuals Come From  Your App  Theme File – Keep Behavior, Change Style  Separation between UI Design and UI Functionality Look-less Controls – Do not contain “Render” code – Visuals Come From  Your App  Theme File – Keep Behavior, Change Style  Separation between UI Design and UI Functionality

Programming Model XAML – “XML Application Markup Language” – The Design Language of WPF – Tools will create XAML or Can be Hand coded BAML – “Binary Application Markup Language” – Binary Representation of XAML – More Efficient XAML – “XML Application Markup Language” – The Design Language of WPF – Tools will create XAML or Can be Hand coded BAML – “Binary Application Markup Language” – Binary Representation of XAML – More Efficient

Programming Model (2) C#, VB.NET, etc. – Used to glue behavior with XAML/BAML – Think of XAML/BAML as the drawing code – CLR Languages still used to do heavy lifting C#, VB.NET, etc. – Used to glue behavior with XAML/BAML – Think of XAML/BAML as the drawing code – CLR Languages still used to do heavy lifting

Programming Model (3) XAML <window … /> BAML … C#/VB.Net Partial class … WPF App Interpret Compile Combine

XML Based Markup (XAML) Elements tied to Controls (1 to 1) – is class Canvas – is class Window – is class Button – is class TextBox Elements tied to Controls (1 to 1) – is class Canvas – is class Window – is class Button – is class TextBox Click Me! Hello There Click Me!

XML Based Markup (XAML) (2) Composite Controls – Simple hierarchy model – Content of most controls can store other controls Composite Controls – Simple hierarchy model – Content of most controls can store other controls Hello there

XML Based Markup (XAML) (3) Layout Models – Canvas: Specific Placement – StackPanel: Horizontal or Vertical Stacking – DockPanel: Control Docking (Explorer-like) – Grid: Guideline-based UI – TextFlow: Document Flow – Navigation: Web-like forward/back – Demo Layout Models – Canvas: Specific Placement – StackPanel: Horizontal or Vertical Stacking – DockPanel: Control Docking (Explorer-like) – Grid: Guideline-based UI – TextFlow: Document Flow – Navigation: Web-like forward/back – Demo

DataBinding Simple and powerful model – Target: any property of any Element – Source: public property of CLR objects:  CLR and “Avalon” properties  ADO DataColumns (TypeDescriptor)  XML Node – Dynamic  IPropertyChange  DependencyProperty or;  PropertyDescriptor – TwoWay – Value Converter Simple and powerful model – Target: any property of any Element – Source: public property of CLR objects:  CLR and “Avalon” properties  ADO DataColumns (TypeDescriptor)  XML Node – Dynamic  IPropertyChange  DependencyProperty or;  PropertyDescriptor – TwoWay – Value Converter

DataBinding (2) Binding Types – Simple Xml Syntax for Binding to Anything – Abbreviated Syntax also Supported Binding Types – Simple Xml Syntax for Binding to Anything – Abbreviated Syntax also Supported <Canvas xmlns=" xmlns:x=" > <Canvas xmlns=" xmlns:x=" > <Label Canvas.Top="50" Content="{Binding Path=Value, ElementName=slider}" />

DataBinding (3) Support for Common DataSources – Uses a hierarchical DataContext concept Support for Common DataSources – Uses a hierarchical DataContext concept StackPanel Image HorizontalSlider Value= {Bind Path=XPos, Source={StaticResource theCar}} Canvas.Left= {Bind Path=XPos, Source={StaticResource theCar}} DataContext= {Bind Source={StaticResource theCar}} Value= {Bind Path=XPos} Canvas.Left= {Bind Path=XPos}

DataBinding (4) Binding Types – OneWay, TwoWay, OneTime – OneWay and OneTime work with any object  Property Based Reads – TwoWay uses IPropertyChange interface – Collections use ICollectionChange interface Binding Types – OneWay, TwoWay, OneTime – OneWay and OneTime work with any object  Property Based Reads – TwoWay uses IPropertyChange interface – Collections use ICollectionChange interface

Styles Similar to CSS, but can style structure – Inline Styling is supported – Defining Style of Control just works Similar to CSS, but can style structure – Inline Styling is supported – Defining Style of Control just works

Animation Animation Support is built in – Uses Storyboard idea for animation timelines Animation Support is built in – Uses Storyboard idea for animation timelines <Page xmlns=" xmlns:x=" <DoubleAnimation Storyboard.TargetName="MyRectangle" Storyboard.TargetProperty="Width" From="100" To="200" Duration="0:0:5" AutoReverse="True" RepeatBehavior="Forever" />

Animation (2) More Complex Animation – Different Timeline Models (e.g. Parallel) More Complex Animation – Different Timeline Models (e.g. Parallel) <Page xmlns=" xmlns:x=" <DoubleAnimation Storyboard.TargetName="MyRectangle" Storyboard.TargetProperty="Width" From="100" To="200" Duration="0:0:2" AutoReverse="True" RepeatBehavior="Forever" /> <DoubleAnimation Storyboard.TargetName="MyRectangle" Storyboard.TargetProperty=“Height" From="100" To=“50" Duration="0:0:2" AutoReverse="True" RepeatBehavior="Forever" /> Need to fix this, not compatible with December

3D Modeling Real 3D Modeling Language – Concepts like multiple cameras, lights, meshes and geometries are in the language. Real 3D Modeling Language – Concepts like multiple cameras, lights, meshes and geometries are in the language. <MeshGeometry3D x:Key="PlaneMesh" Positions=" " Normals=" " TextureCoordinates=" " TriangleIndices=" " /> <Viewport3D.Models...

Multimedia Support for simplified Audio/Video handling – – Simple wrappers around the Media Player APIs Support for simplified Audio/Video handling – – Simple wrappers around the Media Player APIs <Window xmlns=" xmlns:x="

Design Tools Designers for different users – Cider: Programmer Level  A WinForms-like experience – Sparkle: Designer Level  Hybrid of Artist and Data Binding  Similar to HTML-level designing – Expression: Artist Level  A Photoshop/Illustration-like experience Demo Designers for different users – Cider: Programmer Level  A WinForms-like experience – Sparkle: Designer Level  Hybrid of Artist and Data Binding  Similar to HTML-level designing – Expression: Artist Level  A Photoshop/Illustration-like experience Demo

Conclusion Avalon/XAML are the next GDI – Will they last 20 years? Probably not… – But they bring us into the GPU – And make better UI’s easier to write Avalon/XAML are the next GDI – Will they last 20 years? Probably not… – But they bring us into the GPU – And make better UI’s easier to write

Questions?