Tag Archive for Visual Studio

Visual Studio 2019 Preview 2 Improvements

The recently released Preview 2 of Microsoft Visual Studio 2019 contains quite a few improvements and new features.

Lifetime Profile Checker

Preview 2 includes a Lifetime Profile Checker that implements the Lifetime Profile as published by the C++ Core Guidelines. It includes:

  • Support for iterators, string_views, and spans.
  • Better detection of custom Owner and Pointer types which allows custom types that behave like Containers, Owning-Pointers, or Non-Owning Pointers to participate in the analysis.
  • Type-aware default rules for function call pre and post conditions help reduce false-positives and improve accuracy.
  • Better support for aggregate types.
  • General correctness and performance improvements.
  • Some simple nullptr analysis.

This feature is not enabled by default, but you can enable it in the code analysis ruleset for your project. An example of what this checker can catch is the following in which we have a dangling string_view:

std::string get_string();
void dangling_string_view()
    std::string_view sv = get_string();
    auto c = sv.at(0);

You can read more about this feature here.

Backend Updates: New Optimizations, OpenMP, and Build Throughput improvements

New features include:

  • Added a new inlining command line switch: -Ob3. -Ob3 is a more aggressive version of -Ob2.
  • Added basic support for OpenMP SIMD vectorization.
  • Added a new C++ exception handler __CxxFrameHandler4 that reduces exception handling metadata overhead by 66%.
  • Support for Short Vector Math Library (SVML) intrinsic functions.

New and improved optimizations include:

  • Useless struct/class copies are being removed in several more cases, including copies to output parameters and functions returning an object. This optimization is especially effective in C++ programs that pass objects by value.
  • Unrolled memsets and block initializations will now use SSE2 instructions (or AVX instructions if allowed).
  • The compiler recognizes memmove() as an intrinsic function and optimizes accordingly.
  • Several new scalar fused multiply-add (FMA) patterns are identified with /arch:AVX2 /fp:fast.

Preview 2 also improves build throughput. Link times might be improved up to 2x.

The new linker will now report potentially matched symbol(s) for unresolved symbols, like:

main.obj : error LNK2019: unresolved external symbol _foo referenced in function _main
  Hint on symbols that are defined and could potentially match:
    "int __cdecl foo(int)" (?foo@@YAHH@Z)
    "bool __cdecl foo(double)" (?foo@@YA_NN@Z)
main.exe : fatal error LNK1120: 1 unresolved externals

More details can be found on this blog post.

Template IntelliSense Improvements

The following updates for Template IntelliSense are included with Preview 2:

  • Peek Window UI
  • Live Edits
  • Nested Template support
  • Default Argument watermarks

Read all about it on this blog post.

C++ Productivity Improvements

Preview 2 comes with the following new quick fixes and code navigation improvements:

  • Quick fixes for:
    • Add missing #include
    • NULL to nullptr
    • Add missing semicolon
    • Resolve missing namespace or scope
    • Replace bad indirection operands (* to & and & to *)
  • Quick Info on closing brace
  • Peek Header / Code File
  • Go to Document on #include

Read more about this new features here.

New Code Analysis Checks

Preview 2 includes new code analysis checks:

  • Use-after-move checker
  • Coroutine related checkers

Read more about them here.

In-editor Code Analysis Improvements

Code analysis now runs automatically in the background, and warnings display as green squiggles in-editor. Analysis re-runs every time you open a file in the editor and when you save your changes.

Squiggles are improved. Squiggles are now only displayed underneath the code segment that is relevant to the warning.

Read more here.


Performance Improvements with Visual Studio 2015 Update 2

Visual Studio 2015 Update 2, released on March 30 2016, brought a couple of performance improvements.

  • Enabled a new database engine; now, C++ Project load should be faster and experience fewer UI delays.
  • Increased the speed of extracting floating-point numbers with iostreams (in other words, “stream >> dbl”). It’s now up to 19x faster, and all bits of the extracted value are now correct.
  • Increased the speed of std::vector reallocation and std::copy(); they are up to 9x faster as they call memmove() for trivially copyable types (including user-defined types).
  • Increased the speed of std::vector, which is up to 11x faster.
  • Increased the speed of std::string::replace(), which is enormously faster when replacing same-size substrings.
  • Increased the speed of std::string::push_back(), which is up to 3x faster.
  • Increased the speed of std::sub_match comparisons, as they now avoid constructing temporary std::strings.
  • Increased the speed of std::function’s copy constructor; it is slightly faster with a reduced codegen size.

The full official release notes can be found here.


Visual Studio “14” CTP

Microsoft has released Visual Studio “14” CTP. You can read the announcement on Soma’s blog. Visual Studio “14” will most likely be available sometime in 2015.

Note: This is a CTP release, thus it should be installed in a test environment, such as a VM or a clean machine. Do not install on a machine with another version of Visual Studio installed.

Specifically for C++, there are quite a few improvements, such as:

  • Generalized lambda capture
  • User-defined literals in the language and standard library
  • Completed noexcept
  • Inline namespaces
  • Thread-safe “magic” statics
  • Unrestricted unions
  • All November 2013 compiler CTP features
  • Null forward iterators
  • quoted()
  • Heterogeneous associative lookup
  • integer_sequence
  • exchange()
  • get()
  • Dual-range equal(), is_permutation(), mismatch()
  • tuple_element_t
  • Filesystem “V3” Technical Specification (TS)
  • Object file size reductions
  • Debug checking fixes
  • Create declaration or definition
  • Native memory diagnostics
  • Refactored C Runtime (CRT): This CTP contains the first preview of the substantially refactored CRT. msvcr140.dll no longer exists. It is replaced by a trio of DLLs: vcruntime140.dll, appcrt140.dll, and desktopcrt140.dll.

Read Eric’s blog for a bit more details on those improvements.

Download the CTP.


Visual Studio 2012 Update 2 Now Available

Microsoft has released Update 2 for Visual Studio 2012 (VS2012.2). You can get it here.

Just as with VS2012.1 (which is installed as part of VS2012.2 for those of you who don’t already have VS2012.1 installed), this release contains important fixes as well as a wealth of new functionality, addressing feedback we’ve received from the community and aligning with key software development trends in the market. The new functionality primarily spans (though is not limited to) five areas of investment: agile planning, quality enablement, Windows Store development, line-of-business development, and the general developer experience.

Check out Somasegar’s blog post for more details on this update.


Visual Studio 11 UI Updates Coming in RC

Most op you will know by now that the Visual Studio 11 Beta UI is rather gray. There was a lot of feedback about this from the communities, and it seems Microsoft is listening. They have announced a couple of UI changes to bring back some color to the UI.

Check out this blog post for a description of the changes, including before and after screenshots. I definitely like the new upcoming changes 🙂


Visual Studio 11 Beta Announced

Microsoft has announced that it will release Visual Studio 11 Beta on 29th of February, and that it will be “go live,” meaning you will be allowed to start using it in production environments. Read the official announcement.

The user interface of the new Visual Studio 11 is completely overhauled. It now follows the Metro principles of clean UI that uses typography and white space for layouting instead of lines. Below are two screenshots of the UI in the beta version.

As you can see, it’s completely different compared to Visual Studio 2010. Themes are supported, so you’ll be able to design whatever theme you want. An in-depth discussion of these changes can be found on the Visual Studio Team Blog.

The product pages have also been updated with information about the upcoming releases. One new version of the product is called “Team Foundation Server Express Beta”, which is a free collaboration software targeted at small teams. Read more about it here.


Visual Studio 2010 SP 1 Beta

Microsoft has released Visual Studio 2010 SP1 Beta. It’s available right now for MSDN subscribers and will be available to everyone on Thursday.

It includes a new help viewer that I mentioned in my previous blog entry and “Win7-specific MFC APIs to support use of Direct2D, DirectWrite, and Windows Animation Technologies”. I can’t wait to try those out 🙂

Get more details here.


Visual Studio 2010 SP1 – Help Viewer

Microsoft is planning to include a new help viewer with Visual Studio 2010 SP1, which is long overdue 🙂

You can see a presentation here.


Free eBooks Related to Microsoft Technologies

Here is a list of free eBooks related to Microsoft technologies.

Enjoy 🙂


Visual Studio 2010 Feature Pack 2 Released

