SlideShare a Scribd company logo
1 of 36
Download to read offline
WPF: The future of Graphical User
                       Interface is near!


Bartłomiej Filipek | Jagiellonian University | bfilipek.com | mail@bfilipek.com
UI




UI’s are getting better and better…
but do we, as programmers, try to
make our apps visually attractive?
UI




It would be hard to change
those standard dialogs…      http://i.imgur.com/pyz0K.png
UI




But maybe we can do something with search result
browsing, photos and other resources… ?
Better?




Cooliris
                          My app – search3D




            From Apple…
Samples




                Play




Samples of my app: Search3D – available on my site bfilipek.com.
Plan

          What is WPF?
          How can I use this?
          Are there any tools?
          Where can I find it?
          Future?
3.0
   Optimalizations
   2006
     Vista   & Server 2008
   Architecture is mostly the same as in 2.0

   But…
.NET 3.0


                          WWF                   WPF

          WCF                                         WCS
                                          CLR
We have four new and interesting components:
• WCF – communication between apps, services…
• WWF – workflows
• WCS – card space
• And WPF – new and outstanding UIs
WPF – briefly…

            Managed                                     Communication
                                                        between managed
                                                        code and directX…




            Native

                                            from MSDN
WPF uses GPU to render all the
controls and elements, so it needed
a mix of native and managed code.     GPU
WPF - features
   Controls
   Video
   Text
   GPU
   Documents
   …
Controls




           There are more then 120 controls,
           they are written almost from
           scratch…
Data

   Data
                 binding
     Xml                     UI
   Database
   Variables               Control
      …




               template
   Data                     View
Data Template
<DataTemplate DataType="{x:Type local:Task}">
  <StackPanel>
    <TextBlock Text="{Binding Path=TaskName}" />
    <TextBlock Text="{Binding Path=Description}"/>
    <TextBlock Text="{Binding Path=Priority}"/>
  </StackPanel>
</DataTemplate>
Effects
Animations
   Almost everything can be animated!
     Positions

     Shapes

     Colors

     Sizes

    …
3D
        Lights
        Cameras
        Animations
        Meshes
        …


Although WPF is based on the GPU
redering, it is designed to render
GUIs not scenes like in FPP
games… it would be hard to do some
complicated 3D game in that.
Application Model
                                          using System.Windows; // Window, RoutedEventArgs, MessageBox

                                          namespace SDKSample
                                          {
                                              public partial class AWindow : Window
<Window
   xmlns="http://scn"                         {
   xmlns:x="http"                                 public AWindow()
   x:Class="SDKSample.AWindow"                    {
   Title="Window with Button"                         // InitializeComponent call is required to merge the UI
   Width="250" Height="100">                          // that is defined in markup with this class, including
                                                      // setting properties and registering event handlers
    <!-- Add button to window --
                                                      InitializeComponent();
>
  <Button Name="button"                           }
Click="button_Click">Click
Me!</Button>                                      void button_Click(object sender, RoutedEventArgs e)
                                                  {
</Window>                                             // Show message box when button is clicked
                                                      MessageBox.Show("Hello, Windows Presentation Foundation!");
                                                  }
                                              }
                                          }




            Code                   XAML                               Application
Visual Tree

At the beginning the VisualTree from
Xaml is created so that it can be                                Button
effectively renderd on the screen…


                                                      Panel1     Menu


                                                               radioButton
                                        grid
        window
                                                                 Canvas
                                       listbox
                                                      Panel2
                                                                etditBox

                                       documentView
XAML

 <Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.AWindow"
    Title="Window with Button"
    Width="250" Height="100">

    <!-- Add button to window -->
    <Button Name="button" Click="button_Click">Click Me!</Button>

 </Window>




