Visual Studio 2012

Metro No More

Don't call it "Metro" any more

As luck would have it, Microsoft is discontinuing the use of the term “Metro”, the name for the design language behind Windows Phone 7 and later, all of Windows 8. It’s a great shame, because it was an unusually pithy and catchy moniker to come from a company that thought that giving products unwieldy names like “Microsoft Server 2008 R2“, “Windows Phone 7 Series“,  and “Windows RT” (Windows 8 for ARM devices) was a good idea.

According to The Verge, they’re working on a replacement term and have asked Microsofties to use “Windows 8 style UI” in the meantime. I’m just worried that the replacement term will be something like “Windows 8 Natural User Interface” or some other multi-word combination that fails to roll off the tongue.

Links

Visual Studio 2012 and .NET 4.5 Have Hit their Final Build

Stick a fork in them: the final builds of Visual Studio 2012 and the .NET 4.5 framework are done! If you’re an MSDN subscriber, you’ll be able to download both on August 15, 2012. If you’re a subscriber with Visual Studio Professional, Premium, Test Professional or Ultimate, you can register for a free one-year developer account for Windows Store immediately as well. No date has yet been announced for Windows Phone developer accounts for Windows Store.

The August 15th date is a “soft launch” of sorts for Visual Studio. The “official” launch happens at a “virtual launch event” on September 12, from 9:30 a.m. to 12:30 p.m. Pacific Time (UTC-7). You can find out more on the Visual Studio 2012 launch site as on the blog of Jason Zander, Corporate Vice President for the Visual Studio Team.

The timing of these final builds coincides with the August 1st announcement that Windows 8 and Windows Server 2012 were released to manufacturing (RTM) and would become generally available on October 26. It was in keeping with their goal to release their developer tools “on the same cadence as our platforms”, according to S. “Soma” Somasegar, Microsoft’s Corporate Vice President of the Developer Division.

Links

Speeding Up the Toolbox Bottleneck in Visual Studio 2012

On the Visual Studio blog, they’ve been writing a series of articles about boosting the IDE’s performance. In the latest article in the series, Visual Studio program managers Duke Kamstra and Chuck England discussed how they increased the speed of many common operations in Visual Studio by optimizing its Toolbox. In many test cases, these improvements sped up these operations dramatically — sometimes by orders of magnitude.

The Visual Studio team has been using performance data from PerfWatson, an extension included in the Visual Studio 2012 beta release which monitors delays on Visual Studio’s UI thread and if the user consents, sends performance and diagnostic reports when the IDE becomes unresponsive. Many of these “performance traces” were generated by the Toolbox, so the team profiled a number of solutions from customers as well as test solutions that would typify the source of a large, complex project.

From the performance traces, the Visual Studio team found a number of scenarios in which the Toolbox was a complete boat anchor that dragged down performance, particularly with large solutions. In one case, they observed that when closing a large solution, the Toolbox blocked the Visual Studio UI for an unacceptable 30 seconds. Even 3 seconds would drive you mad after a while.

They identified the following operations as the ones that provided the best opportunities for optimization:

  • Loading a solution
  • Opening a designer
  • Changing the build configuration (from Debug to Release or vice versa)
  • Building a solution
  • Closing a solution

The team followed a couple of principles in improving Visual Studio’s performance:

Don’t do anything you don’t have to do. The Toolbox ensures that the components it contains are up to date and relevant to the designer currently being displayed. The team discovered that Visual Studio updated the Toolbox window even when it was closed. They also found that when designers updated the Toolbox contents, they did so by clearing and then refilling it with all the components instead of simply adding or removing the components as needed.

Freeing the UI Thread. The UI thread responds to messages from the operating system and the user. Any long-running tasks on the UI thread prevent Visual Studio from responding to user input or messages from the OS to update the screen, making the IDE less responsive. They found that in many cases, work for the Toolbox was being done in the UI thread instead of being performed asynchronously in a background thread.

Kamstra’s and England’s discussion closes with this chart showing the performance improvements that their Toolbox optimizations made when using Visual Studio with their set of benchmark WinFoms-, WebForms- and WPF/XAML-based solutions:

Scenario

WinForms

WebForms

WPF/XAML

Load Solution with Toolbox and Designer Open

80%

89%

81%

Load Solution with Toolbox Open

32%

18%

34%

Open Designer with Toolbox Open

66%

93%

35%

Change Build Configuration with Toolbox Open

92%

54%

44%

Rebuild with Toolbox Open

10%

3%

-3%

Incremental build with Toolbox Open

7%

37%

42%

Close Solution with Toolbox Open

28%

16%

26%

 

For the most part, the operations they set out to optimize now run significantly faster than in earlier versions of Visual Studio 2012.

Windows 8 Hackathons in Canada: I’ll See You at the Toronto One!

Microsoft Canada calls them “Windows 8 Hackathons”, but what they really are is free training for Windows 8 development. If you can spare a whole day off work (I can!) and want to learn how to build Metro — er, Windows 8 style UI — applications, you might want to check this out. Once again, they’re free — all you have to do is register.

The upcoming Hackathons will take place in:

  • Toronto: Friday, August 10 at the Ted Rogers School at Ryerson (I’ll be here — this event is waitlisted)
  • Ottawa: Friday, August 10 at Algonquin College
  • Montreal: Friday, August 17 at the BMO Amphitheatre at Concordia

Links

{ 0 comments }