Microsoft released Visual Studio 2010 Feature Pack 2 to MSDN subscribers which extends testing, code visualization and modeling capabilities in VS2010. Its main features are more advanced platform and tool support for both manual and automated testing scenarios. It allows you to better control your Silverlight 4 testing scenarios and UI testing code.

Feature Pack 2 includes the following C++ related additions:

Feature Pack 2 is cumulative and includes Feature Pack 1.

Get more information here.


Defining x64 Target Platform for VC++ Projects

Marius Bancila posted an excellent post on his blog explaining how to define x64 target for you Visual C++ Projects.

If you want to port an existing 32-bit application for the x64 platform (especially since 32-bit processors will soon be history), or if you want to target x64 for a new application, the first step in building for x64 is setting up your solution. In this post I will explain what are the steps in configuring x64 as target platform for your projects. Of course you must have the 64-bit compiler and tools installed to make this possible.

Read the full article.


New Windows Phone Developer Tools CTP is Compatible with Visual Studio 2010 RTM

Microsoft has just released a refreshed version of the Windows Phone Developer Tools CTP. The biggest change is that it is now compatible with the final version of Visual Studio 2010 RTM 🙂

The CTP includes the following components:

  • Visual Studio 2010 Express for Windows Phone CTP
  • Windows Phone Emulator CTP
  • Silverlight for Windows Phone CTP
  • XNA Game Studio 4.0 CTP

Get it here.


Visual Studio 2010 RTM not Compatible with the Windows Phone Developer Tools CTP

A few days ago, Microsoft released Visual Studio 2010. Unfortunately, for the time being, this final version is not compatible with the Windows Phone Developer Tools CTP that was released a while ago. According to Charlie Kindel:

“If you install the retail (RTM) release of Visual Studio 2010 on the same machine on which you already have the Windows Phone Developer Tools CTP, you will be unable to build your Windows Phone projects.  Further, while the Windows Phone project type will continue to appear in the File/New dialog, you will not be able to build Windows Phone 7 applications.”

The Windows Phone Developer Tools are being updated and a version that supports the final version of Visual Studio 2010 will be released in a few weeks.

In the meantime, Charlie Kindel recommends the following if you need the retail version of Visual Studio 2010 together with the Windows Phone Developer Tools CTP:

  • Install Visual Studio 2010 to a VPC image
  • Install Visual Studio 2010  on another machine

Note that installing the Windows Phone Developer Tools CTP to a VPC image is not supported.

Register here to be informed when an updated version of the Windows Phone Developer Tools is released.


Microsoft Visual Studio 2010 and .NET Framework 4 Released

Today, Microsoft released Visual Studio 2010 and the .NET Framework 4. A lot of new features are included. One of them is a completely new editor.

“Visual Studio 2010 and .NET Framework 4 have something for every developer. The new editor, now using Windows Presentation Foundation, delivers a more flexible, feature-rich environment that supports concepts such as the use of multiple monitors. This enables a developer to have one monitor with code, another with the user interface designer, and yet another with database structure.”

