SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Jonathan Russ and Josh Wagoner
IdentityMine, Inc.
User Experience Design and Development

                WPF

           We love software
Real world application design
and development has taught us a lot…

       And we like to share. 
Develop
Design




         Integrate
True Graphics Designer

Microsoft Expression Design, Adobe
  Illustrator, Macromedia Fireworks,
           3D Modeling Tools

      Owns the design assets
Software Engineer

Microsoft Visual Studio 2005

      Owns the code
Part Designer, Part Developer. Coordinator.

Microsoft Expression Blend, Microsoft Visual
                Studio 2005

             Owns the XAML
Jonathan Russ
  Director of R & D

  4½ years – WPF
 13 years – Software
 18 years – Industry
 26 years – Hobbyist
36 years – Coexisting
a.k.a., Dynamics Visualization Application
a.k.a., DynaViz
Event handlers keep objects alive

WPF registers a Changed handler for DPs of type Freezable

          Set to null prior to releasing the object

                MyRect.Fill = null;
                MyRect = null;
There’s Strength in Weakness

  Follow the weak event pattern

      Use weak references
Cache and Re-use Objects
Cache Images
Decode images to their required sizes

   BitmapImage.DecodePixelWidth
   BitmapImage.DecodePixelHeight
Use Commands

           KeyBinding

Best if stored in a common location
Focusability

Focusable Property
IsTabStop Property
Visual Cues

FocusVisualStyle Property
Control Behaviors

     IsMouseOver Property
IsKeyboardFocusWithin Property
Tracking Focus

Snoop FocusManager
ChromelessWindow

ElementSnapshot

  DragAndDrop

   OSChecker

    Zoombox
TreeGraph

      RadialPanel

ForceDirectedRadialPanel

   CommandTextBox

   EditModeTextBlock

      ImageCache
SimpleBinding and EvalBinding
(available in all Blendables™ mixes)
Real Estate Performance Management

Optimize the impact of real estate on
       company performance
Development Workflow

       WPF 3D

Real-world Data Sources
Designers: 1

 Integrators: 1

Developers: 1-2
Designer: Comps. 3D Models.

Integrator: Styles. Templates. 2D Animations. Design
                       Integration.

Developer: Controls. 3D Interaction Code. Intergration
           of Data Services. Code Behinds.
Feature differences between WPF 2D and 3D

Less Designer and Integrator input than other
                WPF projects
Building 3D applications with WPF can be much easier
             than other technologies, but…

                    It's still hard.
Make sure you have a good understand of 3D concepts
                   and terminology.

If you don't have the knowledge now, don't be afraid of 3D.
                       Read a book. 
Designers should be familiar with 3D Modeling tools.

               ElectricRain's Zam3D

    Workflow: Export developer friendly models.
Most users are not familiar with navigating 3D UI

Contrained movement to allow users easily acclimate to the
                      environment

          2D UI to allow user to control 3D world
Input Events… or lack thereof

      Hit Testing in 3D
ModelVisual3D is the most functional class in 3D

       Most similar to the 2D Visual class

No support for Styles, Templates, Routed Events.
3D models do not raise events as 2D controls do

      No MouseEnter, No MouseExit, No
           MouseButtonDown, etc.
A UIElement is needed to raise input events. This could be
      the Viewport3D itself or an element on top of the
                        Viewport3D

 VisualTreeHelper provides support for hit testing into 3D

        Models intersected by hit test are returned
We created a hit manager class that handles all hit testing

    Hit manager dispatches events to the models hit

 Now we could add event handlers directly to the models
  when the model is added to scene for a more productive
           and consistent development model
Data in the Accruent application cried out for ItemsControl
                       functionality.

List of data objects are returned from most service calls.

We leveraged the Blendables™ Brand ItemsContainer3D
               and Carousel3D controls
Building a data bound video carousel
entirely in markup.
3DTools project on codeplex.com

   Source released by Microsoft with controls enabling
               interactive 2D content on 3D

The Interactive3DDecorator is the control that sits on top of
         the Viewport3D in the Accruent application
Avoid TileBrushes whenever possible in your 3D scene

When a model with a TileBrush in its material is not visible
                remove it form the scene

      RenderOptions.CachingHint attached property
