SlideShare uma empresa Scribd logo
1 de 40
XAML
                    One Language to Rule
                    Them All

Frank La Vigne
Lead Designer
Applied Information Sciences
http://www.franksworld.com
Ego Slide
      Frank La Vigne
  
       Microsoft MVP: Tablet PC
       INETA Membership Mentor for DC,
        Maryland and Delaware
       Manager DC Silverlight SIG
       Lead Designer @ AIS
          Blog: www.franksworld.com
          Company: www.appliedis.com
          Twitter: @Tableteer
       Feedback to
       Frank.LaVigne@appliedis.com
Goals
The 3 R’s of Client Development
Reach: The Web
        Widest possible reach
          From text only devices to desktops;
          from laptops to mobile phones;
          the web works just about anywhere
        Platform/Browser Independent*
        *Write once, test everywhere in every
          conceivable combination.
        Hard to debug
        Easy to Deploy
        User experience varies
Rich: Windows Client Application
         Richest experience possible
           Response time is instantaneous
           WPF applications can leverage
           hardware acceleration for some truly
           engaging user experiences
         Easy to Debug
         Narrow focus
         Deployment concerns
RIA: Silverlight Applications
          Happy Medium of Reach and Rich
            Response time is instantaneous
            Runs on Windows, Mac and Linux
          Easy to Debug
          Wide focus
          Easy deployment
          Enables great user experiences
But Wait, There’s More!
The Fantastic Four of Client Technology
Silverlight Out of Browser Applications
XBAP?
XBAP Defined
       Slightly Better Reach, a Lot More Rich
         All the benefits of Silverlight
         The Power of WPF in a browser window
              3D, Drag & Drop, Printing, Hardware
              Acceleration
       Easy to Debug
       Easy deployment (Windows w/ .NET 3.x)
       Enables great user experiences
When to Use XBAPs
To quickly push a WPF app
onto the web
When Management demands
that applications be web
based
When Windows is the client
platform
  Ideal for corporate intranet
  Specialized applications
  Quickly moving a WPF
  application to the web
Demo
quot;Sawdustquot;
How Can I Create an XBAP?
   Open Visual Studio 2008
     File  New Project  WPF Browser Application
How Do I Deploy an XBAP?
   In Visual Studio 2008
     Build  Publish
Deploying an XBAP: Mime Types



  MIME Type                        File Extension
  application/manifest             .manifest
  application/x-ms-xbap            .xbap
  application/octet-stream         .deploy
  application/x-ms-application     .application
  application/vnd.ms-xpsdocument   .xps
  application/xaml-xml             .xaml
Let the LOLCats Guide Us


 Demo
Creating &
Publishing an
XBAP Application
3-2-1 Launch!



  Three Choices for
                        Two Core     One Common
       Client
                      Technologies    Language
    Applications
One Markup Language to Rule Them All
Mostly the Same



                  WPF Only
                  Gaps
                  Silverlight Only
                  Shared
But the Differences Will Get You



                                   WPF Only
                                   Gaps
                                   Silverlight Only
                                   Shared
Caution: Eye Charts Ahead!
Different Feature Sets..


                           Deep Zoom
  3D
                           VC-1 codec
  Documents
                           H.264 codec 3
  Drag Drop
                           HTML integration
  Win32 Interop
                           Sandbox
  Triggers
                           VideoBrush
  Commands                 Plane Projection 3
  Printing
  Logical tree
  Adorners
  Hosting WebBrowser
Graphics


  Hardware acceleration   Hardware acceleration 3
  Graphics are            Multi-core optimizations
   Drawings
                          Lighter weight visuals
   Streams
                          Graphics are
   Shapes
                            Shapes
Property System

 More inherited properties
  Extensible
 Property Metadata
 Default Values
 Coercion
Resources

                               generic.xaml
   generic.xaml
   Delayed instantiation of    XamlReader can load
 StaticResources              Resource Dictionaries.
   Merged Resource
 Dictionaries
   FindResource walks
 the tree
   Freezables
