What's New in Visual Studio 2013
This article introduces new and enhanced features in Visual Studio 2013, including Update 2. For information about updates in Visual Studio 2012, see What's New in Visual Studio 2012.
Languages
Visual C++
Improved support for ISO C/C++ Standards:
Core language
Standard Template Library
C99 Libraries
Visual C++ library enhancements:
C++ REST SDK (Casablanca)
C++ AMP texture support
PPL task debugging
Improved C++ application performance
Enhancements for Windows Store app development
For more information, see What's New for Visual C++ in Visual Studio 2013.
JavaScript
New features in the JavaScript editor:
Deprecation notes in IntelliSense. If a Windows API element has been deprecated in Windows 8.1, IntelliSense tooltips identify it as "[deprecated]".
Go To Definition for namespaces. You can open the shortcut menu for a namespace in your code (such as WinJS.UI) and then choose Go To Definition to examine the line where that namespace is defined.
Identifier highlighting. When you select an identifier (for example, a variable, parameter, or function name) in your source code, all uses of that identifier in your source code are highlighted.
For more information about new features, see What's New in JavaScript.
Important
To find out how to create Windows Store apps in JavaScript, including information about the Visual Studio JavaScript editor and other features, see Develop Windows Store apps using Visual Studio 2013.
F#
Named fields in discriminated unions make code clearer. See Discriminated Unions (F#).
Work more easily with vector and matrix code with new array slicing features for multidimensional arrays. See Arrays (F#).
Write more powerful generic algorithms with expanded F# support for generic extension members. See Type Extensions (F#).
Get better debugging support when you use F# quotations, with the new --quotations-debug compiler and interpreter option. See Compiler Options (F#).
Simplify your code by omitting type annotations in many lambda expressions that are common when you use LINQ extension methods like Where and Select.
Use the .NET Framework 4.5.1 and Windows Store portable libraries.
Work on your projects by using both current and previous versions of Visual Studio. See Round-tripping with Visual Studio 2012.
View tooltips and use the Go to Definition feature for F# operators.
Enjoy up to 40x speed improvements with the new, faster implementation of printf in F#.
During F# interactive sessions, add references by using the new Send to Interactive command on any reference node in Solution Explorer.
.NET Framework 4.5.1
In Visual Studio 2013 Update 2, the Portable Class Library supports these scenarios:
You can use Windows Runtime APIs in portable libraries that target Windows 8.1, Windows Phone 8.1, and Windows Phone Silverlight 8.1.
You can include XAML (Windows.UI.XAML types) in portable libraries when you target Windows 8.1 or Windows Phone 8.1. The following XAML templates are supported: Blank Page, Resource Dictionary, Templated Control, and User Control.
You can create a portable Windows Runtime component ( .winmd file) for use in Store apps that target Windows 8.1 and Windows Phone 8.1.
You can retarget a Windows Store or Windows Phone Store class library like a Portable Class Library.
For more information about these changes, see Cross-Platform Development with the Portable Class Library.
Enhancements in version 4.5.1 include automatic binding redirection for assemblies. When you compile an app that targets the .NET Framework 4.5.1, you can add binding redirects to the app configuration file if your app or its components reference multiple versions of the same assembly. See How to: Enable and Disable Automatic Binding Redirection.
For more information about new features in versions 4.5 and 4.5.1, see What's New in the .NET Framework 4.5, 4.5.1, and 4.5.2.
Windows Store apps
For information about how to develop Windows Store apps, see Windows 8.1: New APIs and features for developers.
Create universal apps (introduced in Update 2). Build an app for Windows and Windows Phone 8.1 at the same time, and share code, user controls, styles, strings and other assets between them. This reduces the expense associated with building and maintaining an app for each type of device. If you already have a Windows Store app, you can add support for a Windows Phone Store app. Similarly, if you start by creating a Windows Phone app, you can add support for a Windows Store app. See Templates to speed up your app development.
Create a hub-style app. Create a Windows Store app that displays content in a horizontally panning view and engages users by providing a variety of ways to access content. Use the Hub App project template to get started.
Validate apps against remote devices. Validate your app against remote devices before you submit it for certification. Run a program on each device that you want to use for validation. Then, connect to that device from within the Create App Packages wizard to validate the app. See Validate app packages.
Generate app bundles. Generate an app bundle to reduce the size of the app that users download. Your app takes up less room on their devices, and users can download it faster because they download only the assets that they need. See Help me decide whether to generate an app bundle.
Debugging and diagnostics
Debugger
Just My Code for C++ and JavaScript.
Asynchronous call stacks are extended to show the method chain that called the async code.
64-bit Edit and Continue for .NET Framework code.
For more information, see What’s New for the Debugger in Visual Studio 2013.
Graphics
Graphics Diagnostics are available for Windows Store apps in Visual Studio Express 2013 for Windows (in addition to the Professional, Premium, and Ultimate editions). See Graphics Diagnostics Overview.
You can use Graphics Diagnostics to debug DirectCompute compute shader code. See Walkthrough: Using Graphics Diagnostics to Debug a Compute Shader.
Graphics Diagnostics can capture graphics information from an app that's running on a remote machine or device. See Capturing Graphics Information.
You can use a remote machine or device to play back graphics information that was previously captured on the same machine or on a different machine. See How to: Change the Graphics Diagnostics Playback Machine.
(Introduced in Update 2) Graphics Diagnostics includes Graphics Frame analysis, a performance profiling tool that summarizes event timing and performance counter information about captured frames. Frame analysis can change certain aspects of a frame's rendering and summarize its performance relative to your app’s default rendering to help you develop an optimization strategy. See Graphics Frame Analysis.
(Introduced in Update 2) The Graphics Event List window supports a Draw Calls view in addition to the traditional Timeline view. The Draw Calls view organizes events in a hierarchy, with draw calls at the highest level and their associated state organized underneath. See Graphics Event List.
(Introduced in Update 2) Graphics Diagnostics can capture graphics information from an app that uses the DirectX 11.2 API. See Graphics Diagnostics Overview. Programmatic capture scenarios are supported in DirectX 11.2 apps by a new programmatic capture API. See Walkthrough: Capturing Graphics Information Programmatically.
(Introduced in Update 2) Navigation improvements: Graphics Diagnostics displays object names, rather than object ID numbers, throughout its user interface so that you can better understand events; names are set via D3D set private data. Event marker messages support hyperlinks. See Graphics Diagnostics Overview.
Diagnostic tools
.NET Framework memory analysis.
Enhanced categorization and filtering when you run unit tests.
Enhanced categorization and filtering for C++ code analysis rules.
For more information, see What's New in Developer Quality and Diagnostic Tools in Visual Studio 2013.
Debugging and diagnostics for Windows Store apps
DOM Explorer. The Cascading Style Sheets (CSS) editor supports improved editing, IntelliSense, inline styles, shorthand, specificity, and notification of invalid properties. The Computed, Styles, and Layout panes show computed values, provide better mapping to source code, and provide color coding to match selected elements. The DOM Explorer supports search, editing as HTML, IntelliSense, and undo stacks.
JavaScript Console. The console supports object preview and visualization, new APIs, multiline function support, IntelliSense, evaluation of elements as objects or HTML, and legacy document modes.
JavaScript Memory Profiler. The Dominators view shows the memory allocation retained by each object. The profiler notifies you of potential memory leaks caused by detached or disconnected DOM nodes. Color-coded operation values show how objects have changed from previous snapshots.
The XAML UI Responsiveness profiler helps you improve the performance of your app’s display.
The Energy Consumption tool helps you analyze the power and energy consumption of Windows Store apps that run on lower-powered Windows RT 8.1 (ARM) tablets.
MSBuild
MSBuild 12.0 is included in Visual Studio instead of with the .NET Framework. MSBuild 12.0 operates side-by-side with versions that were deployed with previous versions of the .NET Framework. MSBuild 12.0 is also available via a standalone installer for build-server scenarios. See What's New in MSBuild 12.0.
IDE
The Visual Studio IDE has improved icons, more contrast in the user interface, the ability to search the Options window directly, and other enhancements.
You can find new and commonly used IDE keyboard shortcuts in Tips and Tricks for Visual Studio.
Start experience
Sign in to Visual Studio. You can sign into Visual Studio by using a Microsoft account. This helps personalize and optimize your Visual Studio development experience. The new connected IDE uses your Microsoft account to connect to your Visual Studio profile, including any team accounts for Team Foundation Services. The first time you start Visual Studio, you supply the credentials for your Microsoft account. Based on that authentication, Visual Studio finds and applies your license and synchronizes your settings (such as fonts, language preference, and keyboard settings) across all of your computers. See Signing into Visual Studio and Synchronized Settings in Visual Studio.
The first time you start Visual Studio, you can choose one of three Visual Studio themes—Black, White, or Blue. (You can change the theme later.) Your theme selection is part of your roaming settings—as long as you’re logged on to Visual Studio, your theme appears on all of your computers.
The Notification Center panel—at the top-right corner of the IDE next to the Quick Launch window—sends alerts as part of the Connected IDE experience. For example, if you didn’t register your installation and your license is expiring, you may receive an alert message in the Notification Center.
The start page has more news and announcements.
Code editor
You can use many popular code editor features that were available only in the Productivity Power Tools:
Peek Definition. You can browse and modify Visual Basic, C#, and C++ code definitions without opening a new document tab. See How to: View and Edit Code by Using Peek Definition (Alt+F12).
Enhanced Scroll Bar. You can set the scroll bar to indicate code markers such as errors, warnings, changes, and breakpoints. See How to: Track Your Code by Customizing the Scrollbar.
Navigate To (Ctrl+,). Improvements include live result previewing and a streamlined inline UI experience.
Other features include automatic brace completion and the ability to move a line or selection up or down by using keyboard shortcuts.
XAML editor
- The XAML editor supports IntelliSense for databinding and resources, smart commenting, and Go To Definition.
Team Foundation and Application Lifecycle Management
For information about improvements to Application Lifecycle Management and Team Foundation, see What's new for Application Lifecycle Management in Visual Studio 2013.
ASP.NET 4.5.1
For information about new features, see What’s New for ASP.NET 4.5.1 and Web Development in Visual Studio 2013.
For information about web templates, see Creating an ASP.NET Web Project in Visual Studio 2013.
Generate Windows PowerShell scripts to publish ASP.NET projects to Azure Web Sites and virtual machines. See Use the Windows PowerShell Deployment Scripts to Publish Web Projects to Azure.
Azure Mobile Services
Connect Windows Store apps to Azure Mobile Services.
Use Azure Mobile Services and Windows Push Notification services to add push notifications to your app.
Create and view Azure Mobile Services by using the JavaScript backend or the .NET backend based on Web API.
Update table scripts and custom APIs for Azure Mobile Services.
Troubleshoot server-side scripts by viewing mobile service logs in Server Explorer.
For more information, see Azure Mobile Services.
Blend
Blend has several new and enhanced features.
HTML design tools for Windows Store apps
CSS Animation. Create and preview CSS3 animations by using the Animation timeline.
JavaScript Behaviors. Add interactivity without writing code by dropping JavaScript behaviors onto any element. Choose from a list of built-in behaviors or create custom behaviors.
Embed Custom Fonts. Embed custom fonts and include them in your app.
Data Binding. Bind to design-time data to preview your data display and design your data templates.
Rulers and Guides. Drag visual guides from rulers to more precisely place elements and create custom layouts.
Border Radius. Use easy-to-manipulate handles on elements to create rounded corners and ellipses.
Search and Set CSS Properties. Quickly set CSS property values directly in the Search or Set box in the CSS Properties panel.
Find Elements by using CSS Syntax. Search the Live DOM by using CSS syntax.
XAML design tools
Rulers and guides. Drag visual guides from rulers to more precisely place elements and create custom layouts.
Better style editing support. In-place style and template editing supports the creation and modification of templates directly in the context of the app display.
Sample data support. Bind to sample data, including sample data in JSON format.
View-state authoring. Modify view-state properties such as Edge and minimum widths for edge-aligned views directly in the Device panel.
Behaviors. Interactively add behaviors to your markup by dropping them onto any element. Choose from a list of built-in behaviors or create custom behaviors.
SharePoint and Office
MVC support. You can use the new MVC (model-view-controller) pattern in Office 2013 and SharePoint 2013 to create apps. In apps for SharePoint, you can choose the ASP.NET MVC Web Application as the web app for your project. You can also publish apps to Azure websites.
Cloud Business App project template. Create line-of-business applications hosted on SharePoint for Office 365 that are based on Visual Studio LightSwitch technologies.
App Packaging and Publishing. The packaging and publishing process for apps for SharePoint and apps for Office has been streamlined and improved. You can use the updated publishing dialog box to provide the information that's required to publish your app to a target location. It also connects you to the Seller Dashboard so that you can submit your app to the Office Store. See How to: Publish an app for SharePoint by using Visual Studio and How to: Publish an app for Office.
Add search capabilities to your apps for SharePoint. You can deploy custom search configurations to a search-enabled site. See How to: Deploy custom search configurations by using Visual Studio.
Debug remote event receivers and remote workflows. Remote event receivers and workflows in apps for SharePoint support full debugging. See Developing apps for SharePoint on a remote system.
LightSwitch
Improved support for team development with new segmented project model.
JQuery Mobile table control for HTML clients displays tabular data.
The Created By and Modified By fields for intrinsic tables provide a built-in auditing experience.
Person semantic data type connects to Active Directory.
DateTimeOffset semantic data type stores dates and times in UTC format.