New Features in Visual Studio 2013

Published: 2014-04-23 | By: Ryan Williams
I had an installation of Visual Studio 2012. Recently I upgraded a project to Visual Studio 2013, shortly after Update 2 was annouced. These are some of my findings. 
IDE Changes/ Improvements
  • Icon to communicate with community
  • Notifications are now in the application, not in the task bar
  • SQL Server is now located under Tools
  • The Options dialog now allows searching and is resizable
  • Code editor syntax errors show in scroll bar
  • Account Settings - You can access your Visual Studio accounts with an email. You log in and become a part of Visual Studio with your account and IDE settings.
  • Peek Definition - Go to definition without going to a different file. Partial classes are showed in a list of files.
    • Peek into call stack: (Alt + F12)
    • Navigate call stack forwards: (Ctrl + Alt + -)
    • Navigate call stack backwards: (Ctrl + Alt + =)
    • Toggle code window cursor location: (Shift + Esc)
    • Close window: (Esc)
  • Move Lines Using Keyboard - Moves the current line (or highlighted lines) up or down
    • Move up: (Alt + Up Arrow)
    • Move down: (Alt + Down Arrow)
  • Searching - Open find window, list of code file names, member names or any other symbol names that contain the string
    • Open code search window: (Ctrl + ,)
  • Automatic Brace Completion - When typing, certain character starts will auto-end for you
    • {}
    • []
    • ()
    • “”
    • '' 
  • Debugging
    • Function Return Value Inspection - See return values in Autos window
    • Edit and Continue Enhancement (works in 64 bit applications)
    • Performance and Diagnostic Hub: (Alt + F2)
.NET 4.5.1
When you install Visual Studio 2013, you can target your application to .NET Version 4.5.1. This enables improved diagnostics with new methods in the EventSource class. With ASP.NET applications you get faster app startup. There are new types and members in: mscorlib.dll, System.Core.dll, System.Data.dll, System.DirectoryServices.dll, System.Security.dll, System.Transactions.dll and System.Web.dll, see:
Deploying From Command Line
One big problem I faced after upgrading from 2012 to 2013 was that my deployments through MSBuild stopped actually deploying to the remote server. Apparently, MSBuild is now a part of Visual Studio. What this means in practice was that using MSBuild now requires specifying the version of Visual Studio for the project being deployed.
After some research, I realized that msbuild's exe for 2013 was located at: “C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe”. This was not the only change that I had to make to deploy however, I had to also start specifiying the VisualStudioVersion and ToolVersion to be “12.0” (VS2013)  to indicate the version of Visual Studio.
In addition, I had to open up the web project (unload it) and edit the XML. I had to replace all of the “v10.0” to “v12.0” (Visual Studio 2013) in my case. 
This is what deploying through through Web Deploy 3.5 with PowerShell looks like:
$msBuildLocation = “C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe”
$webprojectLocation = “C:\myproject\mysolution.sln”
$msDeployURL = “”
$msDeployUserName = “Deployuser”
$msDeployPassword = “mypassword”
$deployIisAppPath = “”
$msBuildConfig = “release”

& $msBuildLocation $webprojectLocation `
                    /p:Configuration=$msBuildConfig `
                    /P:DeployOnBuild=True `
                    /P:DeployTarget=MSDeployPublish `
                    /P:MsDeployServiceUrl=$msDeployURL `
                    /P:AllowUntrustedCertificate=True `
                    /P:MSDeployPublishMethod=WMSvc `
                    /P:CreatePackageOnPublish=True `
                    /P:UserName=$msDeployUserName `
                    /P:Password=$msDeployPassword `
                    /p:DeployIisAppPath=$deployIisAppPath  `
                    /p:VisualStudioVersion=12.0 `
                    /p:ToolVersion=12.0 `
                    /verbosity:m /nologo
Note: If you are using MSTest.exe through the command line, you will also need to use the version of it located in: "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE"
Remote Debugging
With Visual Studio 2013 you can debug a remote application in Azure. This requires Azure SDK 2.2, a Cloud Service and needs to be configured to allow remote debugging for all roles. There is a tutorial from Scott Gu, here.
User Feedback/ Community
Surprisingly, Visual Studio 2013 is interested in user feedback. It's so interested that there are happy and sad faces you can select by clicking the top chat icon in the application. When you select them, they seamlessly allow you to submit a screen shot, your message and even an email address (if you want). There is also peer support and bug feedback.
Load Testing In The Cloud (Ultimate Edition Only)
If you want to test a large load of users on your application, the best way to do it is a load/ stress test. In Visual Studio 2012 you could do load testing, even back in 2005 this was an option actually. Setting up a complex load testing rig to emulate a large sample of traffic however, has been challenging. Fortunately at Build 2014 in San Francisco, they announced new load testing features in Visual Studio 2013. I highly recommend watching this video about the load testing service.
The features allow you to set up a large load of users to hit your application. It's relatively easy to set up. You need to have a Visual Studio Online account and then you need to make (or select form your existing project) one of more integration tests that you want to run during your test. You are allocated a number of user minutes that your test will consume. You can run the load test from Visual Studio on your desktop and Azure will make all the VM's it needs to run your test.
CodeLens (Ultimate Edition Only)
CodeLens shows references, tests, status, TFS details and more. You can see test output, if the test has passed and how long it took to run the test. The pop up from CodeLens can show you the stack trace of test. One very useful feature of CodeLens is the ability to look at a method or class in code and see the full Git history with time stamps. 
More Information
Video: Mastering Visual Studio 2013 on PluralSight and Introduction to Visual Studio 2013 - Part 2 on PluralSight
Blog: Visual Studio 2013 New Editor Features

No Comments... Yet

Comment On

Prove you are human 9 + 2 =