Databinding

 UIElement to UIElement bindings       UIElement to UIElement bindings 3
 MultiBinding                          Binding support at FrameworkElement
 Binding support at DependencyObject   No TargetType on data templates
Dictionaries
 Relative bindings
 Template selectors
 More Type converters out of the box
Eventing


 Events are synchronous         Events are asynchronous
                                Not all events bubble, even
 Tunneling (Preview) events
                              if declared as Routed
 Mouse Wheel
Styles


         Write-once
         No app themes
         No BasedOn
         No triggers
Animation

 MotionPath Animation               Named key-frames
 CompositionTarget.Rendering        Storyboard APIs
 More animatable types
                                        Begin, Stop, etc.
 Extensibility
 Storyboard APIs added in 3.5 SP1
Input

        Support for other platforms
        Key.Unknown
        ModifierKeys.Apple
        KeyEventArgs.PlatformKeyCode
Layout

  LayoutTransform   Text measures early
Other

 More markup-extensions   Different Hit-Testing
  e.g. x:Static
                          LayoutRounding Property
 More panels
                          No XamlWriter
                          No VisualBrush
                          No OnRender
Demo
Enough Slides!
Code Time
   WPF  XBAP
   WPF  Silverlight
Tips & Tricks for Recycling XAML
   Source compatibility
   (not binary compatibility)
     It is a different framework
   Code to Silverlight
     (Common Denominator)
   Create a different VS project for each ‘run-time’
       Link the files together
   Use WPF’s XML namespace declaration
   xmlns=quot;http://schemas.microsoft.com/winfx/2006/xaml/p
   resentationquot;
