This is the first in a series of posts on the new features included in BizTalk Server 2010 Beta. Without a doubt the enhanced mapper is one of the biggest developer productivity updates from a usability perspective in the past few releases of BizTalk Server.
There is quite an extensive list of updates to the mapper and its functionality and this is easy notice the difference as soon as you open it in Visual Studio 2010. Note that most if not all the changes are to improve usability but the XLST created in the background and the list of functoids remains the same as far as I can tell.
There are too many improvements to demonstrate in one blog post, and there’s no point in trying to list them by importance as it is pretty subjective. In this post I will show some of the new features.
Many of these improvements are based on a couple of studies performed by the Microsoft Research team together with Eddie Churchill dating back to 2004/2005. The study involved enhancing the mapper to reduce the cost, complexity and labor involved in creating large maps between large schemas. You can watch a video of the team demonstrating some of these features on the MSDN channel Code 9 here: BizTalk’s sexy new XLST mapper.
The first feature I like is the Mapper Utility Ribbon that now sits on top of the mapper, as you can see on the picture below:
It helps you to identify at any time the root reference of the source and the destination schemas by showing these values on top of the source and destination schemas. The other buttons expose some of the other new features of the mapper.
The first button to the right of the root reference of the source schema and the first button to the left of the root reference of the destination schema toggle a new feature called Relevance View, the first feature resulting from the research done by Microsoft in 2005. Relevance view will implicitly collapse any non-relevant parts of the schemas. Relevance is based on whether an element or any of its children has links and if the elements or links are selected. The same map on the previous image with relevance view enabled on both sides looks much cleaner:
The next button from the left toggles the Show Relevant Links function. When enabled it behave like previous versions of the mapper in where it will still show on the mapper if there are links on the page even though they don’t apply to the current view. To clean up the view you can disable this.
While Auto Scrolling of Elements in the Source or Destination Schemas is always there by default, the next button from the left toggles the Auto-scrolling of Functoids function. This is another item inherited from the research by Eddie Churchill et. al. When the user selects a functoid or link this feature will bring all relevant links and functoids into view. For example, with the Auto-scrolling of Functoids disabled I selected the link in blue below:
As you can see it will highlight that there are links and schema elements associated with the selected link, but not bring the missing functoids into view. When I enable the feature it will auto scroll to show all the relevant functoids:
Also as a separate feature note how links out of scope show as a dotted line. Note that at least for now Auto-scrolling of Functoids won’t automatically move functoids for you. Functoids that are so far apart from each other that their distance is longer than the mapper window size will still not show in the same view.
As part of the previous two images you can already see the Optimized Display of Links across the map surface and the Emphasizing the Selected Objects features, also resulting from the Microsoft research. Here’s an example from the old mapper:
When selecting the same element on the new mapper, you now have a much clearer view of the all the links, functoids and destination elements relevant to what you have selected, as well as graying out everything else on the surface:
Selecting a specific link or functoid will also yield the same effect. The link selected is highlighted in blue:
Selecting multiple elements will apply the feature to all selected items:
Two other features available from the ribbon are the Panning Mode for when you want to click and drag to pan around the mapper surface, and the Zoom grid which lets you zoom in and out at different levels.
The last feature from the ribbon is Search. A second or so after you stop typing into the search box the mapper will show and select the first results it can find, as well as give you up and down arrows to let you move to the next or previous result:
You can also choose where to search by clicking the Options menu next to the search box:
- Source Schema
- Destination Schema
- Map (searches on items on the map surface)
A neat feature is the status bar at the bottom of Visual Studio 2010 will give you the totals of the results found:
The next nice feature is Suggestive Match, yet another feature from Microsoft Research and Eddie Churchill. This feature was implemented to help the user identify good candidates for mapping based on an algorithm that also includes lexical matching using the English language. By selecting an element, either on the source schema or the destination schema, and clicking Ctrl + M, Ctrl + U you will see all the possible matches with the best ranked match already selected (the hotkey used to be just the Shift key on previous versions of the Beta so this might change back eventually):
You can then click enter to accept the best match or click up and down arrow to select other links. You can also right click on the element and select “Indicate Matches” on the pop up menu, and then select the link you are interested in by selecting it with a right click.
No new functoids have been released, but a lot of improvements have been made to help developers with the functoids, starting by functoids showing a tooltip when you hover over them. The functoid configuration has also been redeveloped; compare the same logical Equal functoid on previous versions to the BizTalk 2010 Beta version:
You can also now rezise the functoid configuration page, a feature very useful for the scripting functoid. You can also now import the script from a file (but not save it to a file…):
Another nice feature worth mentioning is that as part of Visual Studio 2010 you can now pop the mapper window out of the main Visual Studio window and move it around to other monitors.
Those are some of the features in the new mapper. There are quite a few more that I haven’t mentioned above that will improve developer productivity, for example:
- Support for Cut, Copy, and Paste
- Support for moving functoids and links between pages
- Context menu when linking between records to assist with auto linking
- Identifying functoid configuration issues
- Support for selecting multiple links and functoids
- Support for labeling and commenting
- Displaying the relevant information through Infotips and Tooltips
- Remembering the last view when reopening a map
- Viewing input parameters in the properties window
- Copy XPath option when right clicking on an element
Enjoy the new mapper, and let me know what you think and if you find any issues by adding comments to this post.