New and improved Engineering Workflow Management for Visual Studio
IBM® Engineering Workflow Management (formerly known as IBM Rational® Team Concert) introduced support for Microsoft® Visual Studio 2019 in the 6.0.6.1 release. In the 7.0 release, we enhanced the experience further with improved performance and newer extensibility features, not specific to Visual Studio 2019, but all supported Visual Studio versions. The first part of this article talks about the rationale behind supporting Visual Studio 2019 in phases and provides tips to work with Visual Studio 2019 until you upgrade to the 7.0 release.
While we could have updated just the load behavior of our extensions based on Microsoft’s recommendation, we took this opportunity to evolve with the latest changes in Visual Studio extensibility. Engineering Workflow Management (EWM) extensions now load asynchronously in the background, and though the Source Control extension is exempt from such a restriction, we improved its startup and running performance significantly. The constraint to upgrade to the Visual Studio 2015 SDK meant we could implement newer extension points, like the Pending Changes filter in Solution Explorer or the Publish compartment on the status bar of Visual Studio.
Asynchronous background loading
Starting 7.0 release, EWM extensions load asynchronously in the background resulting in faster startup and solution load times for Visual Studio. Visual Studio 2015 added support for asynchronous loading and the same was mandated in Visual Studio 2019. Of course, from a technical perspective, this had us redesign our extensions, including breaking assumptions around their availability and inter dependency during Visual Studio startup, followed by a thorough testing on all supported versions. It also meant we had to drop support for Visual Studio 2012 and 2013 since they only allowed synchronous loading. For those versions, since client N-1 compatibility is supported, you can always connect to an upgraded server from an older client.
Better startup performance
While we switched to asynchronous load for the other extensions, our Source Control extension is exempt from the asynchronous auto-load restrictions, since it’s required to be loaded before a solution is opened. However, we analyzed and eliminated its impact on Visual Studio’s startup in accordance to Microsoft’s startup and solution load performance guidelines.
Improved UI Responsiveness
Although we fixed the startup performance, we found certain Source Control actions to be causing UI unresponsiveness while self-hosting on Visual Studio 2019. We tried to identify as many trigger scenarios and address them by following Microsoft’s guidelines for diagnosing UI delays. We understand that it is not possible that we discovered all of them, and the effort will continue in future product releases. In 7.0, if you see a UI delay notification in Visual Studio involving any of the EWM extensions, report the scenario here.
Enhanced source control integration
With every new release of Visual Studio, we identify potential new ways of extending its features which we can adopt when this version becomes our minimum supported version. Now that we upgraded to the Visual Studio 2015 SDK, we prioritized these features from our backlog.
Pending Changes filter in Solution Explorer
The Solution Explorer shows different glyphs to identify the source control status of files, and the Pending Changes view is where you see all the modified files. Visual Studio introduced filters in the Solution Explorer, one of which was the Pending Changes Filter. With it, you can now filter the Solution Explorer to show only unresolved and outgoing changes belonging to the solution that is shared in Jazz Source Control.
Add to Source Control from status bar
Visual Studio 2015 Update 2 added the new Publish button (Add to Source Control in later Visual Studio versions) on the status bar that provides a quick and easy way to get solutions into source control. This received a mixed reaction from the Visual Studio community, to the extent that some users even found ways to hide the button. But, the button does draw attention towards it as soon as you create a new solution. New users of the EWM client for Microsoft Visual Studio expected the option to share a solution with Jazz Source Control from the status bar. This is in addition to sharing a solution from the Solution Explorer menu, the toolbar, or the main menu of Visual Studio. The Jazz Source Control option is available regardless of whether it is set as the current source control provider in Visual Studio.
To ensure the right user experience, we have raised some concerns with Microsoft based on what we saw as gaps in the publish workflow that didn’t have reasonable workarounds. If you agree, feel free to “up vote” our issues on the Microsoft portal. Here are the links for your reference:
- Icon for my source control provider listed in the Publish/Add to Source Control menu on status bar?
- Is there an event similar to IVsSccSolution.AddedToSourceControl for remove from source control?
- IVsSccSolution.AddedToSourceControl event does not update status bar for publish workflow
- Do not show the Publish/Add to Source Control status bar button for virtual solutions
- Publish/Add To Source Control from status bar does not trigger a source control provider switch
Summary
This concludes the second part of the two-part article aimed at familiarizing users with our support strategy in general, and the recent advancements, particularly in the Engineering Workflow Management client for Visual Studio. These are in addition to the new features that we continue to add in Visual Studio keeping parity with the Eclipse client, where applicable. Download IBM Engineering Workflow Management 7.0 to try out this integration. You can always ask questions in the forum and submit work items if you need to.
For more information
- New & Noteworthy for IBM Engineering Workflow Management 7.0
- 474620: Support Visual Studio 2019 – Phase 2
About the author
Priyadarshini Gorur is the technical lead on the IBM Engineering Workflow Management .NET clients team. She can be contacted at priya_gorur@in.ibm.com.
© Copyright IBM Corporation 2020