Follow Us

We use cookies to provide you with a better experience. If you continue to use this site, we'll assume you're happy with this. Alternatively, click here to find out how to manage these cookies

hide cookie message



Microsoft Visual Studio 2012 review

Article comments

Rafts and previews

While the ability to "dock" a specific window to a particular monitor has been available in earlier versions of the IDE, Visual Studio 2012 adds a new facility (and new nautical metaphor) called a "raft." A raft is a collection of multiple windows that can be treated as a single unit for the purpose of docking.

Another welcome usability feature is the preview tab, which opens a file in a new tabbed window whenever you select a file from the solution explorer (or if you happen to step into the file in the debugger). Previously, viewing a file's content required that you explicitly open it; now you simply select it to materialise a preview window. The preview is not an editor (its content is read-only), so you must take the extra step of actually opening the file to edit it. But the preview tab is a handy feature for large projects where you need to quickly search through source files.

IntelliSense includes support for JavaScript, an important addition now that JavaScript has become a first-class language used to build Windows 8 apps. IntelliSense understands JavaScript documentation ornamentation - which can specify function parameters, return values, and so on - and incorporates these elements into its internal database to assist in code completion whenever JavaScript functions are referenced in the editor. IntelliSense also provides JavaScript function signatures in code completion.

JavaScript is a first-class citizen in Visual Studio 2012. This AJAX solution shows the IDE's combined design and source views in the editor area, solution explorer to the right, and architecture explorer (class browser) at bottom.

Visual Studio 2012 has also improved the dependency graph feature. A dependency graph will show not only logical dependencies (such as a method's callers and callees), but also physical dependencies (what header files a specific C++ file required). Dependency graphs are useful for finding reference loops (a built-in analyzer helps locate such loops) and can identify code with no dependencies, which is probably a candidate for elimination.

In addition, the graphs are interactive. Click a node, and a pop-up materialises to display the details of the object highlighted: its category, the assembly it's in, its data type, and its namespace. Similarly, click an arc, and you're shown its category (reference or call) as well as the source and destination nodes. This latter feature is useful if you're exploring a large and complex dependency graph.

You can actually build dependency graphs incrementally, by creating a directed graph file and adding it to your project. Then, you simply drag objects (for example, source for class definitions) from either the solution explorer or the architecture explorer and drop them into the graph file's editor window. Visual Studio will parse the source code, index it, and incorporate it into the existing graph.

Working with Visual Studio 2012

When you install Visual Studio 2012, you're presented with numerous optional components. These include Blend for Visual Studio, MFC (Microsoft Foundation Classes) for C++, Office Developer Tools, SharePoint Developer Tools, Visual Studio LightSwitch, and Web Developer Tools.

In addition to tuning the environment to your particular sort of development (LightSwitch, SQL Server, Web development, or any of the .Net languages), you can also select the quantity of help documentation installed. A management console lets you pick which content will be recorded locally and which will be accessed from the Web. All help text is available online, and the IDE will access its online repository as needed, but fine-tuning the cached content can help if you know you're going to be working either offline or in an area with spotty connectivity.

The breadth of the development targets that Visual Studio 2012 now supports becomes apparent when you create a new project. The IDE presents more project templates than you can shake a stick at, in all of the supported languages -- which now include JavaScript. You can also select templates from Microsoft's online source; do that and the choices multiply even more. Also online are uncountable lists of code samples through which you can wander for hours.

I chose to build a Windows 8 application using HTML5 and JavaScript. To do this, I first had to acquire a Window's 8 Developer license - a bit disconcerting, as I had no desire to actually try to sell the application or even execute it anywhere other than my system. Happily, the license is free; unhappily, it's only good for 30 days, at which time you have to renew it - again, happily, for free. Had I wanted to make the application available on the Windows Store, I would have had to acquire a Windows Store license, which would not have been free.

The experience of building a Windows 8 application with HTML and JavaScript is reminiscent of creating a Web application, particularly in the way the project compartmentalizes the application's individual files. CSS files go in one folder, images in another folder, and JavaScript code in still another. A top-level folder is home to the HTML as well as the manifest file (which carries the application's name, description, splash screen, and so on) and security certificates file.

Of course, building a Windows 8 app is not precisely like building a Web application. You have to learn the event model -- as well as the events themselves -- imposed on Windows 8 applications. Microsoft has defined events that unify the handling of touch, mouse, and pointer input, so you don't have to concern yourself with whether a finger or a mouse triggered an event.

You also have to learn a Windows 8 application's lifecycle and how that is expressed in the JavaScript that executes the "business logic" of your application. Microsoft has defined JavaScript namespaces via whose methods and members you interact with the Windows API from JavaScript. The WinJS namespace, for example, includes objects that handle onscreen controls (like ListViews, DatePickers, and so on) as well as JavaScript promise asynchronous handler objects. The Windows namespace includes objects for dealing with an application's lifecycle (objects for handling search operations) and system operations (a class for controlling whether a device's display remains on during an inactive period).

Luckily, there are plenty of resources - everything from style sheets to libraries of controls - to draw on. Possibly the greatest hurdle that developers of Windows Store applications will face is simply wading through the mountains of choices to select from.

Big rock candy IDE

If you've used any of the previous versions of Visual Studio, you'll be right at home in Visual Studio 2012. You'll find plenty of documentation, guides, and tutorials online to help you navigate the new features. On the other hand, if you're new to Visual Studio, you'll quickly discover how vast it is. The only practical advice I can offer is to explore it one tributary at a time.

If you want a hint of just how big Visual Studio has become, consider its new Quick Launch capability. The idea behind Quick Launch: There's some operation in the IDE you want to perform, but you can't quite remember in which submenu or toolbar selection or pop-up window the control for that operation is hiding. Wouldn't it be nice if you could search the IDE, in the same way you, say, search for a variable's definition in your project's source?

That's exactly what Quick Launch lets you do. Enter a search string, and the IDE groups the results of your search. You can see matches in the most recent controls you've used, the documents you've opened, or menus or options you've selected. Click on one of the choices and - hopefully - you'll be taken to the spot in the IDE you're looking for.

As I warned at the beginning, Visual Studio 2012 is a big product. There's a whole lot more I didn't touch on: testing features, project lifecycle management, version control features, Visual Studio's integration with other Microsoft products, and so on.


More from Techworld

More relevant IT news


Send to a friend

Email this article to a friend or colleague:

PLEASE NOTE: Your name is used only to let the recipient know who sent the story, and in case of transmission error. Both your name and the recipient's name and address will not be used for any other purpose.

Techworld White Papers

Choose – and Choose Wisely – the Right MSP for Your SMB

End users need a technology partner that provides transparency, enables productivity, delivers...

Download Whitepaper

10 Effective Habits of Indispensable IT Departments

It’s no secret that responsibilities are growing while budgets continue to shrink. Download this...

Download Whitepaper

Gartner Magic Quadrant for Enterprise Information Archiving

Enterprise information archiving is contributing to organisational needs for e-discovery and...

Download Whitepaper

Advancing the state of virtualised backups

Dell Software’s vRanger is a veteran of the virtualisation specific backup market. It was the...

Download Whitepaper

Techworld UK - Technology - Business

Innovation, productivity, agility and profit

Watch this on demand webinar which explores IT innovation, managed print services and business agility.

Techworld Mobile Site

Access Techworld's content on the move

Get the latest news, product reviews and downloads on your mobile device with Techworld's mobile site.

Find out more...

From Wow to How : Making mobile and cloud work for you

On demand Biztech Briefing - Learn how to effectively deliver mobile work styles and cloud services together.

Watch now...

Site Map

* *