Tuesday, October 29, 2013

First impressions of Visual Studio 2012 by an IntelliJ user

I'm back with Visual Studio which I haven't used since before the first version of .Net. I've been told VS12 is a great IDE, better than Xcode, Eclipse and even IntelliJ. These are my first impressions of "vanilla" Visual Studio, i.e. before installing ReSharper. Let's start with the good stuff. 

Note to self: Need to update this to VS13 now that I've installed it.

Nice features of VS12

  • VS builds on Visual Basic's ground breaking GUI builder. Delphi also had a great GUI builder (at least back in the days when I used it). Add a button, double-click, write code. This is something to dream about in Xcode.
  • The built-in webserver makes it easy to get going with MVC development. (In Java one would typically install Tomcat and then set it up within IntelliJ as an application server).
  • Page Inspector is an enhanced browser whose Inspect function will take you directly to the code that created the inspected part of the page.
And that's it. I'm done with the nice features. Now it's time for features that are...

Great Tools (photo by OZinOH)

Missing in VS12

  • There is no keyboard shortcut for Get Latest Version (Recursive). Unless of course you think pressing the following sequence of keys is an actual shortcut: Alt+V, P, Home, Menu, L.
  • And when you manage to get latest, there is no simple path to go the Changeset Details window. Viewing the latest changes is an important operation that should be part of Get Latest Version.
  • There is no keyboard shortcut for Compare with previous version. Also you cannot make one yourself since the api call is different for different windows, or even missing.
  • Call Hiearchy stops on interface methods. Hey, those get called too you know!  R# 
  • You can't create filterable todo categories. I will often use my own todo tag/token for stuff I need to implement, test or check later. I don't want to mix those todos with those of other team members.  R# 
  • Code Snippets are good, but where's the editor?  R# 
  • There is no Find Usages function. Yes, there is the Find Symbols (Shift+F12) but the result view has a bad layout showing the complete file path on every row. Also Find Symbols doesn't handle usages of the property name that exposes a member variable.  R# 
  • There is no syntax hightlighing for member variables.

Bad and/or Weird Stuff

  • The Options window contains hundreds of options but it isn't resizable! It stays small, showing only a few options at a time.  VS13 
  • You can't edit code without stopping execution (Break All). That would seem like logical restriction, but what about adding a comment - not possible! Also, Break All will navigate away from the source file where you wanted to make the edit, and take you the place where execution is taking place. Annoying.
  • Many common operations have double-stroke keyboard shortcuts, e.g. Show the solution explorer, Format document, and Show quick info.
  • The Find in files result window is badly formatted. For example, it shows the entire JQuery source code if a match is found within it.
  • View Call Hierarchy shortcut (Ctrl+K, Ctrl+T) doesn't work at all.
  • What is source code doing in the project root folder? It is a really weird thing to mix source files and other project files. Bad design choice.

Conclusion

I can't live without ReSharper.

Archive