Visual C++ 2010 also includes a lot of new features, some of them are:

  • MSBuild and multi-targeting
  • IntelliSense and Browsing (#include auto completion, call hierarchy, red squiggles, find all references, class wizard)
  • C++ compiler changes (static_assert, auto keyword, lambda, decltype, rvalue references)
  • Ribbon designer
  • Deployment changes
  • Task dialog support
  • Restart manager support

Read the full press release here or watch the keynote.

Later this week, Silverlight 4 will also be released to the web (RTW). At that time, an update for Visual Studio 2010 will also become available that will allow you to develop applications using Silverlight 4.


Visual Studio 2010 Licensing White Paper

Microsoft has released a white paper for Visual Studio 2010 licensing which provides an overview of the complete Visual Studio 2010 product line. The paper also gives a number of example deployment scenarios and the licensing requirements for those.

Client editions in the Visual Studio 2010 product line include:

  • Microsoft Visual Studio 2010 Ultimate with MSDN
  • Microsoft Visual Studio 2010 Premium with MSDN
  • Microsoft Visual Studio 2010 Professional with MSDN
  • Microsoft Visual Studio Test Professional 2010 with MSDN

(Visual Studio 2010 products can be purchased without an MSDN subscription in certain channels.)

Server products in the Visual Studio 2010 product line include:

  • Microsoft Visual Studio Team Foundation Server 2010
  • Microsoft Visual Studio Lab Management 2010

Volume licensing customers who need a definitive guide to licensing terms and conditions should reference the Microsoft Licensing Product Use Rights (PUR) and applicable licensing agreements. For retail customers, the license terms are specified in the End User Licensing Agreement (EULA) included with the product.


Visual Studio 2010 and .NET Framework 4 Release Candidate

Microsoft has released the Release Candidate version of Visual Studio 2010 and the .NET Framework 4.

See Scott Guthrie blog post about it.

Right now it’s available for MSDN subscribers.
On Wednesday 10th of February everyone will be able to get their hands on it 🙂

Two important things to know (from Scott Guthrie blog post):

  • If you have previously installed VS 2010 Beta 2 on your computer you should use Add/Remove Programs (within Windows Control Panel) to remove VS 2010 Beta2 and .NET 4 Beta2 before installing the VS 2010 RC.  Note that VS 2010 RC can be installed on the same machine side-by-side with VS 2008 and VS 2005.
  • Silverlight 3 projects are supported with today’s VS 2010 RC build – however Silverlight 4 projects are not yet supported.  We will be adding VS 2010 RC support for SL4 with the next public Silverlight 4 drop. If you are doing active Silverlight 4 development today we recommend staying with the VS10 Beta 2 build for now.

Visual Studio 2010 and .NET Framework 4 Beta 2

Visual Studio 2010 and .NET Framework 4 Beta 2 are now available. The final version is scheduled for 22nd of March 2010. I’m looking forward to it 🙂

For Visual C++ developers there are lots of new things to look forward to, like parallel programming, MFC ribbon resource editor, easy application local deployment model etc etc…

When you use the .NET Framework you will apparently be able to have deployments with up to 81% reduction in the framework size by using the Client Profile.

According to the press release:

“The company also outlined a simplified product lineup and pricing options for Visual Studio 2010 as well as new benefits for MSDN subscribers, including the Ultimate Offer, available to all active MSDN Premium subscribers at the official product launch on March 22, 2010.”

The product lineup is simplified with the following versions:

  • Microsoft Visual Studio 2010 Ultimate with MSDN. The comprehensive suite of application life-cycle management tools for software teams to help ensure quality results from design to deployment
  • Microsoft Visual Studio 2010 Premium with MSDN. A complete toolset to help developers deliver scalable, high-quality applications
  • Microsoft Visual Studio 2010 Professional with MSDN. The essential tool for basic development tasks to assist developers in implementing their ideas easily

Download Beta 2 now.

Read the full Microsoft press release.


Introduction to DirectWrite

Microsoft has added two interesting new API’s to Windows 7: Direct2D and DirectWrite. Direct2D replaces GDI and GDI+. It can render more accurate results and has support for hardware acceleration on your graphics hardware. DirectWrite is a new API to render text. It makes it easy to render paragraphs of text that can contain different formatting, coloring, fonts etc. It supports horizontal and vertical alignments, even vertical centering of a paragraph with multiple lines which was not possible with the old text API, etc. This article will give an introduction to the new DirectWrite API. Read the rest of this entry »


Visual C++ 2010 Beta 1 and the Windows 7 RC SDK

The Visual C++ 2010 Beta 1 release contains the Windows 7 Beta SDK. For Direct2D and DirectWrite there were some breaking changes between the beta version of the SDK and the RC version of the SDK. So if you want to use those new Direct2D and DirectWrite APIs, you definitely need the latest Windows 7 RC SDK. There are some manual steps involved in getting that to work with Visual C++ 2010. For detailed explanation please check out Using the Windows 7 RC SDK in Visual C++ 2010 Beta 1 on the Visual C++ Team Blog.


Visual Studio 2010 and .NET FX 4 Beta 1 Released :)

Visual Studio 2010 Beta 1 and .NET FX 4 Beta 1 have been released and is available for download if you have an MSDN subscription. The beta 1 will be publicly released very soon. Check out http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx for more information.