Tips & Tricks for Recycling Source Code

   Use #if for small logic
     Move all conditional logic to code
     (no #if in XAML)
   Partial classes for larger chunks
       Can use separate files altogether
   Place Templates and styles in App.xaml
   (both platforms can pick from there)
Other API differences
   OpenFileDialog
       SL = System.Windows.Controls
       WPF: Microsoft.Win32
   Dispatcher.BeginInvoke different signatures
   SL has more classes sealed
   (can’t be inherited)
   XamlReader.Load
       SL = XamlReader.Load ( string )
       WPF = XamlReader.Load ( stream )
Other API differences (cont’d)
   ContentPresenter
      SL : class ContentPresenter : Control
      WPF : class ContentPresenter : FrameworkElement
   UIElementCollection
      SL : UIElementCollection :
      PresentationFrameworkCollection<UIElement>
      WPF : UIElementCollection :
      IList, ICollection, Ienumerable
THANK YOU!
             Frank La Vigne
             www.FranksWorld.com
             frank@franksworld.com
             @Tableteer

Mais conteúdo relacionado

Mais procurados

Silverlight difference faqs-1
Silverlight  difference faqs-1Silverlight  difference faqs-1
Silverlight difference faqs-1Umar Ali
 
Silver Light
Silver LightSilver Light
Silver Lightgourav
 
Introduction to silver light
Introduction to silver lightIntroduction to silver light
Introduction to silver lightjayc8586
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft SilverlightGlen Gordon
 
Silverlight abhinav - slideshare
Silverlight   abhinav - slideshareSilverlight   abhinav - slideshare
Silverlight abhinav - slideshareabhinav4133
 
Silverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItSilverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItVenketash (Pat) Ramadass
 
Silverlight
SilverlightSilverlight
Silverlightvishakpb
 
PLASTIC 2011: "Enterprise JavaScript with Jangaroo"
PLASTIC 2011: "Enterprise JavaScript with Jangaroo"PLASTIC 2011: "Enterprise JavaScript with Jangaroo"
PLASTIC 2011: "Enterprise JavaScript with Jangaroo"Frank Wienberg
 
Silverlight
SilverlightSilverlight
SilverlightBiTWiSE
 
Microsoft Silverlight - An Introduction
Microsoft Silverlight - An IntroductionMicrosoft Silverlight - An Introduction
Microsoft Silverlight - An IntroductionMohammad Elsheimy
 
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
 
Silverlight Splashes Out
Silverlight Splashes OutSilverlight Splashes Out
Silverlight Splashes OutShane Morris
 
Windows Presentation Foundation & XAML
Windows Presentation Foundation & XAMLWindows Presentation Foundation & XAML
Windows Presentation Foundation & XAMLAlex Sooraj
 
Introduction to silverlight control 4
Introduction to silverlight control 4Introduction to silverlight control 4
Introduction to silverlight control 4msarangam
 
Tech Lunch 9 25 2008
Tech Lunch 9 25 2008Tech Lunch 9 25 2008
Tech Lunch 9 25 2008rothacr
 

Mais procurados (18)

Silverlight difference faqs-1
Silverlight  difference faqs-1Silverlight  difference faqs-1
Silverlight difference faqs-1
 
Silver Light
Silver LightSilver Light
Silver Light
 
Introduction to silver light
Introduction to silver lightIntroduction to silver light
Introduction to silver light
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
 
Silverlight abhinav - slideshare
Silverlight   abhinav - slideshareSilverlight   abhinav - slideshare
Silverlight abhinav - slideshare
 
Silverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItSilverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use It
 
Silverlight
SilverlightSilverlight
Silverlight
 
PLASTIC 2011: "Enterprise JavaScript with Jangaroo"
PLASTIC 2011: "Enterprise JavaScript with Jangaroo"PLASTIC 2011: "Enterprise JavaScript with Jangaroo"
PLASTIC 2011: "Enterprise JavaScript with Jangaroo"
 
Silverlight
SilverlightSilverlight
Silverlight
 
Microsoft Silverlight - An Introduction
Microsoft Silverlight - An IntroductionMicrosoft Silverlight - An Introduction
Microsoft Silverlight - An Introduction
 
Introduction to WPF
Introduction to WPFIntroduction to WPF
Introduction to WPF
 
Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPF
 
Silverlight Splashes Out
Silverlight Splashes OutSilverlight Splashes Out
Silverlight Splashes Out
 
Windows Presentation Foundation & XAML
Windows Presentation Foundation & XAMLWindows Presentation Foundation & XAML
Windows Presentation Foundation & XAML
 
WPF
WPFWPF
WPF
 
Introduction to silverlight control 4
Introduction to silverlight control 4Introduction to silverlight control 4
Introduction to silverlight control 4
 
Adobe® Flex™
Adobe® Flex™Adobe® Flex™
Adobe® Flex™
 
Tech Lunch 9 25 2008
Tech Lunch 9 25 2008Tech Lunch 9 25 2008
Tech Lunch 9 25 2008
 

Semelhante a XAML: One Language to Rule Them All

SLUGUK BUILD Round-up
SLUGUK BUILD Round-upSLUGUK BUILD Round-up
SLUGUK BUILD Round-upDerek Lakin
 
Flex And Ria
Flex And RiaFlex And Ria
Flex And Riaravinxg
 
ArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierMicrosoft ArcReady
 
Uncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight SeminarUncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight SeminarAbram John Limpin
 
DevTeach Ottawa - Silverlight5 and HTML5
DevTeach Ottawa - Silverlight5 and HTML5DevTeach Ottawa - Silverlight5 and HTML5
DevTeach Ottawa - Silverlight5 and HTML5Frédéric Harper
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinFormRaffaele Garofalo
 
Silver Light for every one by Subodh
Silver Light for every one by SubodhSilver Light for every one by Subodh
Silver Light for every one by SubodhSubodh Pushpak
 
Three's Company - Writing for the Desktop, Browser, and Phone
Three's Company - Writing for the Desktop, Browser, and PhoneThree's Company - Writing for the Desktop, Browser, and Phone
Three's Company - Writing for the Desktop, Browser, and PhoneSarah Dutkiewicz
 
Parallel minds silverlight
Parallel minds silverlightParallel minds silverlight
Parallel minds silverlightparallelminder
 
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?ukdpe
 
Mike Taulty Beyond Silverlight With W P F
Mike Taulty  Beyond  Silverlight  With  W P FMike Taulty  Beyond  Silverlight  With  W P F
Mike Taulty Beyond Silverlight With W P Fukdpe
 
Understanding the Windows Desktop App Development Landscape + Top 10 WPF Po...
Understanding the Windows Desktop App Development Landscape   + Top 10 WPF Po...Understanding the Windows Desktop App Development Landscape   + Top 10 WPF Po...
Understanding the Windows Desktop App Development Landscape + Top 10 WPF Po...MSDEVMTL
 
Developing RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexDeveloping RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexMatthias Zeller
 
Introduction to silverlight
Introduction to silverlightIntroduction to silverlight
Introduction to silverlightmsarangam
 
Silverlight Briefing Deck
Silverlight  Briefing  DeckSilverlight  Briefing  Deck
Silverlight Briefing Deckllangit
 
2017 03 25 Microsoft Hacks, How to code efficiently
2017 03 25 Microsoft Hacks, How to code efficiently2017 03 25 Microsoft Hacks, How to code efficiently
2017 03 25 Microsoft Hacks, How to code efficientlyBruno Capuano
 

Semelhante a XAML: One Language to Rule Them All (20)

SLUGUK BUILD Round-up
SLUGUK BUILD Round-upSLUGUK BUILD Round-up
SLUGUK BUILD Round-up
 
What is Adobe Flex ?
What is Adobe Flex  ?What is Adobe Flex  ?
What is Adobe Flex ?
 
Silverlight Training
Silverlight TrainingSilverlight Training
Silverlight Training
 
Flex And Ria
Flex And RiaFlex And Ria
Flex And Ria
 
Flex RIA
Flex RIAFlex RIA
Flex RIA
 
ArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client Tier
 
Uncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight SeminarUncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight Seminar
 
DevTeach Ottawa - Silverlight5 and HTML5
DevTeach Ottawa - Silverlight5 and HTML5DevTeach Ottawa - Silverlight5 and HTML5
DevTeach Ottawa - Silverlight5 and HTML5
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinForm
 
Silver Light for every one by Subodh
Silver Light for every one by SubodhSilver Light for every one by Subodh
Silver Light for every one by Subodh
 
Three's Company - Writing for the Desktop, Browser, and Phone
Three's Company - Writing for the Desktop, Browser, and PhoneThree's Company - Writing for the Desktop, Browser, and Phone
Three's Company - Writing for the Desktop, Browser, and Phone
 
Parallel minds silverlight
Parallel minds silverlightParallel minds silverlight
Parallel minds silverlight
 
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
 
Mike Taulty Beyond Silverlight With W P F
Mike Taulty  Beyond  Silverlight  With  W P FMike Taulty  Beyond  Silverlight  With  W P F
Mike Taulty Beyond Silverlight With W P F
 
Understanding the Windows Desktop App Development Landscape + Top 10 WPF Po...
Understanding the Windows Desktop App Development Landscape   + Top 10 WPF Po...Understanding the Windows Desktop App Development Landscape   + Top 10 WPF Po...
Understanding the Windows Desktop App Development Landscape + Top 10 WPF Po...
 
Developing RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexDeveloping RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe Flex
 
Building RIA Apps with Silverlight
Building RIA Apps with SilverlightBuilding RIA Apps with Silverlight
Building RIA Apps with Silverlight
 
Introduction to silverlight
Introduction to silverlightIntroduction to silverlight
Introduction to silverlight
 
Silverlight Briefing Deck
Silverlight  Briefing  DeckSilverlight  Briefing  Deck
Silverlight Briefing Deck
 
2017 03 25 Microsoft Hacks, How to code efficiently
2017 03 25 Microsoft Hacks, How to code efficiently2017 03 25 Microsoft Hacks, How to code efficiently
2017 03 25 Microsoft Hacks, How to code efficiently
 

Mais de Frank La Vigne

Binary Classification on Azure ML: Is this Red Wine Good or Bad?
Binary Classification on Azure ML: Is this Red Wine Good or Bad?Binary Classification on Azure ML: Is this Red Wine Good or Bad?
Binary Classification on Azure ML: Is this Red Wine Good or Bad?Frank La Vigne
 
Neural Networks from the Ground Up
Neural Networks from the Ground UpNeural Networks from the Ground Up
Neural Networks from the Ground UpFrank La Vigne
 
Machine Learning Melee: AWS ML vs. Azure ML
Machine Learning Melee: AWS ML vs. Azure MLMachine Learning Melee: AWS ML vs. Azure ML
Machine Learning Melee: AWS ML vs. Azure MLFrank La Vigne
 
Tips on Starting a Compelling Vlog
Tips on Starting a Compelling VlogTips on Starting a Compelling Vlog
Tips on Starting a Compelling VlogFrank La Vigne
 
Create a Windows 8 App in minutes
Create a Windows 8 App in minutesCreate a Windows 8 App in minutes
Create a Windows 8 App in minutesFrank La Vigne
 
Windows 8 Developer Workshop
Windows 8 Developer WorkshopWindows 8 Developer Workshop
Windows 8 Developer WorkshopFrank La Vigne
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government DevelopersFrank La Vigne
 
HTML5, Silverlight & Kinect
HTML5, Silverlight & KinectHTML5, Silverlight & Kinect
HTML5, Silverlight & KinectFrank La Vigne
 
Intro to MVC 3 for Government Developers
Intro to MVC 3 for Government DevelopersIntro to MVC 3 for Government Developers
Intro to MVC 3 for Government DevelopersFrank La Vigne
 
A Lap Around Silverlight 5
A Lap Around Silverlight 5A Lap Around Silverlight 5
A Lap Around Silverlight 5Frank La Vigne
 
Windows Phone Public Sector
Windows Phone Public SectorWindows Phone Public Sector
Windows Phone Public SectorFrank La Vigne
 
IE9: Power, Peformance and Standards
IE9: Power, Peformance and StandardsIE9: Power, Peformance and Standards
IE9: Power, Peformance and StandardsFrank La Vigne
 
Dr ScriptLove or How I Learned to Stop Worrying and Love JavaScript
Dr ScriptLove or How I Learned to Stop Worrying and Love JavaScriptDr ScriptLove or How I Learned to Stop Worrying and Love JavaScript
Dr ScriptLove or How I Learned to Stop Worrying and Love JavaScriptFrank La Vigne
 
Bing & Silverlight: Perfect Together
Bing & Silverlight: Perfect TogetherBing & Silverlight: Perfect Together
Bing & Silverlight: Perfect TogetherFrank La Vigne
 
Poor Man's Project Natal
Poor Man's Project NatalPoor Man's Project Natal
Poor Man's Project NatalFrank La Vigne
 
Silverlight FireStarter DC Keynote
Silverlight FireStarter DC KeynoteSilverlight FireStarter DC Keynote
Silverlight FireStarter DC KeynoteFrank La Vigne
 

Mais de Frank La Vigne (20)

Binary Classification on Azure ML: Is this Red Wine Good or Bad?
Binary Classification on Azure ML: Is this Red Wine Good or Bad?Binary Classification on Azure ML: Is this Red Wine Good or Bad?
Binary Classification on Azure ML: Is this Red Wine Good or Bad?
 
Neural Networks from the Ground Up
Neural Networks from the Ground UpNeural Networks from the Ground Up
Neural Networks from the Ground Up
 
Machine Learning Melee: AWS ML vs. Azure ML
Machine Learning Melee: AWS ML vs. Azure MLMachine Learning Melee: AWS ML vs. Azure ML
Machine Learning Melee: AWS ML vs. Azure ML
 
Tips on Starting a Compelling Vlog
Tips on Starting a Compelling VlogTips on Starting a Compelling Vlog
Tips on Starting a Compelling Vlog
 
Create a Windows 8 App in minutes
Create a Windows 8 App in minutesCreate a Windows 8 App in minutes
Create a Windows 8 App in minutes
 
Windows 8 Developer Workshop
Windows 8 Developer WorkshopWindows 8 Developer Workshop
Windows 8 Developer Workshop
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
 
HTML5, Silverlight & Kinect
HTML5, Silverlight & KinectHTML5, Silverlight & Kinect
HTML5, Silverlight & Kinect
 
Intro to MVC 3 for Government Developers
Intro to MVC 3 for Government DevelopersIntro to MVC 3 for Government Developers
Intro to MVC 3 for Government Developers
 
A Lap Around Silverlight 5
A Lap Around Silverlight 5A Lap Around Silverlight 5
A Lap Around Silverlight 5
 
Windows Phone Public Sector
Windows Phone Public SectorWindows Phone Public Sector
Windows Phone Public Sector
 
IE9: Power, Peformance and Standards
IE9: Power, Peformance and StandardsIE9: Power, Peformance and Standards
IE9: Power, Peformance and Standards
 
Dr ScriptLove or How I Learned to Stop Worrying and Love JavaScript
Dr ScriptLove or How I Learned to Stop Worrying and Love JavaScriptDr ScriptLove or How I Learned to Stop Worrying and Love JavaScript
Dr ScriptLove or How I Learned to Stop Worrying and Love JavaScript
 
Mix11 Recap DevDinner
Mix11 Recap DevDinnerMix11 Recap DevDinner
Mix11 Recap DevDinner
 
Bing & Silverlight: Perfect Together
Bing & Silverlight: Perfect TogetherBing & Silverlight: Perfect Together
Bing & Silverlight: Perfect Together
 
Pimp My Website
Pimp My WebsitePimp My Website
Pimp My Website
 
Exploring Sketch Flow
Exploring Sketch FlowExploring Sketch Flow
Exploring Sketch Flow
 
Poor Man's Project Natal
Poor Man's Project NatalPoor Man's Project Natal
Poor Man's Project Natal
 
Using Blend
Using BlendUsing Blend
Using Blend
 
Silverlight FireStarter DC Keynote
Silverlight FireStarter DC KeynoteSilverlight FireStarter DC Keynote
Silverlight FireStarter DC Keynote
 

Último

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Último (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

XAML: One Language to Rule Them All

  • 1. XAML One Language to Rule Them All Frank La Vigne Lead Designer Applied Information Sciences http://www.franksworld.com
  • 2. Ego Slide Frank La Vigne   Microsoft MVP: Tablet PC  INETA Membership Mentor for DC, Maryland and Delaware  Manager DC Silverlight SIG  Lead Designer @ AIS  Blog: www.franksworld.com  Company: www.appliedis.com  Twitter: @Tableteer  Feedback to Frank.LaVigne@appliedis.com
  • 4. The 3 R’s of Client Development
  • 5. Reach: The Web Widest possible reach From text only devices to desktops; from laptops to mobile phones; the web works just about anywhere Platform/Browser Independent* *Write once, test everywhere in every conceivable combination. Hard to debug Easy to Deploy User experience varies
  • 6. Rich: Windows Client Application Richest experience possible Response time is instantaneous WPF applications can leverage hardware acceleration for some truly engaging user experiences Easy to Debug Narrow focus Deployment concerns
  • 7. RIA: Silverlight Applications Happy Medium of Reach and Rich Response time is instantaneous Runs on Windows, Mac and Linux Easy to Debug Wide focus Easy deployment Enables great user experiences
  • 9. The Fantastic Four of Client Technology
  • 10. Silverlight Out of Browser Applications
  • 11. XBAP?
  • 12. XBAP Defined Slightly Better Reach, a Lot More Rich All the benefits of Silverlight The Power of WPF in a browser window 3D, Drag & Drop, Printing, Hardware Acceleration Easy to Debug Easy deployment (Windows w/ .NET 3.x) Enables great user experiences
  • 13. When to Use XBAPs To quickly push a WPF app onto the web When Management demands that applications be web based When Windows is the client platform Ideal for corporate intranet Specialized applications Quickly moving a WPF application to the web
  • 15. How Can I Create an XBAP? Open Visual Studio 2008 File  New Project  WPF Browser Application
  • 16. How Do I Deploy an XBAP? In Visual Studio 2008 Build  Publish
  • 17. Deploying an XBAP: Mime Types MIME Type File Extension application/manifest .manifest application/x-ms-xbap .xbap application/octet-stream .deploy application/x-ms-application .application application/vnd.ms-xpsdocument .xps application/xaml-xml .xaml
  • 18. Let the LOLCats Guide Us Demo Creating & Publishing an XBAP Application
  • 19. 3-2-1 Launch! Three Choices for Two Core One Common Client Technologies Language Applications
  • 20. One Markup Language to Rule Them All
  • 21. Mostly the Same WPF Only Gaps Silverlight Only Shared
  • 22. But the Differences Will Get You WPF Only Gaps Silverlight Only Shared
  • 24. Different Feature Sets.. Deep Zoom 3D VC-1 codec Documents H.264 codec 3 Drag Drop HTML integration Win32 Interop Sandbox Triggers VideoBrush Commands Plane Projection 3 Printing Logical tree Adorners Hosting WebBrowser
  • 25. Graphics Hardware acceleration Hardware acceleration 3 Graphics are Multi-core optimizations Drawings Lighter weight visuals Streams Graphics are Shapes Shapes
  • 26. Property System More inherited properties Extensible Property Metadata Default Values Coercion
  • 27. Resources generic.xaml generic.xaml Delayed instantiation of XamlReader can load StaticResources Resource Dictionaries. Merged Resource Dictionaries FindResource walks the tree Freezables
  • 28. Databinding UIElement to UIElement bindings UIElement to UIElement bindings 3 MultiBinding Binding support at FrameworkElement Binding support at DependencyObject No TargetType on data templates Dictionaries Relative bindings Template selectors More Type converters out of the box
  • 29. Eventing Events are synchronous Events are asynchronous Not all events bubble, even Tunneling (Preview) events if declared as Routed Mouse Wheel
  • 30. Styles Write-once No app themes No BasedOn No triggers
  • 31. Animation MotionPath Animation Named key-frames CompositionTarget.Rendering Storyboard APIs More animatable types Begin, Stop, etc. Extensibility Storyboard APIs added in 3.5 SP1
  • 32. Input Support for other platforms Key.Unknown ModifierKeys.Apple KeyEventArgs.PlatformKeyCode
  • 33. Layout LayoutTransform Text measures early
  • 34. Other More markup-extensions Different Hit-Testing e.g. x:Static LayoutRounding Property More panels No XamlWriter No VisualBrush No OnRender
  • 35. Demo Enough Slides! Code Time WPF  XBAP WPF  Silverlight
  • 36. Tips & Tricks for Recycling XAML Source compatibility (not binary compatibility) It is a different framework Code to Silverlight (Common Denominator) Create a different VS project for each ‘run-time’ Link the files together Use WPF’s XML namespace declaration xmlns=quot;http://schemas.microsoft.com/winfx/2006/xaml/p resentationquot;
  • 37. Tips & Tricks for Recycling Source Code Use #if for small logic Move all conditional logic to code (no #if in XAML) Partial classes for larger chunks Can use separate files altogether Place Templates and styles in App.xaml (both platforms can pick from there)
  • 38. Other API differences OpenFileDialog SL = System.Windows.Controls WPF: Microsoft.Win32 Dispatcher.BeginInvoke different signatures SL has more classes sealed (can’t be inherited) XamlReader.Load SL = XamlReader.Load ( string ) WPF = XamlReader.Load ( stream )
  • 39. Other API differences (cont’d) ContentPresenter SL : class ContentPresenter : Control WPF : class ContentPresenter : FrameworkElement UIElementCollection SL : UIElementCollection : PresentationFrameworkCollection<UIElement> WPF : UIElementCollection : IList, ICollection, Ienumerable
  • 40. THANK YOU! Frank La Vigne www.FranksWorld.com frank@franksworld.com @Tableteer