XAML is based on XML, and in some
part is similar to XBL (from Mozilla).
XAML is designed to describe UI in
more effective and intuitive way than
we could code in C# for instance…
Animations
<Rectangle
 Name="MyRectangle"
 Width="100"
 Height="100"
 Fill="Blue">
 <Rectangle.Triggers>
  <!-- Animates the rectangle's opacity. -->
  <EventTrigger RoutedEvent="Rectangle.Loaded">
    <BeginStoryboard>
      <Storyboard>
       <DoubleAnimation
        Storyboard.TargetName="MyRectangle"
        Storyboard.TargetProperty="Opacity"
        From="1.0" To="0.0" Duration="0:0:5"
        AutoReverse="True" RepeatBehavior="Forever" />
      </Storyboard>
    </BeginStoryboard>
  </EventTrigger>
 </Rectangle.Triggers>
</Rectangle>
Samples




          Play



                 Very basic samples from MSDN or
                 even from the template that is in the
                 VisualStudio08…
Tools
   Division: Artist team and Programmers Team
     Programmer     is not a designer…!
     Artist is not a coder…!



   Expression Studio
   VisualStudio 2008/2010
Blend




Show some Blend UI and how it
looks…
Debug
   VisualStudio 08/10

   Useful tools:
     Snoop

     Performance   Profiling Tools for WPF
Where is WPF?
   Where can we use it?
     Everywhere!    


   On the market:
     VisualStudio 2010!
     Yahoo! Messanger

     Windows Messanger

     Silverlight…
Samples




                                   Play




Samples from Blend and some more
advanced applications…
Additionals…
   PixelShaders!
   XBAP
   ClickOnce
Interop

                                                 Win32Api




               WPF                               WinForms


                                                             XNA
                                                 DirectX
WPF can be used in one application with some
other technologies like WinForms, WinApi, etc…              OpenGL
When we use it with DirectX there can be some
problems with the performance…
   RIA
   Competitor for Adobe Flash

   Subset of WPF’s XAML

   Less features and a bit limited

   But it can be used in browsers
    without the whole .NET
    platform…!
The future
   Better interop
   MultiTouch!
   Ribbons
   Integration with Windows 7
   Graphics
     PixelShader
                3.0
     Cached Composition


   + features of .NET4!
Advice
   Use powerful fatures of WPF with a care!
   Do you really need 3D?
     2d is far more better for UI
     3d can be used usually in rare cases

   Colors
   Layout
   Performance
Sum up




         Use your imagination!
Sources…
   http://silverlight.net/showcase/
   MS: The Professional Developers Conference 09
   MSDN

   Tutorials:
     http://www.wpftutorial.net

     codeproject: WPF: A Beginner's Guide - Part 1 of n

     http://joshsmithonwpf.wordpress.com/

     http://sachabarber.net/
Questions?
Thanks for watching 




                  Bartłomiej Filipek
                  bfilipek.com
                  mail@bfilipek.com

More Related Content

What's hot

Flash Prototyping Workbook - Part 1 and 2
Flash Prototyping Workbook - Part 1 and 2Flash Prototyping Workbook - Part 1 and 2
Flash Prototyping Workbook - Part 1 and 2Alexa Andrzejewski
 
Codestrong 2012 breakout session what's new in titanium studio
Codestrong 2012 breakout session   what's new in titanium studioCodestrong 2012 breakout session   what's new in titanium studio
Codestrong 2012 breakout session what's new in titanium studioAxway Appcelerator
 
Swing and AWT in java
Swing and AWT in javaSwing and AWT in java
Swing and AWT in javaAdil Mehmoood
 
GWT training session 2
GWT training session 2GWT training session 2
GWT training session 2SNEHAL MASNE
 
WebGL For Game Development Spring 2013
WebGL For Game Development Spring 2013WebGL For Game Development Spring 2013
WebGL For Game Development Spring 2013Tony Parisi
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsLuca Galli
 
Designing XAML apps using Blend for Visual Studio 2013
Designing XAML apps using Blend for Visual Studio 2013Designing XAML apps using Blend for Visual Studio 2013
Designing XAML apps using Blend for Visual Studio 2013Fons Sonnemans
 
Cross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCraig Dunn
 
What Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 AppsWhat Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 AppsDoris Chen
 
Java Swing
Java SwingJava Swing
Java SwingShraddha
 
Desenvolva um game para android ou iPhone
Desenvolva um game para android ou iPhoneDesenvolva um game para android ou iPhone
Desenvolva um game para android ou iPhoneTiago Oliveira
 