Real world data sources can be slow

Waiting on data can freeze ambient animations and result
                 in a poor user experience
Dispatcher.Invoke

            Dispatcher.BeginInvoke

Do processing on background threads and update
             dependency properties
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions,
                it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
                                       MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Weitere ähnliche Inhalte

Andere mochten auch

The Holy Season of Lent
The Holy Season of LentThe Holy Season of Lent
The Holy Season of Lentgoodfriday
 
How Razorfish Lights Up Brand with Microsoft SharePoint
How Razorfish Lights Up Brand with Microsoft SharePointHow Razorfish Lights Up Brand with Microsoft SharePoint
How Razorfish Lights Up Brand with Microsoft SharePointgoodfriday
 
Easter Sunday :: op-stjoseph.org
Easter Sunday :: op-stjoseph.orgEaster Sunday :: op-stjoseph.org
Easter Sunday :: op-stjoseph.orggoodfriday
 
Developing Interactive Applications Using Windows Live Robots, Activities, an...
Developing Interactive Applications Using Windows Live Robots, Activities, an...Developing Interactive Applications Using Windows Live Robots, Activities, an...
Developing Interactive Applications Using Windows Live Robots, Activities, an...goodfriday
 
Opening up Windows Live Data
Opening up Windows Live DataOpening up Windows Live Data
Opening up Windows Live Datagoodfriday
 
Sketch Flow: From Concept to Production
Sketch Flow: From Concept to ProductionSketch Flow: From Concept to Production
Sketch Flow: From Concept to Productiongoodfriday
 
Front-Ending the Web with Microsoft Office
Front-Ending the Web with Microsoft OfficeFront-Ending the Web with Microsoft Office
Front-Ending the Web with Microsoft Officegoodfriday
 
Windows Presentation Foundation: The Opportunity for WPF Applications in the …
Windows Presentation Foundation: The Opportunity for WPF Applications in the …Windows Presentation Foundation: The Opportunity for WPF Applications in the …
Windows Presentation Foundation: The Opportunity for WPF Applications in the …goodfriday
 
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
 
History of Good Friday
History of Good FridayHistory of Good Friday
History of Good Fridaygoodfriday
 
12 passos para ser relevante em um mundo mutante
12 passos para ser relevante em um mundo mutante12 passos para ser relevante em um mundo mutante
12 passos para ser relevante em um mundo mutanteAlvaro Nassaralla
 
Proyecto minerva (1)
Proyecto minerva (1)Proyecto minerva (1)
Proyecto minerva (1)equipo 6
 
Plume d'y voir n° 3 année 2015 2016
Plume d'y voir n° 3 année 2015 2016Plume d'y voir n° 3 année 2015 2016
Plume d'y voir n° 3 année 2015 2016Roland Garros
 
7 геогр пестушко_уварова_2015_укр
7 геогр пестушко_уварова_2015_укр7 геогр пестушко_уварова_2015_укр
7 геогр пестушко_уварова_2015_укрAira_Roo
 

Andere mochten auch (17)

The Holy Season of Lent
The Holy Season of LentThe Holy Season of Lent
The Holy Season of Lent
 
How Razorfish Lights Up Brand with Microsoft SharePoint
How Razorfish Lights Up Brand with Microsoft SharePointHow Razorfish Lights Up Brand with Microsoft SharePoint
How Razorfish Lights Up Brand with Microsoft SharePoint
 
Easter Sunday :: op-stjoseph.org
Easter Sunday :: op-stjoseph.orgEaster Sunday :: op-stjoseph.org
Easter Sunday :: op-stjoseph.org
 
Developing Interactive Applications Using Windows Live Robots, Activities, an...
Developing Interactive Applications Using Windows Live Robots, Activities, an...Developing Interactive Applications Using Windows Live Robots, Activities, an...
Developing Interactive Applications Using Windows Live Robots, Activities, an...
 
Opening up Windows Live Data
Opening up Windows Live DataOpening up Windows Live Data
Opening up Windows Live Data
 
Keynote I
Keynote IKeynote I
Keynote I
 
Sketch Flow: From Concept to Production
Sketch Flow: From Concept to ProductionSketch Flow: From Concept to Production
Sketch Flow: From Concept to Production
 
