locked
The role of Blend

    General discussion

  • I'm just beginning to outline the user interface for a new Sonos controller app, I'm relatively new to the XAML based GUI techniques and MVVM but have delved reasonably deeply into the binding model, observable collections and change notification handling.

    I have a crude GUI in a test app that exercises the "back end" (model) UPnP controller "engine" API, but this is crude and apart from its proof of concept value is more or less throw away.

    So the question has come up - should I consider using Blend as part of my approach to creating this GUI?

    I've asked this kind of question before but never really get clarity.

    It seems that Blend is suited to certain "rich" types of user interface and offers more than VS does, but what exactly does "rich" mean here?

    Surely complex GUIs rely on pre-written controls and VS supports that well I thought.

    I'm finding it hard to get meaningful answers, real concrete examples of scenarios where Blend wins hands down over VS but all I get are vague rather wish washy answers.

    Why is Blend better than VS for some things? Is the designer better? Does it support superior control embedding? Is it better if there are large numbers of visual elements (imagine VS itself as a rich user interface, is VS designed or maintained with Blend).

    In fact what products sold by Microsoft are built internally with Blend? Do Microsoft actually use Blend themselves for anything? If so what?

    Even if my GUI were somewhat simple, would it be wise to use Blend just to get familiar with it? Is there a downside to using Blend other than the learning effort?

    Any input from experts here is very much appreciated.

    Cap'n

    Monday, October 21, 2013 3:43 AM

All replies

  • See Blend for Visual Studio 2013

    Blend and Visual Studio are strongly related: the designer inside Visual Studio comes from Blend. Visual Studio is tuned more for coding and Blend for designing. Visual Studio has the basics for visual design, and Blend adds more powerful design features for visually editing Visual States, Animations, templates, etc.

    I typically use both in tandem: I write my code in Visual Studio and do some basic Xaml editing, but I switch to Blend to make my UI sing with animations and custom templates.

    There is no downside to using Blend. It generates the same mark-up you can generate in Visual Studio, but Blend can generate complex markup visually where Visual Studio would require hand-coding.

    --Rob

    Monday, October 21, 2013 4:21 AM
    Owner
  • See Blend for Visual Studio 2013

    Blend and Visual Studio are strongly related: the designer inside Visual Studio comes from Blend. Visual Studio is tuned more for coding and Blend for designing. Visual Studio has the basics for visual design, and Blend adds more powerful design features for visually editing Visual States, Animations, templates, etc.

    I typically use both in tandem: I write my code in Visual Studio and do some basic Xaml editing, but I switch to Blend to make my UI sing with animations and custom templates.

    There is no downside to using Blend. It generates the same mark-up you can generate in Visual Studio, but Blend can generate complex markup visually where Visual Studio would require hand-coding.

    --Rob

    Thanks Rob, I'll take the leap tomorrow and explore Blend, I have enough info to make a first attempt.

    Incidentally I'm seeing the word "surface" used in books and articles to denote something pertaining to the XAML user interface but I'm not clear on this.

    For example "if you need to surface a list of data to the view...". I can't find any formal definition of this usage, sure I can try to infer a meaning ("render"?) but if its that simple why hijack the word "surface" at all?

    I'm sure you do know what this usage technically means, if so please define it so I can stop trying to fathom hidden meanings which is just complicating my already complicated life !

    Thanks, Cap'n

    PS due to Microsoft's infuriating habit of naming products and technologies with inane English words (surface, word) it is nigh on impossible to find a definition - try searching for this intent:

    Search Google for usage of the word "surface" to describe an aspect of user interface processing on a Microsoft Surface tablet.


    Monday, October 21, 2013 6:52 AM
  • Rob, I've read that article you cited above and did some additional searching. It appears though that there is no detailed documentation on Blend 2013!

    I find this hard to believe and hope I'm wrong, but all I can find are references to posts in a Visual Studio blog, hardly an effective form of documentation.

    Furthermore, the most recent book published on Blend was published in spring 2011 almost three years ago - ancient history.

    I'm very interested in Blend and prepared to roll up my sleeves and teach myself from the ground up, but without professionally authored and reviewed documentation this is an undertaking that may yield little fruit.

    I spend probably several hours a week just searching trying to find information, this is time consuming and disruptive to one's workflow.

    Is there anything you can suggest that will enable me to get to grips with Blend other than trawling for little scraps in blogs etch?

    Thanks.

    Cap'n

    Tuesday, October 22, 2013 6:41 AM
  • Hi Captain,

    The link I gave you was to the root of a fairly large and detailed section of documentation, not just a single article. Make sure you didn't miss the rest of the tree listed on the left hand side of the page.

    Picture of Blend documentation tree

    --Rob

    Tuesday, October 22, 2013 11:43 PM
    Owner
  • The word "surface" is used here very similarly to its standard use as a verb. "To surface a list of data to a view" is to make the data known to the user. Metaphorically to bring the data from below (where the user can't see it) to the surface of the app so the user can see it. This is similar to information surfacing in an investigation or a submarine surfacing from underwater.

    --Rob

    Tuesday, October 22, 2013 11:50 PM
    Owner
  • The word "surface" is used here very similarly to its standard use as a verb. "To surface a list of data to a view" is to make the data known to the user. Metaphorically to bring the data from below (where the user can't see it) to the surface of the app so the user can see it. This is similar to information surfacing in an investigation or a submarine surfacing from underwater.

    --Rob

    OK Thanks for both answers, I can see that documentation tree now, great help.

    As for "surface" I guess its just another case of tech writers leveraging words anew, I've been writing software since the late 70s and never heard the term used for this (I'd probably use "expose" or "present" myself).

    Wednesday, October 23, 2013 2:24 PM