Microsoft Visual Studio 2015

This post will give you inside scoop of the new features introduced in the latest version of Visual Studio – 2015. Initially referred to as Visual Studio “14″, the first Community Technology Preview (CTP) was released on 3rd June 2014, ‘Visual Studio 2015’ was officially announced on 12th November 2014.

The Visual Studio 2015 consists of the following salient features:

  1. .NET Framework 4.6 Support– The Visual Studio 2015 includes the newest version of the .NET Framework, namely, 4.6 and supports:
    1. Base class library changes– Many new APIs are added to enable cross-platform scenarios like:
      • New cryptography APIs
      • Additional collections implement System.Collections.ObjectModel.ReadOnlyCollection, including System.Collections.Generic.Queue and System.Collections.Generic.Stack
      • Additional members to support the task-based asynchronous pattern (TAP)
    2. Improvements in event tracing – An EventSource object can now be constructed directly, and one can call any one of the many overloaded Write() methods to emit a self-describing event.
    3. Resizing in Windows Forms controls– This feature has been expanded to include:
      • System.Windows.Forms
      • DomainUpDown
      • NumericUpDown
      • DataGridViewComboBoxColumn
      • DataGridViewColumn
      • ToolStripSplitButton types
    4. 64-bit JIT compiler for managed code – A new version of the 64-bit JIT Compiler, which provides significant performance improvements over the legacy 64-bit JIT Compiler is included in this version.
    5. ASP.NET Model binding supports Task returning methods – ASP.NET Model Binding methods that were previously returning Task, were not supported and threw an exception at runtime if configured. Now if the applications are deployed using such methods, the methods would get executed correctly.
  2. Support for ASP.NET Web development tools– VS2015 supports the following web development tools:
    1. Bower: VS 2015 integrates with Bower package manager tool. Bower is similar to NuGet but it tailors specifically to client-side packages like JavaScript libraries and CSS frameworks.

    2. Node package manager:VS 2015 supports NPM which is a package manager for development. It supports task runners like Grunt and Gulp to provide build-task for client-side. It is similar to MS Build but for client-side.

  3. Entity Framework – Entity Framework 7– The new version of Entity Framework enables new platforms and new data stores. Windows Phone, Windows Store, ASP.NET 5, and traditional desktop application can now use Entity Framework. This version of the framework supports relational databases as well as non-relational data stores such as Azure Table Storage and Redis.Entity Framxework 6.xEF6.1.2 includes bug fixes and community contributions
    • The Entity Framework 6.1.1 runtime will be installed when a new model is created using the Entity Framework Tools in a project that does not already have the EF runtime installed
    • The runtime is pre-installed in new ASP.NET projects, depending on the project template you select
  4. Visual Studio Emulator for Android– VS 2015 provides a fast emulator which doesn’t necessitate Hyper-V to be disabled. Now, users don’t have to pay for emulator separately as VS 2015 comes with one. It also supports rich sensor simulator.The Visual Studio Emulator for Android can be used either in a cross-platform project in Visual Studio (Xamarin or C++), or in Visual Studio Tools for Apache Cordova. The emulator allows you to switch between different platform emulators without Hyper-V conflicts. It supports GPS/Location, accelerometer, screen rotation, zoom, SD card, and network access.

  5. C# and Visual Basic– In this release, several new C# and Visual Basic language features are introduced which brings the two languages even closer together.
    • Nameof provides a refactoring-safe way of getting the name of e.g. a parameter, member or type as a string
    • Using null-conditional operators one can get a built-in null check while accessing and invoking members and indexers
    • String interpolation provides a concise way of describing string templates that insert expressions into format
    • Methods, getter-only properties etc. can now have a single expression as their body, just like lambdas
    • Auto-properties have initializers and no longer require setters
    • With index initializers inside an object initializer, one can now initialize a specific index of the new object. C# only
    • Exception filters enables looking at an exception and decide whether to catch it with a given catch block
    • Using clauses for static classes, bring their static members directly into scope, so one can call for example WriteLine() or Sqrt() without prefixing with the class name
    • Await now works in catch and finally blocks, obviating some very tricky workarounds
  6. Code Editor UI and Editing
    • Light Bulbs are used to perform quick actions including fixes to common code issues and refactoring code. When there is an issue in code, a Light Bulb shows suggested fixes for the issue. All refactoring operations have been moved to the Light Bulb, which can be accessed any time by typing Ctrl+<dot>
    • There are two new core refactoring operations: Inline temporary variable and Introduce local. Here’s an example of the new Introduce local feature:

    • And an example of Inline temporary variable:

    • Renaming has also been improved; now it highlights all the instances of the identifier to be renamed, letting one type the new name to all instances at once directly in the editor

    • Now it offers live code analysis and automatic fixes as you type, with specific code-aware guidance for the Microsoft platforms and NuGet packages that are being targeting
    • The expression evaluator for C# and Visual Basic have been rewritten. Improvements include support for LINQ and lambda expressions in the Watch and Immediate Windows
    • VS 2015 offers better Support for touch screen. Making selection of text and scrolling through code easier
    • Custom layout for different devices – VS 2015 offers two layouts for the developer to work in. They are:
      • Surface layout – gets rid of all tool windows like Server explorer, Team explorer etc and focuses mainly on code window.
      • Large Display layout– Traditional layout used in prior versions of Visual Studio

      These layout settings can be saved in the ‘Personalization Account’ (can be seen by clicking the registered user’s avatar at the top right corner) the user’s preference is kept when opening the VS 2015 next time

  7. Debugging improvements– VS 2015 makes it easier to debug. The features include for debugging are:
    1. Ability to configure breakpoint settings that makes it easier to work debug
    2. Ability to execute lambda expressions in the Immediate and Watch windows
    3. C++ debugger can unfreeze threads in a process so locked functions can be executed
    4. UI Debugging in XAML– Two new tools—“Live Visual Tree” and “Live Property Explorer” are added that one can use to inspect the visual tree of the running WPF application, as well as the properties on any element in the tree
      • Live Visual Tree: Now, the full visual tree of a running application can be viewed during a debugging session. The Live Visual Tree is available when F5 is pressed in Visual Studio or attached to a running application. One can use the Live Visual Tree to select elements in a running application for inspection in the Live Property Explorer. Descendant count is displayed. And if the source information is available, one can instantly find the file and the location of the element’s definition
      • Live Property Explorer: This new tool can be used to inspect the properties set on any element in a running application, grouped by the scope in which they are set. One can modify these properties during a debugging session and immediately see their changes in the running application
    5. IntelliTrace – IntelliTrace is a historical debugging tool and serves as a recorder for debugging session
  8. Other additions
    1. Single Sign-in – When one authenticates to the first cloud service in Visual Studio, they automatically get signed in to other integrated cloud services
    2. CodeLens– The CodeLens also shows a graphical activity of the changes as shown below, in addition to who updated the code, and when was the code updated

      The graph above shows who has been working most and when

    3. Code Maps – Specific dependencies in the code can be visualized by creating Code Maps. These relationships can then be navigated using the map, which appears next to the code. This helps one track their place in the code while they work.
    4. Diagnostic Tools
      • Supports 64-bit Windows Store apps
      • The timeline zooms as necessary so the most recent break event is always visible
    5. Exception Settings
      • Debugger exception settings can be configured by using Exception Settings tool window. The new window is non-modal and includes improved performance, search, and filter capabilities

    6. Unit Tests – Visual studio 2015 now supports Parameterized Unit Tests and Test stubs creation
    7. Support for 3rd party tools (like Resharper) – VS 2015 provides a unifying experience for 3rd party tools like Resharper so that they can be used in one common place


As it is apparent from the above mentioned new features introduced in VS 2015, developing applications across diverse domains like mobile, web, windows etc. has just become much easier while ensuring code quality using new debugging and trace options.

Tags: VS 2015
previous post: Does outsourcing really save money? next post: SharePoint Server 2016 – SharePoint is coming back with more new features and enhancements