What is new in Expression Blend Beta1?

We listened to your feedback and worked a large number of new features to help you become more productive + improved a lot on our old set of features. Explaining all the new work would probably be too much for a blog post, but I will try to highlight on all that I can recollect. Give it a shot!

  • Project system
    • Solution support: We now support opening solutions (.sln). This lets you work seamlessly with Visual Studio and your favorite developer without frustrations.
    • User Controls: User Controls let you compose your UI into more manageable entities – gone is the day of that humongous XAML file that tried to describe your entire application’s UI. Check out File -> Add New Item that lets you create these. We also let you embed User Controls within one another and let you jump out to the appropriate User Control (within a project and across projects) to edit them. Right click on a User Control that you have embedded in your application to edit it.
  • Re-designed user experience
    • The new Expression Dark theme: The dark theme is meant to let you focus on the design surface, and puts everything else in the background. We also plan to support a lighter theme (called Expression Light) for those paranoid of dark user interfaces – however, this is something that we have yet to work on although you can see a placeholder for the same in the Options dialog).
    • Workspaces: We ship with two distinct workspaces – one of the workspaces lets you have a wider timeline palette and is useful for complex animation sequences. In addition, you can undock any palette to your secondary monitor.
    • Shortcuts, shortcuts, shortcuts: Almost everything is now accessible using keyboard shortcuts. My favorite (and did we miss this!): Hit Tab to hide all palettes so you could focus on your work. When you hit tab, we have enabled a special mode for the property inspector that lets you make quick edits to a property without making the entire UI visible.
    • Focus issues: In keeping with the various professional design tools out there, and quite contrary to Visual Studio’s design surfaces, the focus is almost always on the design surface. This lets you quickly navigate between different functionality, with lesser number of clicks.
  • Property editing experience
    • Context sensitive property grid: One of the biggest differences you will see in Blend is that we moved away from the palette metaphor. The palette metaphor works great for drawing tools which have a limited set of things you can manipulate, but for WPF and all its richness, it can become a hassle since you need many, many palettes. Enter the context sensitive property grid which tries to blend (no pun intended) the best of both worlds: You get categories that try to preserve the well known palette metaphor, and that you can collapse to hide. But you also get a one stop shop for setting practically any property in WPF.
    • Search for properties: The search feature in the property grid is well integrated to search across categories.
    • Brush and color editors: We have done a ton of work on these, and it would probably warrant a post of its own. Couple major things we integrated, thanks to your feedback: Specifying Hex values and values in the 0-255 range, and the ability to pick color and brush resources.
    • Extensibility: The property editing experience is extensible, meaning you can write your own categories, and editors for your properties. In addition, the extensibility API for the property grid is the same as that exposed for Visual Studio – so with one bullet, you can target two sets of audiences. I will detail this out in a following post. The cool thing here is that we have written a lot of Blend’s property grid against this API – so that shows the power.
    • Collection editor: Lets you edit collections of things like BitmapEffects, items in a ListBox, etc.
    • Create and apply BitmapEffects: Now you can create and apply your favorite BitmapEffect using Blend. However, standard warning applies: BitmapEffects are rendered in software in WPF, so be subtle in their use if you want fast user experiences!
  • Asset creation
    • Tool bar: Tool bar lets you create elements like shapes, and some common controls, in addition to the various standard tools like selection, zoom, and pan.
    • Asset tool: Asset tool replaces the library palette and provided the one stop shop for creating any WPF or custom control. The asset tool also maintains an MRU list of controls that you create so you can quickly create a second instance. The asset tool palette lets you drag and drop control so controls get instantiated at their default size or you can double click to instantiate a control at a certain specific size.
    • Search: Like the property grid, the asset tool lets you search for controls so you can quickly find them.
  • Better workflow with Microsoft Visual Studio
    • Edit projects in Visual Studio: Right click on a project or solution file in the project pane to edit in Visual Studio. Now you can right click on any file and chose to edit it in Visual Studio. It is great fun (and highly productive) to be using Visual Studio and Blend on a two monitor setup! Any changes you make in Visual Studio are automatically picked up by Blend.
    • Add event handler code in Visual Studio: We simply did not have enough time to provide a great coding experience. But don’t worry – we more than made up for it by falling back on Visual Studio. You can choose to setup Blend such that when you add an event handler, the right file will be opened up in Visual Studio and the handler added for you – all ready for you to code away.
  • XAML editor
    • View XAML: Right-click on any element, resource, etc. and quickly jump to the corresponding XAML. This is extremely useful when you don’t really know where something is located in XAML.
    • Find and replace: Lets you find and replace stuff in XAML. Also lets you jump to a different line.
    • XAML coloring: Pretty standard stuff. We also color markup extensions (stuff like Bindings, Resource references, etc.) with a different color so you can quickly find them.
  • Resource management
    • Is my resource missing? If it is, we will show it to you. Any missing resource references are shown in the results pane. You no longer have to debug your application to figure this out! WYSIWYG.
    • Manage resources. We let you drag and drop and copy and paste resources across various resource dictionaries – application level, document level, and external. We try to be smart enough to ensure that your document is never “broken” when you move resources around, and will prompt you when the document integrity cannot be maintained. This is a major feature that we worked on – we wanted to make sure that you could manage resources as an after-thought.
    • Resources pane: The resources pane is your one stop shop to see resources that are being used in your current document, and all other resources that can be applied. You can edit most resources directly from within here (and better support for this is coming in the near future – this is a work in progress). You can drag and drop a resource from the resource pane onto your element – this makes it very easy to work with any pre-defined resources that you may have.
    • Filter resource: Imagine that you have 10 different resource dictionaries, and 100s of resources. How do you figure out all the resources that are being used by an element so you could edit them? Use the “Filter” button in the resource pane to only see resources that are currently being used by the selected element (Styles, brushes, etc.).
    • Create resources out of virtually anything. In our previous CTP, it was not possible to create and apply Visual Brush resources. Now it is – the key scenario here is to create one or more reflections that are “live”.
  • Layout and drawing
    • Snapping: You can snap to other elements, text baseline, and grid rows and columns – forms layout is now as easy as ever. You can also have a snap grid that helps for vector drawing operations.
    • Boolean operations: We support a variety of Boolean operations on paths – Unite, Divide, Intersect, Subtract, Exclude, and Exclude Overlap. Check out the Object - > Combine menu.
    • Fill an element in a container: Right click on an element -> Auto Size -> Fill to cause the element to occupy all the size made available by its parent.
  • Timeline and interactivity
    • A workspace that is completely dedicated to let you focus on creating animations.
    • The completely redone triggers pane lets you create and edit various kinds of triggers. A follow up post will be necessary to explain all of it, but you no longer have to hunt around for a way to trigger a MouseOver animation or create a MousePressed state.
    • Drag and drop to reorder elements in the timeline.
    • Timeline is now automatically expanded to show selection on the design surface.
  • Miscellaneous
    • XAML is as clean as ever: We listened to a ton of feedback from you, thanks! As a result, the XAML we generate is very concise – no extra precision, extra attributes.
    • Documentation: Tooltips for various WPF (and custom) controls is now available right within the product. In a future release, all properties will also have a brief documentation associated with them.
    • Color eye-dropper: This lets you sample colors from anywhere on the desktop.
    • Gradient eye-dropper: Ever saw a nice line gradient that took time to reproduce? We have a solution for you. This is one of my favorite subtle features. You can sample gradients from anywhere within Blend or outside it on the desktop.
    • Object Data source dialog: An improved data source dialog that lets you search for a type that you want to add as data source.
    • Simple style editing: Let’s admit it. WPF control can be difficult to edit primarily because of two reasons: they try to compliant with the standard Aero (on Windows Vista) and Luna (on Windows XP) counterparts, often a lot of their functionality is baked into code for performance reasons. To make it easy for our users, we now ship with a set of styles for all the standard controls that you might want to edit (check out the Asset tool -> Simple Styles) – these styles are not functionally complete but they provide a great starting point for customization. When you use a Simple Style, all we do is include an external resource dictionary will the style definition.
    • 3rd party control licensing – If you are 3rd party writing a WPF control, you can take advantage of licensing functionality baked into the tool. Users of you control will have to acquire a license from you before using your control.
    • Design time detection – You can now easily figure out when you control is running on the design surface (How? – a follow up blog post will explain). This lets you, among other things, populate data structures with data that is only available at run time (for example, at the click of a button) so you could design you application better.
    • Cut/Copy and Paste has been greatly improved: When you cut/copy and paste an element, we will copy all necessary resources that are required to preserve the integrity of the document.

If you reached here, you probably will have a lot of questions (in addition to positive and negative feedback!). Please feel free to ask and share your feedback…