2013-11-13

Originally posted as Ten Reasons to Love Visual Studio 2013 on Where Technology Meets Teamwork - Thoughts on TFS, Lean, Agile, Kanban, Scrum and other collaborative technologies and techniques

It’s Visual Studio 2013 launch day! Wahoo… Is it just me, or are launch days a little odd in today’s continuous value delivery world? I’m mean, I’ve been using VS 2013 since the RC, we’ve already migrated quite a few customers to TFS 2013, and the artist formerly known as Team Foundation Service (more on that in a bit) drops new content every three weeks. But I guess when you want to throw a party in New York and Moscow, any excuse will do!

Below you’ll find my review of my ten favorite new features in Visual Studio 2013. Some of them are new as of launch, some of them have been around since the RC, and a few are improved old favorites. It’s been a busy year for the people at Microsoft, so I’d like to call out a few honorable mentions that didn’t make the list: Team Rooms, Release Management (formerly InRelease), the drastic improvements to building Windows apps and their integration with Azure, and Work Item Charts. Not to mention the drop of .NET 4.5.1, the C++ improvements (hello 1st class citizen finally), and expanded IntelliSense functionality with JavaScript. Yep, there’s a lot to love.

A final note before we get to it: when I refer to Visual Studio 2013 I’m talking about the entire Visual Studio suite of products, not just the IDE. If I’m talking specifically about the IDE I’ll try and call that out.

And without further ado, here’s my top 10!

10. Trace and design with Code Maps

If you’re familiar with the Architecture Tools from Visual Studio 2012, this will look familiar to you. Code Maps combines three pieces of functionality: the Architecture tools, find all references, and Architecture Diagrams to create a single easy to use way to navigate through your code, and to design how to extend that code with new functionality. You pick your starting point, for instance a method, and you can map either forwards (all methods that method calls), or backwards (all methods that reference the method). If you’re debugging or just exploring an unfamiliar piece of code, you’re done. But you can take Code Maps a step further by adding comments to the map itself, allowing you to design on top of a dynamically updated diagram of your actual code! Save it, share it and get back to work.



Want to know more? Check out an overview video here.

9. Information at your fingertips with Code Lens

The focus for improvements to the Visual Studio IDE this year seem to be focused mainly around helping you navigate your code more effectively. Code Lens is designed to give you quick access to information you need, without overloading you. You can see how many methods reference the item in question, who last edited it and how many changes they made to it. You can quickly (with either the mouse or hot-key) dive deeper: you can open up the full list of referencing methods and jump to one of them, or see the list of pertinent changesets and jump to one of those. Perfect for those, “Wait, what the heck happened here…” moments.



8. Improvements to the Visual Studio IDE experience

The improvements made to Team Explorer in Visual Studio 2012 represented a complete change of direction. The goal was to put the ALM features at the developer’s fingertips. As with any major UI redesign, a few things didn’t go so well (*cough* pending changes window *cough*). Team Explorer in VS 2013 is the refinement of that direction change. The interface is cleaner, more functional, more responsive and just, well, better.

The new Connected IDE experience was a great way to turn MSDN subscription verification into a feature. When you fire up Visual Studio you’ll be prompted to log in with your Microsoft ID, which will sync across your settings, themes, and macros. Awesome if you switch boxes like me quite often, or run a highly customized IDE.

Speaking of themes, it’s well known that the VS 2012 theme was quite universally hated. No, they didn’t get rid of the ALL CAPS menus (which I still hate, here’s how you can get rid of them), but they did add some color back in, give you more theme control out of the box, and add a lot of overall refinement to the UI. I believe it is a decent compromise between the old and the new. Probably not going to satisfy those of you who idolize the 2010 UI, but then again, nothing but a direct port would…

Want to know more? Check out our overview videos for the Connected IDE or the Enhanced Scrollbar.

7. Map the call stack

This isn’t really a new feature, just an ingenious combination of Code Maps and the debugger. While debugging you can create a Code Map of the entire call stack, which will be dynamically updated as you step through your break points. Add comments to the map while you work to index into the call stack at key points. Save and share them. Makes keeping track of where you are in a complex stack if not easy, at least easier.

 

6. Stop the leaks with the .NET Memory Dump Analyzer

Figuring out you have a memory leak is usually painful. Finding what is causing the leak is not any fun either. And then you get to figure out where in your code the object should have been released… Oh joy.

Export a .dmp file. Put the application through its paces. Export a second .dmp file. Compare the two and drill into the methods with memory usage differences. It won’t solve all your problems but it will help you down the path.

Want to know more? Check out an in depth two part series.

5. Agile Portfolio Management: complexity simplified

As someone who is pretty much against everything that MS Project stands for, any viable alternative to managing complex cross-team dependencies that doesn’t refer to me as a resource and strangle me with a Gantt chart is a wonderful thing. The fact that Microsoft went with a simple-yet-powerful implementation involving multiple levels of flow is downright amazing. As long as you keep in mind that work items are intended to flow and you keep your themes somewhere else hierarchical work items, aka “Agile Portfolio Management,” can help shine light into the darkness.

Want to know more? Check out our Agile Portfolio Management overview video.

4. Quit jumping around, use Peek Definition

When inserting code into an existing method or class, I usually end up with 15 different windows open courtesy of the “Go to Definition” function. Not only is this difficult to manage, it’s just plain annoying to bounce around from window to window. Now with Peek Definition you can open up those definitions in a nice sub-window without losing the context of the code you’re working on (and without spending 15 minutes tiling all those windows…). You can drill down as many layers as you like, navigate back and forth through the layers, edit the code and do pretty much everything you’d want to do without bouncing to a new window. Kind of makes me question how I got along without it actually…

 

3. It’s finally here: Visual Studio Online

They kept telling us they were eventually going to start charging for Team Foundation Service, and that time is now. If you’ve been on the service you’re going to get 90 more days of unrestricted access, after which you’ll have to navigate the rather overly complicated (it’s still MS after all) licensing scheme.

Microsoft making a move to monetize something you’ve been using for free isn’t exactly a reason to celebrate, but it does highlight one important fact. They’re committed to making this a viable, ALM platform for teams of all sizes (part of the reason for the complicated licensing scheme). Going forward I’m going to be recommending teams look at VSOnline first, and an on-premises TFS second. The cloud is the way of the future, and VSOnline is the future of Microsoft ALM.

Want to know more? Head over to www.visualstudio.com and get started.

Tie-1. Prepare to be blown away by Application Insights

It’s pretty rare that I see a product for the first time and go, “Wow, this is a game changer.” Application Insights (AI) wasn’t really any different. The first time I saw it I went, “So what? It’s Google Analytics.”

I really couldn’t have been more wrong.

AI is capable of collecting massive amounts of telemetry data for any connected application. The definition of application here being key: they’re talking about collecting data across all levels of your stack, from you Windows 8 app, to your Azure server to your on premises SQL Server to your desktop application to your… you get the idea. It’s pretty amazing, easy to use, and has an awesome UI. Toss in that it’s on the same three week delivery cadence as Visual Studio Online and well…

For me though, none of that is what makes AI truly game changing. I’ll freely admit, at heart I’m an ALM junkie and not a developer. I take things like “cross-functional teams” very, very seriously. As such, I’ve never liked System Center. It just smells like the old, siloed operations/IT department. It isn’t written for development teams, and it feels like it through and through. Not a slight against System Center, it’s just built for a different paradigm. AI though, it feels like a development team tool. It feels like the tool that will drive conversations of uptime, accessibility, performance and usage earlier into the development cycle. It feels like the tool teams need to become truly autonomous and embrace hypothesis driven development. Application Insights has the potential to change the way teams deliver value to their customers. I’m keeping my fingers crossed that they license this in an intelligent manner…

     

Want to know more? Check out the overview from Microsoft.

Tie-1. True Git

We talk to a lot of people that absolutely hate Team Foundation Server. When you drill down into why, it pretty much always boils down to one of two things: Microsoft Test Manager or Team Foundation Version Control. Well, we can scratch one* of those reasons off the list.

And don’t worry, they didn’t do anything crazy like create Microsoft Git. This is just Git hosted in your TFS (or Visual Studio Online). You can work with your 3rd party repo if you must (although with limited functionality)

Flexibility of Git + power of ALM through the Visual Studio stack. Enough said.

Want to know more? For a quick overview check out our Git+TFS overview video, or for the full treatment this Git to TFVC comparison from Channel 9. Brian Harry also has a great article on enterprise grade Git.

*And maybe a half of the other reason; most MTM detractors have only tried the 2010 version. If you fall into this category I’d suggest giving it another go, while it still isn’t perfect and has probably one of the most bizarre UIs of any MS product I’ve ever used (reminiscent of Windows ME…), it is fairly functional.

Northwest Cadence can help you implement a modern application life-cycle. Call rick.flath@nwcadence.com today to help you get there more easily...

Show more