Xamarin.iOS introduction
Xamarin.iOS introductionXamarin.iOS introduction
Xamarin.iOS introductionGuido Magrin
 

What's hot (14)

Flash Prototyping Workbook - Part 1 and 2
Flash Prototyping Workbook - Part 1 and 2Flash Prototyping Workbook - Part 1 and 2
Flash Prototyping Workbook - Part 1 and 2
 
Codestrong 2012 breakout session what's new in titanium studio
Codestrong 2012 breakout session   what's new in titanium studioCodestrong 2012 breakout session   what's new in titanium studio
Codestrong 2012 breakout session what's new in titanium studio
 
Chap1 1 1
Chap1 1 1Chap1 1 1
Chap1 1 1
 
Chap1 1.1
Chap1 1.1Chap1 1.1
Chap1 1.1
 
Swing and AWT in java
Swing and AWT in javaSwing and AWT in java
Swing and AWT in java
 
GWT training session 2
GWT training session 2GWT training session 2
GWT training session 2
 
WebGL For Game Development Spring 2013
WebGL For Game Development Spring 2013WebGL For Game Development Spring 2013
WebGL For Game Development Spring 2013
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact js
 
Designing XAML apps using Blend for Visual Studio 2013
Designing XAML apps using Blend for Visual Studio 2013Designing XAML apps using Blend for Visual Studio 2013
Designing XAML apps using Blend for Visual Studio 2013
 
Cross-platform mobile dev with Mono
Cross-platform mobile dev with MonoCross-platform mobile dev with Mono
Cross-platform mobile dev with Mono
 
What Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 AppsWhat Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 Apps
 
Java Swing
Java SwingJava Swing
Java Swing
 
Desenvolva um game para android ou iPhone
Desenvolva um game para android ou iPhoneDesenvolva um game para android ou iPhone
Desenvolva um game para android ou iPhone
 
Xamarin.iOS introduction
Xamarin.iOS introductionXamarin.iOS introduction
Xamarin.iOS introduction
 

Viewers also liked

The Future of User Interfaces
The Future of User InterfacesThe Future of User Interfaces
The Future of User InterfacesJason Mesut
 
Future of user interface design
Future of user interface designFuture of user interface design
Future of user interface designRanjeet Tayi
 
WPF L03-3D Rendering and 3D Animation
WPF L03-3D Rendering and 3D AnimationWPF L03-3D Rendering and 3D Animation
WPF L03-3D Rendering and 3D AnimationMohammad Shaker
 
A Desktop UI with QtQuick
A Desktop UI with QtQuickA Desktop UI with QtQuick
A Desktop UI with QtQuicknjeisecke
 
Intro to Facebook Presentation – Facebook, How to Get Started Safely
Intro to Facebook Presentation – Facebook, How to Get Started SafelyIntro to Facebook Presentation – Facebook, How to Get Started Safely
Intro to Facebook Presentation – Facebook, How to Get Started Safelyhewie
 
GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11smashflt
 
Knowledge Management In Global Firm
Knowledge Management In Global FirmKnowledge Management In Global Firm
Knowledge Management In Global FirmRobin Teigland
 
Facebook Powerpoint
Facebook PowerpointFacebook Powerpoint
Facebook Powerpointmyra14
 

Viewers also liked (11)

The Future of User Interfaces
The Future of User InterfacesThe Future of User Interfaces
The Future of User Interfaces
 
GPU - how can we use it?
GPU - how can we use it?GPU - how can we use it?
GPU - how can we use it?
 
The Future Of User Interface
The Future Of User InterfaceThe Future Of User Interface
The Future Of User Interface
 
Future of user interface design
Future of user interface designFuture of user interface design
Future of user interface design
 
WPF L03-3D Rendering and 3D Animation
WPF L03-3D Rendering and 3D AnimationWPF L03-3D Rendering and 3D Animation
WPF L03-3D Rendering and 3D Animation
 
A Desktop UI with QtQuick
A Desktop UI with QtQuickA Desktop UI with QtQuick
A Desktop UI with QtQuick
 