Front-Ending the Web with Microsoft Office
Front-Ending the Web with Microsoft OfficeFront-Ending the Web with Microsoft Office
Front-Ending the Web with Microsoft Office
 
Windows Presentation Foundation: The Opportunity for WPF Applications in the …
Windows Presentation Foundation: The Opportunity for WPF Applications in the …Windows Presentation Foundation: The Opportunity for WPF Applications in the …
Windows Presentation Foundation: The Opportunity for WPF Applications in the …
 
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
 
History of Good Friday
History of Good FridayHistory of Good Friday
History of Good Friday
 
Seleção EJFGV
Seleção EJFGVSeleção EJFGV
Seleção EJFGV
 
12 passos para ser relevante em um mundo mutante
12 passos para ser relevante em um mundo mutante12 passos para ser relevante em um mundo mutante
12 passos para ser relevante em um mundo mutante
 
Proyecto minerva (1)
Proyecto minerva (1)Proyecto minerva (1)
Proyecto minerva (1)
 
Plume d'y voir n° 3 année 2015 2016
Plume d'y voir n° 3 année 2015 2016Plume d'y voir n° 3 année 2015 2016
Plume d'y voir n° 3 année 2015 2016
 
7 геогр пестушко_уварова_2015_укр
7 геогр пестушко_уварова_2015_укр7 геогр пестушко_уварова_2015_укр
7 геогр пестушко_уварова_2015_укр
 
Interfaz scratch
Interfaz scratchInterfaz scratch
Interfaz scratch
 

Ähnlich wie Lessons Learned: Designer/Developer Productivity in Windows Presentation Foundation

Sx sw speaker proposal slides
Sx sw speaker proposal slidesSx sw speaker proposal slides
Sx sw speaker proposal slidesMitch Williams
 
3D Programming Basics: WebGL
3D Programming Basics: WebGL3D Programming Basics: WebGL
3D Programming Basics: WebGLGlobant
 
Design stunning user experience with expression blend
Design stunning user experience with expression blendDesign stunning user experience with expression blend
Design stunning user experience with expression blendKosala Nuwan Perera
 
3D face creation via 2D images within blender virtual environment
3D face creation via 2D images within blender virtual environment3D face creation via 2D images within blender virtual environment
3D face creation via 2D images within blender virtual environmentnooriasukmaningtyas
 
CURRICULUM VITAE
CURRICULUM VITAECURRICULUM VITAE
CURRICULUM VITAEVicky Kumar
 
Code understanding and systems design with visual studio 2010
Code understanding and systems design with visual studio 2010Code understanding and systems design with visual studio 2010
Code understanding and systems design with visual studio 2010Spiffy
 
Tech Ed09 Net Best Practices Bijoy New
Tech Ed09 Net Best Practices Bijoy NewTech Ed09 Net Best Practices Bijoy New
Tech Ed09 Net Best Practices Bijoy Newrsnarayanan
 
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...Unity Technologies
 
Development of 3D Website Along with VFX and Animation
Development of 3D Website Along with VFX and AnimationDevelopment of 3D Website Along with VFX and Animation
Development of 3D Website Along with VFX and AnimationYogeshIJTSRD
 
It presentation specialised application software
It presentation specialised application softwareIt presentation specialised application software
It presentation specialised application softwareNisarga Nikam
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...NCCOMMS
 
O365 and SharePoint Connect - Create an immersive experience with office 365...
O365 and SharePoint Connect  - Create an immersive experience with office 365...O365 and SharePoint Connect  - Create an immersive experience with office 365...
O365 and SharePoint Connect - Create an immersive experience with office 365...Alexander Meijers
 
Silverlight overview
Silverlight overviewSilverlight overview
Silverlight overviewTaras Romanyk
 
Roadmap to Become Experts.pptx
Roadmap to Become Experts.pptxRoadmap to Become Experts.pptx
Roadmap to Become Experts.pptxdscwidyatamanew
 
Designing and developing products for multiple platforms
Designing and developing products for multiple platformsDesigning and developing products for multiple platforms
Designing and developing products for multiple platformsDesignit
 
amiryaqub.doc
amiryaqub.docamiryaqub.doc
amiryaqub.docbutest
 
