This blog has, IMO, some great resources. Unfortunately, some of those resources are becoming less relevant. I'm still blogging, learning tech and helping others...please find me at my new home on http://www.jameschambers.com/.

Thursday, May 28, 2009

Visual Studio 2010 – WPF Designer

The new WPF designer is quite exciting, as are many of the features that are coming down the pike for us developers in Visual Studio 2010.

Karl Shifflett posted a link to the new designer intro videos on WindowsClient.net last night and I had a dive into them.  The coolest-ever-IT-d00d at my office is in the process of building me a Win7+VS2010 virtual machine as I write this. Yum.

Of note for me are the following:

  • The visual appeal isn’t quite my thing, but I’m getting to be an old guy and am actually a fan of the existing environment.  On the other hand, I love Expression Blend and its apparent ‘awareness’ of certain things, so I’m encouraged that Visual Studio 2010 seems to be moving in that direction.
  • The Data Source tool window has had some long-overdue features added to it, such as awareness of foreign-key relationships.
  • The draggy-droppability of the designer from the highly-aware Data Source tool window is ridiculous.  Before you get too critical of using tools to do those kinds of things (I have some buddies who just hate using code-generation tools and are hesitant to switch to .Net because of it), be sure you check out what’s really going on.  All of the binding you would do by hand is being done – elegantly, I might add – behind the scenes for you.  There is no locked-in overly-cumbersome data binding through properties that makes you rip out what little hair you have left…uh…oops.  Flashback to WinForms…
  • The WPF designer has had some really nice updates to it to handle things like layout for grids.  Again, this is a vehicle for code-generation of sorts, but the extra design-time help is great for keeping you in one place.  I am not a fan of having to ride three different work areas to accomplish a task, that being the designer, the properties tool window and the Xaml editor. This is a welcome change. You can now switch between column sizing modes on-the-fly from the editor, as an example, giving you richer control over the layout.
  • There are improvements as well to the workflow of adding and displaying images in projects.  While this wasn’t terrible before, how and where it handles and stores images is more streamlined and path syntax is created dynamically (as it was in 2008, but there is a UI for this now).
  •  imageMuch like the WPF designer in Visual Studio 2008, we have search functionality in the Properties/Events tool window.  This is especially important with the emerging model of binding, preview events and the like.  If you aren’t already using this, give it a try.  The screenie to the right is from 2k8.  The Properties tool window is quite enriched and better reveals data binding status and options.
  • The search functionality has been applied to the new resource selector, as well, allowing us to quickly filter through the dozens of brushes, paths, etc. that we may have in our project.  I have to admit that this is a little bit of validation for me.  My resource libraries have grown significantly over the last little while; that they have implemented search capabilities indicates that the way I style my app is common to the community ;o)
  • It seems that the Properties tool window is getting some much-needed love.  The in-line editors for properties are not so shallow.  A control’s font, for example, has a more Word-like property editor streamlined into the property editor.
  • Data binding during the design story has been quite enhanced.  Drilling into a composite type that the designer has bound for you allows you to drill into that type, select an appropriate converter and get away from MyObject.ThisNameSpace.TheClassIWrote being displayed in your label, for example.  This is part of that “awareness” I was talking about that makes the experience more fluid.
  • The tab page for the IDE is now akin to IE’s tabbing functionality.  While I do prefer this to the style of Visual Studio 2008, I am a greater fan of the Google Chrome approach, where hovering over a tab allows me to close it without having to bring the tab to the foreground.

There was a mention in one of the videos that multi-control selection and property setting would be in the release version of Visual Studio 2010 (so, you’d be able to select four controls and set a brush for the background).  I also hope that they consider a resource palette, so that I don’t have to drill into the properties window and a popup box to achieve the same result.

I’ve also wondered why there isn’t more made of the mouse.  We aren’t too low on the experience level here, as developers, so I think that more encompassing experiences should be worked into the developer experience through that simple rodent we keep on our desk.  Middle-click, anyone?  If I were working on Visual Studio 2010, I would have tried to create accelerators with the mouse.  For example, if I highlight a block of code and middle-click, bring up the refactor menu (instead of going through the right-click submenu).  Similarly, if I’m in the designer and right-click on a control, give me the context menu related to styling and applying resources.  Again, I like to stay in one place and have the in-context toolset at my fingertips.  Especially my middle finger.  Always proves handy.

I will come back with more when I get my hands a little more dirty with the 2010 beta.

2 comments:

  1. James,

    Thank you for your comments and feedback. I've been working with the Data Sources Window features. (I've never used Mr. Wizard in my applications) I must say, building a data form that is sourced from business entity objects is really quite good. I'll be posting the applicaiton and workflow on WindowClient in about two weeks.

    Best to you,

    Karl

    ReplyDelete
  2. Thanks Karl,

    I will keep exploring and posting my thoughts, findings and suggestions, whatever they're worth!

    Cheers,
    -jc

    ReplyDelete