3D User Interface
3D User Interface3D User Interface
3D User Interface
 
Intro to Facebook Presentation – Facebook, How to Get Started Safely
Intro to Facebook Presentation – Facebook, How to Get Started SafelyIntro to Facebook Presentation – Facebook, How to Get Started Safely
Intro to Facebook Presentation – Facebook, How to Get Started Safely
 
GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11
 
Knowledge Management In Global Firm
Knowledge Management In Global FirmKnowledge Management In Global Firm
Knowledge Management In Global Firm
 
Facebook Powerpoint
Facebook PowerpointFacebook Powerpoint
Facebook Powerpoint
 

Similar to WPF - the future of GUI is near

Yahoo! On Microsoft .NET 3.0 and Microsoft Expression
Yahoo! On Microsoft .NET 3.0 and Microsoft ExpressionYahoo! On Microsoft .NET 3.0 and Microsoft Expression
Yahoo! On Microsoft .NET 3.0 and Microsoft Expressiongoodfriday
 
Dot Net Training Dot Net35
Dot Net Training Dot Net35Dot Net Training Dot Net35
Dot Net Training Dot Net35Subodh Pushpak
 
Complete WPF Overview Tutorial with Example - iFour Technolab
Complete WPF Overview Tutorial with Example - iFour TechnolabComplete WPF Overview Tutorial with Example - iFour Technolab
Complete WPF Overview Tutorial with Example - iFour TechnolabiFour Technolab Pvt. Ltd.
 
Deeper into Windows 10 Development
Deeper into Windows 10 DevelopmentDeeper into Windows 10 Development
Deeper into Windows 10 DevelopmentShahed Chowdhuri
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Mikkel Flindt Heisterberg
 
Wpf Under The Hood Engines
Wpf Under The Hood EnginesWpf Under The Hood Engines
Wpf Under The Hood EnginesTamir Khason
 
Silverlight
SilverlightSilverlight
Silverlightvishakpb
 
Introduction to WPF
Introduction to WPFIntroduction to WPF
Introduction to WPFMunish Arora
 
Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPFDoncho Minkov
 
Develop an app for Windows 8 using HTML5
Develop an app for Windows 8 using HTML5Develop an app for Windows 8 using HTML5
Develop an app for Windows 8 using HTML5Soumow Dollon
 
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightFrank La Vigne
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Mikkel Flindt Heisterberg
 
Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Mikkel Flindt Heisterberg
 
Windows presentation foundation
Windows presentation foundationWindows presentation foundation
Windows presentation foundationNaga Harish M
 
XAML: One Language to Rule Them All
XAML: One Language to Rule Them AllXAML: One Language to Rule Them All
XAML: One Language to Rule Them AllFrank La Vigne
 
UX@Vitra - Experience Continuum
UX@Vitra - Experience ContinuumUX@Vitra - Experience Continuum
UX@Vitra - Experience ContinuumKatrien De Graeve
 

Similar to WPF - the future of GUI is near (20)

Silverlight Training
Silverlight TrainingSilverlight Training
Silverlight Training
 
Yahoo! On Microsoft .NET 3.0 and Microsoft Expression
Yahoo! On Microsoft .NET 3.0 and Microsoft ExpressionYahoo! On Microsoft .NET 3.0 and Microsoft Expression
Yahoo! On Microsoft .NET 3.0 and Microsoft Expression
 
Dot Net Training Dot Net35
Dot Net Training Dot Net35Dot Net Training Dot Net35
Dot Net Training Dot Net35
 
Complete WPF Overview Tutorial with Example - iFour Technolab
Complete WPF Overview Tutorial with Example - iFour TechnolabComplete WPF Overview Tutorial with Example - iFour Technolab
Complete WPF Overview Tutorial with Example - iFour Technolab
 
Chpater1
Chpater1Chpater1
Chpater1
 
Deeper into Windows 10 Development
Deeper into Windows 10 DevelopmentDeeper into Windows 10 Development
Deeper into Windows 10 Development
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
Wpf Under The Hood Engines
Wpf Under The Hood EnginesWpf Under The Hood Engines
Wpf Under The Hood Engines
 
Silverlight
SilverlightSilverlight
Silverlight
 
Introduction to WPF
Introduction to WPFIntroduction to WPF
Introduction to WPF
 
WPF Meets Applications
WPF Meets ApplicationsWPF Meets Applications
WPF Meets Applications
 
Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPF
 
Develop an app for Windows 8 using HTML5
Develop an app for Windows 8 using HTML5Develop an app for Windows 8 using HTML5
Develop an app for Windows 8 using HTML5
 
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
 
Howto curses
Howto cursesHowto curses
Howto curses
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)
 
Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)
 
Windows presentation foundation
Windows presentation foundationWindows presentation foundation
Windows presentation foundation
 
XAML: One Language to Rule Them All
XAML: One Language to Rule Them AllXAML: One Language to Rule Them All
XAML: One Language to Rule Them All
 
UX@Vitra - Experience Continuum
UX@Vitra - Experience ContinuumUX@Vitra - Experience Continuum
UX@Vitra - Experience Continuum
 

More from Bartlomiej Filipek

Empty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 AttributesEmpty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 AttributesBartlomiej Filipek
 
C++17 std::filesystem - Overview
C++17 std::filesystem - OverviewC++17 std::filesystem - Overview
C++17 std::filesystem - OverviewBartlomiej Filipek
 
Let's talks about string operations in C++17
Let's talks about string operations in C++17Let's talks about string operations in C++17
Let's talks about string operations in C++17Bartlomiej Filipek
 
Recent c++ goodies (March 2018)
Recent c++ goodies (March 2018)Recent c++ goodies (March 2018)
Recent c++ goodies (March 2018)Bartlomiej Filipek
 

More from Bartlomiej Filipek (6)

Empty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 AttributesEmpty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
Empty Base Class Optimisation, [[no_unique_address]] and other C++20 Attributes
 
Vocabulary Types in C++17
Vocabulary Types in C++17Vocabulary Types in C++17
Vocabulary Types in C++17
 
C++17 std::filesystem - Overview
C++17 std::filesystem - OverviewC++17 std::filesystem - Overview
C++17 std::filesystem - Overview
 
Let's talks about string operations in C++17
Let's talks about string operations in C++17Let's talks about string operations in C++17
Let's talks about string operations in C++17
 
Recent c++ goodies (March 2018)
Recent c++ goodies (March 2018)Recent c++ goodies (March 2018)
Recent c++ goodies (March 2018)
 
Summary of C++17 features
Summary of C++17 featuresSummary of C++17 features
Summary of C++17 features
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

WPF - the future of GUI is near

  • 1. WPF: The future of Graphical User Interface is near! Bartłomiej Filipek | Jagiellonian University | bfilipek.com | mail@bfilipek.com
  • 2. UI UI’s are getting better and better… but do we, as programmers, try to make our apps visually attractive?
  • 3. UI It would be hard to change those standard dialogs… http://i.imgur.com/pyz0K.png
  • 4. UI But maybe we can do something with search result browsing, photos and other resources… ?
  • 5. Better? Cooliris My app – search3D From Apple…
  • 6. Samples Play Samples of my app: Search3D – available on my site bfilipek.com.
  • 7. Plan  What is WPF?  How can I use this?  Are there any tools?  Where can I find it?  Future?
  • 8. 3.0  Optimalizations  2006  Vista & Server 2008  Architecture is mostly the same as in 2.0  But…
  • 9. .NET 3.0 WWF WPF WCF WCS CLR We have four new and interesting components: • WCF – communication between apps, services… • WWF – workflows • WCS – card space • And WPF – new and outstanding UIs
  • 10. WPF – briefly… Managed Communication between managed code and directX… Native from MSDN WPF uses GPU to render all the controls and elements, so it needed a mix of native and managed code. GPU
  • 11. WPF - features  Controls  Video  Text  GPU  Documents  …
  • 12. Controls There are more then 120 controls, they are written almost from scratch…
  • 13. Data Data binding Xml UI Database Variables Control … template Data View
  • 14. Data Template <DataTemplate DataType="{x:Type local:Task}"> <StackPanel> <TextBlock Text="{Binding Path=TaskName}" /> <TextBlock Text="{Binding Path=Description}"/> <TextBlock Text="{Binding Path=Priority}"/> </StackPanel> </DataTemplate>
  • 16. Animations  Almost everything can be animated!  Positions  Shapes  Colors  Sizes …
  • 17. 3D  Lights  Cameras  Animations  Meshes  … Although WPF is based on the GPU redering, it is designed to render GUIs not scenes like in FPP games… it would be hard to do some complicated 3D game in that.
  • 18. Application Model using System.Windows; // Window, RoutedEventArgs, MessageBox namespace SDKSample { public partial class AWindow : Window <Window xmlns="http://scn" { xmlns:x="http" public AWindow() x:Class="SDKSample.AWindow" { Title="Window with Button" // InitializeComponent call is required to merge the UI Width="250" Height="100"> // that is defined in markup with this class, including // setting properties and registering event handlers <!-- Add button to window -- InitializeComponent(); > <Button Name="button" } Click="button_Click">Click Me!</Button> void button_Click(object sender, RoutedEventArgs e) { </Window> // Show message box when button is clicked MessageBox.Show("Hello, Windows Presentation Foundation!"); } } } Code XAML Application
  • 19. Visual Tree At the beginning the VisualTree from Xaml is created so that it can be Button effectively renderd on the screen… Panel1 Menu radioButton grid window Canvas listbox Panel2 etditBox documentView
  • 20. XAML <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.AWindow" Title="Window with Button" Width="250" Height="100"> <!-- Add button to window --> <Button Name="button" Click="button_Click">Click Me!</Button> </Window> XAML is based on XML, and in some part is similar to XBL (from Mozilla). XAML is designed to describe UI in more effective and intuitive way than we could code in C# for instance…
  • 21. Animations <Rectangle Name="MyRectangle" Width="100" Height="100" Fill="Blue"> <Rectangle.Triggers> <!-- Animates the rectangle's opacity. --> <EventTrigger RoutedEvent="Rectangle.Loaded"> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetName="MyRectangle" Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:5" AutoReverse="True" RepeatBehavior="Forever" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Rectangle.Triggers> </Rectangle>
  • 22. Samples Play Very basic samples from MSDN or even from the template that is in the VisualStudio08…
  • 23. Tools  Division: Artist team and Programmers Team  Programmer is not a designer…!  Artist is not a coder…!  Expression Studio  VisualStudio 2008/2010
  • 24. Blend Show some Blend UI and how it looks…
  • 25. Debug  VisualStudio 08/10  Useful tools:  Snoop  Performance Profiling Tools for WPF
  • 26. Where is WPF?  Where can we use it?  Everywhere!   On the market:  VisualStudio 2010!  Yahoo! Messanger  Windows Messanger  Silverlight…
  • 27. Samples Play Samples from Blend and some more advanced applications…
  • 28. Additionals…  PixelShaders!  XBAP  ClickOnce
  • 29. Interop Win32Api WPF WinForms XNA DirectX WPF can be used in one application with some other technologies like WinForms, WinApi, etc… OpenGL When we use it with DirectX there can be some problems with the performance…
  • 30. RIA  Competitor for Adobe Flash  Subset of WPF’s XAML  Less features and a bit limited  But it can be used in browsers without the whole .NET platform…!
  • 31. The future  Better interop  MultiTouch!  Ribbons  Integration with Windows 7  Graphics  PixelShader 3.0  Cached Composition  + features of .NET4!
  • 32. Advice  Use powerful fatures of WPF with a care!  Do you really need 3D?  2d is far more better for UI  3d can be used usually in rare cases  Colors  Layout  Performance
  • 33. Sum up Use your imagination!
  • 34. Sources…  http://silverlight.net/showcase/  MS: The Professional Developers Conference 09  MSDN  Tutorials:  http://www.wpftutorial.net  codeproject: WPF: A Beginner's Guide - Part 1 of n  http://joshsmithonwpf.wordpress.com/  http://sachabarber.net/
  • 36. Thanks for watching  Bartłomiej Filipek bfilipek.com mail@bfilipek.com