Microsoft Visual Studio to end dev and ops 'ping pong'
The code clone war
While Microsoft recently previewed many of the new features in the next planned Visual Studio, these have, unfortunately, excluded the HTML and Windows 8 tools that are likely to appear in the final version. Even so, there is plenty to chew on, especially for users of Microsoft's Application Lifecycle Management (ALM) tools, built around Team Foundation Server (TFS).
That said, the most intriguing new feature is not just for ALM. Code clone detection is meant to discover code that was added by the time-honored but discredited means of copy and paste. Developers who succumb usually change a few things, so looking for exactly the same text is not enough.
"It's actually much more complicated than that," says Visual Studio vice president Jason Zander. "It actually does full analysis, a fuzzy analysis too. An editor just compares lines of text. This one does a semantic comparison."
The idea is that you refactor the code so it exists in only one place, avoiding the risk of fixing a bug in one place but not another. Implementing that is down to the developer, though. "It gives me the core intrinsic data that I need. It doesn't go to the next step, which is, and let me go do it," says Zander.
Next up, Visual Studio is getting a new unit test runner that performs background tests, for continuous analysis. Unit testing is now an extensibility point, so that alternative tools like the open source Nunit can be used.
Context switching, also known as "My Work", is a productivity feature that packages the state of your workspace, complete will all open windows, and links it to a task. You can switch to some other work, then come back to the task and carry on where you left off.
Microsoft is having another go at linking development with operations. Some will recall "Design for operations" introduced in Visual Studio 2005, but dropped in the next version. This time, Microsoft is extending its IntelliTrace debugging agents to deployed applications, integrating Visual Studio and the System Center server management tools via TFS. Errors are reported in System Center and administrators can forward these to TFS complete with a stack trace. Developers should get faster and more detailed information about errors in production code.
"I've always wanted operations in there," says Zander. "There's been a world in which we tend to, as developers, toss stuff over the wall. We have dev and ops ping pong, like 'Give me a repro'. That's just frustrating for both parties."
ALM performance is also a focus of the new version. Team Explorer, the piece within Visual Studio that is the TFS client, has been re-engineered to use asynchronous communication that is claimed to deliver "vastly accelerated load times."
TFS is feature-rich but tricky to install, thanks to dependencies on other server applications including SharePoint. Microsoft is to offer a hosted option with Windows Azure, removing installation hassles and simplifying access for distributed teams.
There has been a trend towards distributed version control systems like Git and Mercurial. Is that influencing Visual Studio? "They're looking for richer offline support, as one of the core things that you get out of that approach," says Zander. "We've made some of those types of features better." But he says that centralised analysis and reporting makes sense, rather than attempting to query multiple repositories. "Our theory is that when you get all together in one spot it just works better."
Limbering up to be agile
You can also see the influence of agile methodology in Visual Studio. There are new planning tools for Scrum, a popular development process which breaks work down into short sprints of up to 30 days. One of the tools is a planning board in Team Web Access, which means access is not restricted to developers with Visual Studio.
It is an agile principle that the team is not just developers, but all stakeholders, and this is also surfaced through a new feedback mechanism. The stakeholder feedback tool lets a user try out a web application while both recording and commenting on actions. The feedback is then submitted to TFS where other team members can view it and respond.
In a further nod to agile, Microsoft's Visual Studio team has hired Erich Gamma, co-author of the influential 1994 book called Design Pattens: Elements of Reusable Object-Oriented Software.
Gamma was involved in the design of the Eclipse tools platform, and with Kent Beck developed the JUnit test framework. He will be working with a new Visual Studio development lab in Zurich. It is a prestigious hire, and if you put it alongside things like UML modelling, Agile methodology and support for test-driven development, it shows how much Microsoft has embraced development trends in the wider software industry.
More details about the next Visual Studio are expected to be shown at Microsoft's Build conference, in Anaheim, California, in September. ®