Using Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component SetUsing Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component SetJoseph Labrecque
 

Ähnlich wie Lessons Learned: Designer/Developer Productivity in Windows Presentation Foundation (20)

Sx sw speaker proposal slides
Sx sw speaker proposal slidesSx sw speaker proposal slides
Sx sw speaker proposal slides
 
From Vision to Visualization with ProtoTech Solutions
From Vision to Visualization with ProtoTech SolutionsFrom Vision to Visualization with ProtoTech Solutions
From Vision to Visualization with ProtoTech Solutions
 
3D Programming Basics: WebGL
3D Programming Basics: WebGL3D Programming Basics: WebGL
3D Programming Basics: WebGL
 
Design stunning user experience with expression blend
Design stunning user experience with expression blendDesign stunning user experience with expression blend
Design stunning user experience with expression blend
 
3D face creation via 2D images within blender virtual environment
3D face creation via 2D images within blender virtual environment3D face creation via 2D images within blender virtual environment
3D face creation via 2D images within blender virtual environment
 
CURRICULUM VITAE
CURRICULUM VITAECURRICULUM VITAE
CURRICULUM VITAE
 
Code understanding and systems design with visual studio 2010
Code understanding and systems design with visual studio 2010Code understanding and systems design with visual studio 2010
Code understanding and systems design with visual studio 2010
 
Tech Ed09 Net Best Practices Bijoy New
Tech Ed09 Net Best Practices Bijoy NewTech Ed09 Net Best Practices Bijoy New
Tech Ed09 Net Best Practices Bijoy New
 
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
How ABB shapes the future of industry with Microsoft HoloLens and Unity - Uni...
 
Development of 3D Website Along with VFX and Animation
Development of 3D Website Along with VFX and AnimationDevelopment of 3D Website Along with VFX and Animation
Development of 3D Website Along with VFX and Animation
 
It presentation specialised application software
It presentation specialised application softwareIt presentation specialised application software
It presentation specialised application software
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
 
O365 and SharePoint Connect - Create an immersive experience with office 365...
O365 and SharePoint Connect  - Create an immersive experience with office 365...O365 and SharePoint Connect  - Create an immersive experience with office 365...
O365 and SharePoint Connect - Create an immersive experience with office 365...
 
Silverlight overview
Silverlight overviewSilverlight overview
Silverlight overview
 
What is Jibe?
What is Jibe?What is Jibe?
What is Jibe?
 
Roadmap to Become Experts.pptx
Roadmap to Become Experts.pptxRoadmap to Become Experts.pptx
Roadmap to Become Experts.pptx
 
Designing and developing products for multiple platforms
Designing and developing products for multiple platformsDesigning and developing products for multiple platforms
Designing and developing products for multiple platforms
 
amiryaqub.doc
amiryaqub.docamiryaqub.doc
amiryaqub.doc
 
3d-builder.docx
3d-builder.docx3d-builder.docx
3d-builder.docx
 
Using Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component SetUsing Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component Set
 

Mehr von goodfriday

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052goodfriday
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 eastergoodfriday
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009goodfriday
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swimgoodfriday
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092goodfriday
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009goodfriday
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009goodfriday
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Currentgoodfriday
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newslettergoodfriday
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009goodfriday
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09goodfriday
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09goodfriday
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009goodfriday
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendargoodfriday
 

Mehr von goodfriday (20)

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052
 
Triunemar05
Triunemar05Triunemar05
Triunemar05
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 easter
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swim
 
Easter Letter
Easter LetterEaster Letter
Easter Letter
 
April2009
April2009April2009
April2009
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Current
 
Easter2009
Easter2009Easter2009
Easter2009
 
Bulletin
BulletinBulletin
Bulletin
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newsletter
 
Mar 29 2009
Mar 29 2009Mar 29 2009
Mar 29 2009
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendar
 

