Date: April 11, 2012
Author(s): Mario Figueiredo
With the next version of Visual Studio soon to be upon us, we’re taking a look at what’s worth waiting for. While some animosity exists around certain decisions made by Microsoft, VS11 brings a lot to the table, most notably the addition of a robust environment for creating Metro-based apps.
The release of Microsoft’s Visual Studio 11 is right around the corner, and as the beta has been available for a while, we couldn’t avoid giving it a go. This is the de facto development tool for the Windows platform. While certainly not mandatory, it has nevertheless become pretty much the reference product for Windows development that all other products are compared to, for no other reason than Microsoft having Visual Studio as one of its greatest achievements. It’s in fact a superior product and for many the best IDE in existence on any platform.
It’s not however free of criticism. And for some inexplicable reason Microsoft made Visual Studio 11 one of the most controversial versions of all, if not the most. All for one reason and one reason alone; the Visual Studio 11 new user interface. Of all the things!
Microsoft has been taking a few risks lately. The decision to incorporate a Metro-style GUI in Windows 8 has so far been destitute of user consensus. It’s an even more aggressive move than the Windows Vista interface, which was only 4 years ago hailed by Microsoft as a great user interface that simplified Windows use.
What was probably not expected is that Microsoft would want to stretch the rope even further and do a complete makeover of Visual Studio 11 by giving it a Metro-style finish. The result was nothing but controversial among the developer community. Many like it, many dislike it. Both camps hardening their positions as we move forward towards launch day. Visual Studio 2010 also did a complete makeover of the UI, but it was largely successful, with developers being generally thankful of a more productive environment.
The first problem is that with every new version of Visual Studio, one seems to be expected to relearn how to use the program. This is wasted time and a potential problem for teams or companies which already work on tight release schedules. But there’s also significant changes to UI elements that can have an impact on how easily we can use the product or how effective it becomes in terms of productivity. An IDE isn’t a consumer-grade product that we can just do makeovers on as we please. It is a tool used in strict productivity contexts, and a tool used by professionals all over the world.
Visual Studio 11’s new UI has a Metro-style monochromatic look. It seems the reason is to bring out the color in the code window and application designers. This is a rather strange argument considering that it has never been a major issue with the developer community. Not even a minor issue to my knowledge.
The two most controversial changes are the monochromatic toolbars and the all-caps on toolbox titles. The first affects developers by making it harder for them to subconsciously identify and move the mouse cursor to the correct toolbox item. They all look very much alike, particularly on large resolution displays (a staple of most developer machines). The second is mostly an aesthetic issue, but one that also impacts readability. Microsoft has stated that both issues are under revision.
Microsoft did however make great improvements to the user interface on matters of productivity. It has been paying close attention to Visual Studio add-ins being developed for previous versions and it incorporated features of the widely used ones. Two of the most notable are the Quick Launch search box that gives the ability to search, locate and run any Visual Studio feature from a search box in the IDE, and also a significant increase in options on the several toolbox toolbars.
The new UI has had a great impact on me. The whole feel of Visual Studio moved from rich and easily identifiable visuals into a drab and worrisome experience. Visual Studio 11 just doesn’t feel right to me. It’s an all-gray, flat, tiring and depressing application I’m supposed to be looking at for hours on end — more than any other application in my history of Windows usage.
It’s still early to know exactly which Visual Studio 11 editions will be launched. Currently, Microsoft only lists the product family for the beta version, which includes two express editions; Express for Windows 8, which only allows for Metro development, and Express for Web. Other than the Express editions, we have Visual Studio 11 Professional, Premium, Ultimate and Test Professional editions. It’s to be expected that there will be more Express editions on launch day, or soon after.
Some changes were made to the feature set of the Express editions, and that’s very good news for anyone using those. For one, unit testing is now a part of the feature set. Microsoft also includes support for 3rd-party UT frameworks in Visual Studio 11 but only makes it available on the Professional edition and onwards. Express editions will have to use the Microsoft Unit Testing Framework classes and members in the Microsoft.VisualStudio.TestTools.UnitTesting namespace, which isn’t really a bad thing. It’s just that any fan of xUnit or other frameworks will have to go with the Professional edition.
Version Control was also integrated into the Express Editions, as well as a subset of the Static Code Analysis platform (fxCop, which allows developers to pass Windows Store evaluation) and code profiling tools (CPU Sampling for VB, C# and C++ Metro apps and Instrumentation for HTML/J’S Metro Apps). It’s to be assumed similar feature sets will be included on Visual Basic, C# and C++ Visual Studio Express editions.
Microsoft Visual Studio is a large application and it’s hard to describe new features in detail, or even list every one of them with every new version. Not only does it incorporate programming language specific features, but it also changes or adds new development platforms or technologies. What I will be doing instead is list some of the most important ones in no particular order, and only for the programming languages I feel comfortable with.
With the introduction of C++ AMP last year and the promised inclusion on the next version of Visual Studio (that would be Visual Studio 11) fulfilled, developers are given a tool for the offloading of computing intensive code blocks to the GPU or other CPU accelerators (we recently discussed on Techgage one such type of accelerator) that doesn’t involve having to use other C++ compilers. C++ AMP stands for C++ Accelerated Massive Parallelism, and is composed of an extension to the C++ programming language and a minimal STL-like Library.
Other than full C++ compiler support for C++ AMP, Visual Studio 11 also includes two important windows for the debugging of C++ AMP-based applications. The Parallel Threads window displays all details of the individual threads running on the accelerator, and the Parallel Watch window acts as a normal Watch window, but with the ability to display values across all threads. Both windows include a feature-rich set of debugging tools, including the ability to freeze or thaw individual threads and the ability to flag threads across different processes.
Visual Studio has addressed some of the concerns on C++11 adoption. It includes now a number of new headers and language features that are expected on C++11 development. It also unexpectedly includes support for SCARY iterators, a rejected proposal for this new C++ standard. There’s still a long way to go and I’d personally prefer if Microsoft stuck to increase support for the new standard instead of providing new language extensions. Still missing are such language features as non-static data member initializers, variadic templates, initializer lists or delegating constructors.
Of note to C++ development also the fact the compiler can now automatically recognize loops that can be vectorized and will reorganized them as vector loops that allow modern CPUs to execute them several iterations at a time (in a similar, but not quite, fashion to parallelization). This can mean an increase of up to 8 times in the performance of many typical loops. Similarly, the compiler now includes Auto-Parallelization, which allows developers to flag certain loops to be run on more than one core through a simple pragma directive and without any need to write special code. Vector loops are good candidates.
For C# developers certainly the biggest news is the introduction of the async and await keywords. They provide developers the ability to write asynchronous code without having to write continuations and without having to split asynchronous code across multiple methods or lambda expressions. Showcased last year, it is now an official part of the .Net 4.5 specification.
One last note goes to data-based development. Visual Studio 11 for the first time breaks dependency of SQL Server Express for local database development. The new SQL Server Express LocalDB engine is now an integral part of Visual Studio and no longer requires it to use the SQL Server Express engine. This gives developers a zero-configuration database engine capable of opening .mdf database files.
Visual Studio will however require the use of SQL Server 2012 Release Candidate 0 .mdf files format. It can recognize previous versions and will do the upgrade if the user accepts it. This new .mdf format isn’t backwards compatible with previous versions of SQL Server or SQL Server Express. If the user chooses not to upgrade the .mdf file, Visual Studio will instead use the SQL Server Express engine.
Microsoft’s Visual Studio isn’t just an IDE. It may seem pretentious to say so, but what this means is that it’s in fact the official development tool for the several Microsoft platforms. So it comes naturally that Visual Studio 11, now in beta, includes support for the Windows Runtime engine (WinRT), which powers Metro, the new user interface in Windows 8 and Windows Phone operating systems.
Project types in Visual Studio 11 keep targeting an ever-increasing number of platforms. ASP.Net for Web development, Windows development, Office Add-Ins, Silverlight, Azure, Sharepoint, and many more.
New in Visual Studio 11, other than Metro development that we will be discussing below, is support for the LightSwitch development toolkit. Before a standalone tool and now integrated into Visual Studio 11, LightSwitch is a development platform for the creation of local or 3-tier line-of-business applications in a quick and easy way. It makes extensive use of graphical designers to model entities and relationships following the norms established by Microsoft’s .NET Entity Framework object-relational mapping.
LightSwitch is an ambitious project, one that many developers wished would come to fruition. It currently lacks clarity, is too complex and doesn’t address performance concerns very well. Its greatest limitation is that it only supports Silverlight client applications, which is rather perplexing. Its adoption has been very limited so far, but with the inclusion in Visual Studio 11, there’s the real possibility Microsoft will improve and extend it in the future.
Metro development is the new kid on the block. Metro-style apps user interfaces can be designed in XAML or in HTML/CSS. Visual Studio 11 includes a two-way WYSIWYG editor so you can switch seamlessly between code editing and the visual designer when using the XAML declarative language. It still lacks however a similar feature for HTML/CSS Metro apps. Thankfully, for those still struggling with XAML, or not wanting for some reason to use it, Visual Studio 11 now includes Expression Blend as a companion tool. It has visual designers for both XAML and HTML/CSS and can replace entirely Visual Studio UI integrated tools during the UI design phase.
Metro application debugging is a little more involving. The very nature of the platform makes it so. Developers can opt for the traditional local or remote debugging, but if using the former, they are required to have a second monitor where the application can run. Also offered is a Metro Simulator, which is the preferred option if there’s only one display. What the simulator does in fact is initiate a remote debugging session on the developer’s own machine. It is thus possible to run a Metro application in a window and debug it that way.
Visual Studio 11 also integrates Windows Store in the Metro development process, allowing developers to upload their finished apps directly to the store, to maintain them and to rapidly and conveniently issue patches or new versions.
If we think that Metro is new to Windows 8, it is rather impressive the level of support offered in Visual Studio 11. On the other hand, Visual Studio is critical to the success of the platform on future Windows desktop operation systems. Poor support from this flagship development product would spell the end of Metro right in Windows 8. By offering developers a rich set of tools, Microsoft can at least scratch that as the reason for any possible failure.
It’s a reality that Visual Studio can’t be covered in one article. Not even when addressing just the changes that come with every new version. At best it can be summed up and some highlights produced. From what little is written here, however, it is clear Visual Studio 11 is a big contribution to software developers around the world targeting Windows platforms.
An already great product is turning out even better. There’s however great concerns over exactly what Microsoft will be doing with it in the future. The current UI is a major issue among the community and probably go away anytime soon. How I can possibly adapt to this depressing monochrome and flat interface that doesn’t make me comfortable playing around with for more than a few minutes is a big concern for me at this time. This is my professional tool. It’s not even an hobby.
Another concern for many folks is the current lack of any reference to other Express editions. It has to be expected that at least C++, C# and Visual Basic Express editions will be launched. The thought of Express editions becoming just for Metro and Web development is too bad to be true. But the fact is, they aren’t listed anywhere so far; a situation I don’t remember occurring during Visual Studio 2010 beta cycle.
Have a comment you wish to make on this article? Recommendations? Criticism? Feel free to head over to our related thread and put your words to our virtual paper! There is no requirement to register in order to respond to these threads, but it sure doesn’t hurt!
Copyright © 2005-2019 Techgage Networks Inc. - All Rights Reserved.