Lessons Learned: Designer/Developer Productivity in Windows Presentation Foundation

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Lessons Learned: Designer/Developer Productivity in Windows Presentation Foundation - Presentation Transcript

    1. Jonathan Russ and Josh Wagoner IdentityMine, Inc.
    2. User Experience Design and Development WPF We love software
    3. Real world application design and development has taught us a lot… And we like to share. 
    4. Develop Design Integrate
    5. True Graphics Designer Microsoft Expression Design, Adobe Illustrator, Macromedia Fireworks, 3D Modeling Tools Owns the design assets
    6. Software Engineer Microsoft Visual Studio 2005 Owns the code
    7. Part Designer, Part Developer. Coordinator. Microsoft Expression Blend, Microsoft Visual Studio 2005 Owns the XAML
    8. Jonathan Russ Director of R & D 4½ years – WPF 13 years – Software 18 years – Industry 26 years – Hobbyist 36 years – Coexisting
    9. a.k.a., Dynamics Visualization Application a.k.a., DynaViz
    10. 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;
    11. There’s Strength in Weakness Follow the weak event pattern Use weak references
    12. Cache and Re-use Objects
    13. Cache Images
    14. Decode images to their required sizes BitmapImage.DecodePixelWidth BitmapImage.DecodePixelHeight
    15. Use Commands KeyBinding Best if stored in a common location
    16. Focusability Focusable Property IsTabStop Property
    17. Visual Cues FocusVisualStyle Property
    18. Control Behaviors IsMouseOver Property IsKeyboardFocusWithin Property
    19. Tracking Focus Snoop FocusManager
    20. ChromelessWindow ElementSnapshot DragAndDrop OSChecker Zoombox
    21. TreeGraph RadialPanel ForceDirectedRadialPanel CommandTextBox EditModeTextBlock ImageCache
    22. SimpleBinding and EvalBinding (available in all Blendables™ mixes)
    23. Real Estate Performance Management Optimize the impact of real estate on company performance
    24. Development Workflow WPF 3D Real-world Data Sources
    25. Designers: 1 Integrators: 1 Developers: 1-2
    26. Designer: Comps. 3D Models. Integrator: Styles. Templates. 2D Animations. Design Integration. Developer: Controls. 3D Interaction Code. Intergration of Data Services. Code Behinds.
    27. Feature differences between WPF 2D and 3D Less Designer and Integrator input than other WPF projects
    28. Building 3D applications with WPF can be much easier than other technologies, but… It's still hard.
    29. 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. 
    30. Designers should be familiar with 3D Modeling tools. ElectricRain's Zam3D Workflow: Export developer friendly models.
    31. 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
    32. Input Events… or lack thereof Hit Testing in 3D
    33. ModelVisual3D is the most functional class in 3D Most similar to the 2D Visual class No support for Styles, Templates, Routed Events.
    34. 3D models do not raise events as 2D controls do No MouseEnter, No MouseExit, No MouseButtonDown, etc.
    35. 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
    36. 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
    37. 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
    38. Building a data bound video carousel entirely in markup.
    39. 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
    40. 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
    41. Real world data sources can be slow Waiting on data can freeze ambient animations and result in a poor user experience
    42. Dispatcher.Invoke Dispatcher.BeginInvoke Do processing on background threads and update dependency properties
    43. © 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.

    + goodfridaygoodfriday, 7 months ago

    custom

    777 views, 0 favs, 0 embeds more stats

    Join the IdentityMine team for an in-depth discussi more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 777
      • 777 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 25
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories