For a while now we’ve been talking about increasing our delivery cadence for Visual Studio. Jason first talked about it at DevConnections in the Spring and I wrote a blog post a couple of weeks ago outlining our general approach to cadence (focused on TFS). This week, at the launch of Visual Studio 2012, we gave a bit more insight into what we think the first VS 2012 update, later this Fall, will contain. I want to use this post to drill into that a bit more.
I can’t say enough how happy I am to be trying out some new cadences. We’ve done a number of things in the past (like Power Tools) to try to supplement our longer 2 year cadence but nothing quite as flexible as this. Our first update will include an update to VS 2012 and will contain a mix of new features, performance improvements, bug fixes, etc. It will also include an update to TFS 2012 which, for the most part, brings in all of the features that we’ve been introducing in our cloud service since we locked down TFS 2012.
We plan to deliver a series of “previews” over the next few months as we get closer to the release of the update. The first will be delivered later this month. I don’t yet know how you should think about the previews. In general, they are early builds, produced with minimal ceremony and overhead. Particularly, for the first couple, I wouldn’t plan on trying to install them in your production environment. I’d probably be inclined to stick to installing them on a VM and kicking the tires. That said, we WILL be installing them in our production environment – but it might be best for us to vet that a bit before you do. After the first couple, I expect we’ll have the process better ironed out and you can get a bit more aggressive with them.
I’m going to summarize the significant improvements in our first update. This is, by no means, an exhaustive list. For now I’m going to focus on things that I have a pretty high confidence will make it. There are a number of other things that I think will make it but I’ll save for later, once I’m pretty sure they’ll get in. And, of course, I’m not going to even try to document all the bug fixes, etc that will be included at this point.
So what’s going to be in it you ask?
Well, let’s start with the set of capabilities that Jason announced at Tech Ed earlier this year.
Sharepoint development
We’ve done a bunch of work to improve the overall lifecycle, particularly testing, for Sharepoint developers.
Load testing – We now support load testing for Sharepoint out of the box. This is more involved than you might imagine due to how dynamic Sharepoint is. You can’t just record a script and play it back – it won’t work because Sharepoint generates and expects dynamic data (like GUIDs). We’ve built the extensions to our load testing solution to parse the dynamic Sharepoint data and include it appropriately in subsequent requests. So now you can record a script and play it back and we will dynamically adjust it to match what Sharepoint expects.
Coded UI support – Our 2012 product was pretty close to supporting this but there were a few Sharepoint specific issues that we weren’t able to address that made CodedUI (functional testing) not work well for Sharepoint. In our first update, we will have addressed those issues.
Unit testing – One of the big problems with unit testing Sharepoint is that most code requires Sharepoint to be running and trying to run tests against a live Sharepoint instance is a pain. So we’ve built a Sharepoint “emulator” using our new VS 2012 Fakes & Stubs capability. This will make unit testing of Sharepoint components WAY easier.
Intellitrace collection plan – While this won’t be in the first CTP, we’re building a custom Intellitrace collection plan for Sharepoint that helps filter out a bunch of the Sharepoint “infrastructure noise” and lets you focus on events related to your components that are the likely cause of problems you are seeing.
DevOps Improvements
In addition to some of the Sharepoint testing support I listed above, there are some DevOps capabilities Jason talked about at DevConnections.
Customized Intellitrace collection plans – Collecting everything Intellitrace can collect can be overwhelming – both for the developer to consume and on the performance of an app in production. In our first update we’ll be adding capabilities for you to control the granularity and areas of collection enabling you to get just the information you need. We are also doing work to integrate Intellitrace with System Center to make diagnostic collection in production environments even easier.
Manual Testing Improvements
We’ve gotten a bunch of feedback over the past couple of years on our manual testing capabilities. We were so busy with Windows 8 support in VS 2012 that we didn’t get a ton of time to respond. Starting in our first update and continuing for the next few, we’ll be investing heavily in incorporating much of that feedback.
Code coverage for manual testing of web apps – Today we support collecting code coverage for automated tests but people would like to also be able to generate code coverage for manual tests and merge it with other results to get a comprehensive view of code coverage. In our first update, we’ll start down this path by adding support for collecting code coverage for manual testing of web apps.
Test Case management on the web – We’ve heard from a number of customers that in final acceptance testing, they don’t want to install anything on the test environment that’s not going to be in the production environment. That’s understandable. In our first update, we will be shipping a basic web based test case management and manual testing experience that will enable this scenario from a browser. This won’t be in the first CTP but should appear in the next.
Lab Management support for Win8 environments – We’ll be adding support for SCVMM 2012 SP1 which will enable Windows 2012 and Windows 8 lab management support.
VSUpdate – We were not able to get in support for an automated update mechanism for Test Professional in our 2012 release. In our first update, we will add support for VSUpdate and you will receive update notifications in Test Manager the same way developers get them in Visual Studio. So you’ll need to discover and download this first update through more traditional means, but having done that, we’ll make it much easier to stay up to date.
Project Management Improvements
Kanban support – You may have seen the new kanban feature we introduced on our cloud service recently. In our first update, we’ll be bringing that and some additional improvements. This will give you an even broader set of choices for managing your project. You can use our Scrum based Agile Project Management tools, Kanban or Project and Project Server – or a combination of them.
Usability improvements – Every sprint, on the hosted service, we announce a set of small improvements – like drag & drop assignment of tasks, counts on links & attachments tabs, etc. They are each a small thing but together they add up to increased usability and productivity. Our first update will include plethora of these kinds of improvements.
Developer Productivity
We’ve got a few very nice features coming to improve developer productivity.
Unit testing grouping & filtering – We’ll be adding support to the Test Explorer for grouping and filtering unit tests. This will make it easier for you to organize your tests to find them easily and run the right set of tests at the right time.
Code Map – Code Map is a super cool new feature in the architecture tools that allows me to incrementally build up an architecture/dependency diagram as I explore code. It makes walking into an existing code base and exploring it WAY easier than it ever has been before. You can incrementally lay out a diagram one element at a time (class, method, etc) as you explore the code. You can “query” to expand the diagram – like adding all derived classes or all referencing methods, etc to incrementally understand the code dependencies.
260 character path limit – While I don’t want to get your expectations too high here I’m super happy we can make some improvements. One of the top votes on UserVoice is eliminating the 260 character path limit. We can’t completely do that at this time but we can make some progress. In the first update, we will be increasing the limit on “server paths” from 260 characters to 400 characters. This means that you have more room in your version control paths for project names, branches, etc. without compromising your ability to use the full 260 characters for your solution. I know some of you are asking – why only 400? Why not just make it unlimited. I’d love to. This incremental improvement is driven by the limit on the size of an index in SQLServer (which is about 1,000 bytes). 400 * 2 (to account for Unicode) = 800 leaving only about 200 bytes for anything else we need to put in the index. We will keep a work item on our backlog to remove the 260 character client limit and to consider extending the server limit beyond 400 but I’m very happy to be able to bring some relief in this area. This feature will not show up in CTP 1 but should be in the next.
Windows store app improvements
We’ve got a number of improvements coming for Windows 8 store app development but for now I’m just going to talk about one.
Mixed managed/native debugging – Starting in the first update, you’ll be able to finally do mixed managed and native debugging for Windows store apps. This will make developing apps that use both native and managed components tremendously easier!
Conclusion
As I said, this is not an exhaustive list but it’s quite a lot of new things – particularly to be talking about on the day that we are launching VS 2012. We are committed to continuing to deliver continuous value to our customers so expect great things from the Visual Studio Update train. One important point that I must mention is that not all of these features will be available to every VS customer. I’m not going to try to document the full product breakdown here but it should generally be fairly intuitive – for instance, you only get Code Map if you have Ultimate because it’s an extension to the architecture tools that are in Ultimate. The same holds true for Sharepoint load testing and the Sharepoint unit testing emulator – both rely on features (load testing and Fakes & stubs) that are only available in Ultimate. Other features (like Unit test grouping & filtering or Windows store app managed/native debugging) will be available to all VS users. As we get closer to the release of the Update we can produce a matrix to show which features are available at each product level.
Thanks for reading and I’m super excited to share more as we get closer.
Brian