Kürzlich hochgeladen

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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
 
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
 
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
 
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
 
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
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
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
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Kürzlich hochgeladen (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
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 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...
 
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
 
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
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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
 
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?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Lessons Learned: Designer/Developer Productivity in Windows Presentation Foundation

  • 1.
  • 2. Jonathan Russ and Josh Wagoner IdentityMine, Inc.
  • 3. User Experience Design and Development WPF We love software
  • 4.
  • 5. Real world application design and development has taught us a lot… And we like to share. 
  • 6. Develop Design Integrate
  • 7. True Graphics Designer Microsoft Expression Design, Adobe Illustrator, Macromedia Fireworks, 3D Modeling Tools Owns the design assets
  • 8. Software Engineer Microsoft Visual Studio 2005 Owns the code
  • 9. Part Designer, Part Developer. Coordinator. Microsoft Expression Blend, Microsoft Visual Studio 2005 Owns the XAML
  • 10. Jonathan Russ Director of R & D 4½ years – WPF 13 years – Software 18 years – Industry 26 years – Hobbyist 36 years – Coexisting
  • 11. a.k.a., Dynamics Visualization Application a.k.a., DynaViz
  • 12. Event handlers keep objects alive WPF registers a Changed handler for DPs of type Freezable Set to null prior to releasing the object MyRect.Fill = null; MyRect = null;
  • 13. There’s Strength in Weakness Follow the weak event pattern Use weak references
  • 14. Cache and Re-use Objects
  • 16. Decode images to their required sizes BitmapImage.DecodePixelWidth BitmapImage.DecodePixelHeight
  • 17. Use Commands KeyBinding Best if stored in a common location
  • 20. Control Behaviors IsMouseOver Property IsKeyboardFocusWithin Property
  • 23. TreeGraph RadialPanel ForceDirectedRadialPanel CommandTextBox EditModeTextBlock ImageCache
  • 24. SimpleBinding and EvalBinding (available in all Blendables™ mixes)
  • 25. Real Estate Performance Management Optimize the impact of real estate on company performance
  • 26.
  • 27. Development Workflow WPF 3D Real-world Data Sources
  • 28. Designers: 1 Integrators: 1 Developers: 1-2
  • 29. Designer: Comps. 3D Models. Integrator: Styles. Templates. 2D Animations. Design Integration. Developer: Controls. 3D Interaction Code. Intergration of Data Services. Code Behinds.
  • 30. Feature differences between WPF 2D and 3D Less Designer and Integrator input than other WPF projects
  • 31. Building 3D applications with WPF can be much easier than other technologies, but… It's still hard.
  • 32. Make sure you have a good understand of 3D concepts and terminology. If you don't have the knowledge now, don't be afraid of 3D. Read a book. 
  • 33. Designers should be familiar with 3D Modeling tools. ElectricRain's Zam3D Workflow: Export developer friendly models.
  • 34. Most users are not familiar with navigating 3D UI Contrained movement to allow users easily acclimate to the environment 2D UI to allow user to control 3D world
  • 35. Input Events… or lack thereof Hit Testing in 3D
  • 36. ModelVisual3D is the most functional class in 3D Most similar to the 2D Visual class No support for Styles, Templates, Routed Events.
  • 37. 3D models do not raise events as 2D controls do No MouseEnter, No MouseExit, No MouseButtonDown, etc.
  • 38. A UIElement is needed to raise input events. This could be the Viewport3D itself or an element on top of the Viewport3D VisualTreeHelper provides support for hit testing into 3D Models intersected by hit test are returned
  • 39. We created a hit manager class that handles all hit testing Hit manager dispatches events to the models hit Now we could add event handlers directly to the models when the model is added to scene for a more productive and consistent development model
  • 40. Data in the Accruent application cried out for ItemsControl functionality. List of data objects are returned from most service calls. We leveraged the Blendables™ Brand ItemsContainer3D and Carousel3D controls
  • 41. Building a data bound video carousel entirely in markup.
  • 42. 3DTools project on codeplex.com Source released by Microsoft with controls enabling interactive 2D content on 3D The Interactive3DDecorator is the control that sits on top of the Viewport3D in the Accruent application
  • 43. Avoid TileBrushes whenever possible in your 3D scene When a model with a TileBrush in its material is not visible remove it form the scene RenderOptions.CachingHint attached property
  • 44. Real world data sources can be slow Waiting on data can freeze ambient animations and result in a poor user experience
  • 45. Dispatcher.Invoke Dispatcher.BeginInvoke Do processing on background threads and update dependency properties
  • 46.
  • 47.
  • 48. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.