I’ve been taking the new Visual Studio Preview for a spin, and it’s got some pretty nice new additions. These aren’t just the headline features that have been publicized elsewhere, but the thoughtful additions to usability that will make our lives a little bit easier. They should also help us to make our code a lot cleaner and less complex. We see the introduction of easy performance reporting and differential comparison of profiling sessions. We also see the introduction of code metrics analysis. The March 2007 CTP also sees the long awaited intellisense support for LINQ in C# as well as some other nice features for exporting code and projects as templates.
The performance report comes with a single click. It helps you to target your optimizations.
After you’ve done your optimizations, you can rerun your profiler and do a comparison to see how well your efforts worked.
The code analysis tools now offer code complexity metrics that will indicate whether your code needs simplification or refactoring.
The refactoring tools have not received much attention, and still lag behind the likes of R#. There are a quite a few refactoring code snippets, that may allow us to craft our own refactorings. If so, then we have a power that has not been seen outside of UML tools like Rational XDE.
The tools for architects have come along way. It’s clear that they are targeting the aims of the Dynamic Systems Initiative (DSI). This is a very exciting piece of work, and will revolutionize development when it reaches fruition. Here you can see an Application diagram with a set of property pages allowing the architect to define the system properties required for deployment of a windows application called Test1.
The class diagram now allows you to directly enter your method definitions in the class details pane. Code is generated on the fly in the code window. I’m not sure if this is new, but I can’t recall seeing anything like this in 2005.
While you’re editing the properties of your methods, you can also directly edit the code commentary as well. Now there’s no excuse…
There is a new feature allowing you to search for web services defined in other projects, to insert them as web references in the current project. Great productivity feature for distributed applications.
The class view pane gets a new search box that allows you to search for classes fields and properties. This is really useful, and can save programmers hours of hunting on large projects. (provided they haven’t got R# of course)
Yes! LINQ intellisense. Nuff said.
Orcas also introduces a nice Export template feature that allows you to develop a project or group of classes for exporting as a new item template. This feature is a great way to allow architects to ease the development cycle. They can produce pieces of reference code and distribute them to the rest of their development team.
Just select the classes that you want to export.
Give an explanation of what they are intended to do.
And visual studio goes through them creating placeholders for class and namespace identifiers. These can then be filled in when the developer creates a new item.
there are still problems that need to be sorted out though. Like project properties…
These are a few of the things that I noticed immediately. I’m sure there are more to come. The documentation has not been overhawled much, and the LINQ section is still mostly empty pages. But my initial impression is that Orcas is going to be a delight to work with, for the whole team.