Review: Visual Studio 2012 shines on Windows 8
Microsoft's everything-and-the-kitchen-sink IDE fuels Windows 8 and Windows RT development with smoothly integrated tools and an abundance of resources
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.