Review: Visual Studio 2013 reaches beyond the IDE
Microsoft delivers editing, debugging, deployment, project architecture, and ALM improvements stretching from Windows to Web development, from mobile devices to clouds
The ability to add Python support to Visual Studio 2013 with a simple install from within the IDE is also nice. While the Python support doesn't seem to be as good as, say, the C# support, it works -- both for IronPython and CPython, although not JPython. Django is supported as well, and a Django project is one of the New Project options for Python.
My real Visual Studio workspaces (unlike the toy projects I used for screenshots in this article) tend to be enormous, multipronged extravaganzas set up so that I can build and edit everything I care about from one solution. With Visual Studio 2010, my morning routine was to log in, start Visual Studio, boil a quart of water, brew tea, let the tea steep, pour the tea, add honey, and return to my machine around the time all the projects became usable -- a multiminute delay despite the fact I had an automatic task set to update from source control and rebuild all my projects very early every morning. I would typically try to keep Visual Studio 2010 open all day rather than incur the startup overhead again, but sometimes my application bug would hose the IDE.
In Visual Studio 2012, asynchronous startup of the IDE improved the situation noticeably. In Visual Studio 2013 it's not going to be a problem if I forget to start the IDE before preparing the tea. As long as the tabs I opened the night before are the ones I now want, I should be up and running in less than a minute.
One ASP.Net project
Web development tooling has taken a giant leap forward in Visual Studio 2013. Visual Studio 2012 had seven different ASP.Net project types, and if you started with what turned out to be the wrong one you were in for painful editing chores. Visual Studio 2013 has one ASP.Net project to rule them all, and it's a huge improvement over its predecessors, letting you mix and match Web technologies using a wizard.
If you forget to add everything you need to an ASP.Net project when you create it, you can now easily add it later via scaffolding. Scaffolds include generators of controllers with all combinations of available Web technologies, generators of views, and generators of areas. Areas are a way of partitioning MVC applications, added in MVC 2, that solves the problem of having an unwieldy number of models, views, and controllers in a large website.
MVC Web projects strongly remind me of Ruby on Rails, with the same strengths, weaknesses, and pitfalls. If you put the model-related code in the model, the view-related code in the view, and the controller-related code in the controller, then avoid crossing the lines, you can build a robust website that automatically implements RESTful actions and cleanly separates and decouples the database, UI, and event-handling functionality. If you forget the divisions and, for example, interrogate the database directly from the view, you'll wind up with a buggy application that needs to be refactored to become maintainable, just as you would in Rails.
Browser Link fixes that by creating a real-time, two-way connection using SignalR between Visual Studio 2013 and all the browsers you connect to your locally hosted debug-mode site. Again, this isn't your father's Microsoft: It works with any browser you wish to use, not just the latest version of IE, and it works with browsers running in device emulators/simulators. (You can download emulators from Microsoft's ASP.net site.)
Visual Studio 2013 makes it easy to add a new controller, view, or model to an MVC Web project.