I earlier complained, like many others have, about Microsoft UI style changes in Visual Studio 2012. Let’s forget the looks and see what really is there for a programmer.
What I really want to take a look at, is Visual Studio Express 2012 for Windows Desktop. Visual Studio Express 2012 is Microsoft’s free offering and comes in no less that five flavors. While Visual Studio Professional offers development options for all platforms: Web, Windows 8, Windows Desktop etc., the free versions only support one platform. Since my focus currently is in traditional Windows programming, it is the Visual Studio Express 2012 for Windows Desktop that I will take a look at.
First of all, it is quite impressive that Microsoft offers such a complete tool for free, even for commercial use. But what if you really want to use VS Express for real Windows Desktop product development, there must be a catch, right? I mean, in previous versions of Visual Studio Express, there has always been something important missing, so you would have to opt for the Pro version anyway.
With Visual Studio Express 2012 for Windows Desktop this is also true, but it depends on what you are doing. One of the biggest things missing is support for MFC class library. Sure, MFC is old stuff and you probably should not start new projects with it, but the world is full of MFC applications that need support. I don’t believe MFC will completely die away anytime soon.
One other thing that almost made me abandon the Express version was, that it does not seem to be able to create WPF user control libraries: there is no option to create this type of project. But there is a workaround. Namely, you can create the project manually and VS Express is able to compile it perfectly. Also, if you create the WPF user control project using Visual Studio 2012 Professional, you can add it as part of VS Express solution and continue the development with free tools. This is why it seems that leaving out the option to create WPF user control libraries is an artificial trick to lead more people to buy the Pro.
Below you can see the C# project creation options for VS Express and VS Pro. Click to enlarge the image.
Well then, if we do not have MFC, how to build user interfaces for programs that are written in native C? Companies developing embedded applications use a lot of pure C and they very often want to run part of that code under Windows too. There exists a huge amount of portable C-code and more is written every day and we need to reuse this code. VS Express lets you write programs and libraries with native C, but how to interface with such libraries other that from command line? We do not want to write GUI with WIN32 API either, that is for sure.
This should not be a problem: It is easy to integrate native code with .NET CLR. I plan to take a more detailed look at how you can integrate .NET assemblies with native C-code in some later articles, so stay tuned.
Do you need Pro version or is Express good enough? I depends on what you are doing. It you need MFC you must buy the Pro, or if you are going to use some of the more advanced features, program for Microsoft Servers, want to use the team features, you may need one of the more complete Visual Studio Editions.
But if you just need to build standalone Windows Desktop applications, then the free Visual Studio Express 2012 for Windows Desktop may be worth a serious look.
And what about the UI and the new looks, does it really bother me? No, I don’t really see that as a problem any more. Human is a machine who learns to love familiar things and loves to hate new things. Until they become familiar again.
This is by no means a complete review of Visual Studio Express differences vs Visual Studio Pro, just some thoughts based on a real project I am working on. If you wish to contact the author, please do not hesitate to comment this post or send email.