Latest and greatest from the Visual Studio family for C++ developers Steve.Carroll & https://blogs.msdn.microsoft.com/vcblog/

Slides:



Advertisements
Similar presentations
Introducing the UWP.
Advertisements

ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Android Introduction Platform Overview.
What’s New In Visual Studio 2010 Denys Kholod Technology Expert Hmarasoft.com.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Developing Cross-Platform Applications with Visual Studio 2015
DEV-05: Ratcheting up your OpenEdge™ Development Productivity Sunil S Belgaonkar Principal Software Engineer.
Eclipse 24-Apr-17.
Lewis Benge Bring your code to Windows MOB336.
Herb Sutter Partner Program Manager C++: Conformance and Cross-platform Mobile Development.
The Windows 10 App platform: an introduction to the UWP Andy Wigley b:
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
0 Developing for Windows 10 Tony Champion Champion DS.
6 # BUILD DEBUG EDIT Developer does this #40 times a day (Linker) CLEAN BUILD Product build nightly! (Compiler)
TEARING THE DOWN ing Jim Wooley Jim Wooley
61% YoY Growth.NET Active Developers (VS 2012+) 40%.NET Core downloads by new developers 62% GitHub contributions from outside of Microsoft (corefx.
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
Mobile App Development for Multiple Platforms with Visual C++, 2016
What is it all about? .NET MeetUp in Prague, CZ (2017/7/19)
Whats New Xamarin and VC++ with VS 2017
Three Runtimes, one standard… .NET Standard: All in Visual Studio 2017
Mobile Device Development
Top 10 Entity Framework Features Every Developer Should Know
12/29/2017 2:33 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Modernizing your. NET applications with. NET Standard,
C# and VB code-focused development with Visual Studio
Introduction to Xamarin C# Everywhere
The Xamarin Promise - Realized
4/13/ :02 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Unleash .NET 2015 in your apps
DotNetSpider Editor Hefin Dsouza
Learn. Imagine. Build. .NET Conf
5/15/2018 5:43 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Latest and Greatest in Visual Studio for C++ developers
What is Apertis? Apertis is a versatile open source infrastructure tailored to the automotive needs and fit for a wide variety of electronic devices.
The Universal Windows Platform
Tooling Breakout Session
6/2/2018 4:08 AM BRK3327 Ten things you didn't know about building .NET UWP apps in Visual Studio 2017 Daniel Jacobson Program Manager – Visual Studio.
Introduction to .NET Core
reasons to move your C++ code to Visual Studio
Did your feature got in, out or planned?
Microsoft Connect /23/2018 5:27 PM
SQL Server Data Tools for Visual Studio Part I: Core SQL Server Tools
Microsoft Build /13/2018 2:24 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
DNN Connect 2017 Microsoft Keynote
Introducing ASP.NET Core 2.0
Microsoft Connect /17/ :55 PM
Customizing your device experience with assigned access
1.1. .NET architectural components and .NET Core
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Eclipse 20-Sep-18.
HP C/C++ Remote developer plug-in for Eclipse
Updated Agenda 12:00PM–1:00PM | Session #1 1:00PM–2:00PM | Lunch.
What is it all about? .NET MeetUp in Amsterdam, NL (2017/7/11)
DotnetConf 11/14/2018 3:27 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE.
Microsoft Ignite /14/ :21 AM BRK2101
.NET and .NET Core Foot View of .NET Pan Wuming 2017.
Microsoft Connect /23/ :48 AM
Windows 10 Preview Andy & Jerry
Microsoft Build /24/2018 4:02 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Using Visual Studio and VS Code for Embedded C/C++ Development
Entity Framework Core.
Microsoft Connect /1/2018 2:36 AM
What’s new in ASP.NET Core and Entity Framework 2.2 (Preview 3)
Visual Studio 2010 和 .NET Framework 4 培训研讨会
CMPE419 Mobile Application Development
.Net for Test and Measurement
Running C# in the browser
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
ASP.NET Core 2.0 The Future of Web Apps Shahed Chowdhuri
Presentation transcript:

Latest and greatest from the Visual Studio family for C++ developers Steve.Carroll &

AGENDA Compiler and Libraries: Status and Roadmap Tools (Visual Studio, Visual Studio Code) Workloads (Windows, Windows Store, Android, iOS, Linux, IoT, Games)

Libraries Acquisition 80% of C++ projects use 2 or more 3rd party libs A majority of them use open source libraries Acquiring and rebuilding libs on Windows can be simple NuGet wasn’t designed for C++, e.g. no local rebuilding Open source tool based on a port tree approach (Vcpkg) Usage: vcpkg install boost Installs the.h,.lib and binaries in a “lib folder” ready to use

Win an Xbox One S Take this survey:

Other Talks Tuple: What's New, And How It Works C++ Modules: The State of The Union C++ Coroutines: Under the covers An Introduction to C++ Coroutines Putting Coroutines to Work with C++ for the Windows Runtime The Guideline Support Library: One Year Later Iterator Haiku (Range-v3) Latest and greatest from the Visual Studio family for C++ developers

AGENDA Compiler and Libraries: Status and Roadmap Tools (Visual Studio, Visual Studio Code) Workloads (Windows, Windows Store, Android, iOS, Linux, IoT, Games)

C++ Conformance C++11 C++14 C++17 Expression SFINAE (via more libraries) Two-phase Name Lookup* Extended Constexpr NSDMI for Aggregates Expression SFINAE (via Boost) Attribute [[fallthrough]]** Terse static_assert** Generalized range-based for-loops …

Compiler switches [easing your upgrade process] /permissive- Introducing the idea of a “less permissive mode" in the compiler Off by default now… on by default at some point in the future /std:c++14 On by default, for now The latest blessed C++ standard i.e. standards features up to C++14 /std:c++latest Off by default, for ever Every implemented feature that is not part of a finalized standard yet

Example libraries that we couldn’t compile previously Most Boost MSVC workarounds can be removed BOOST_MSVC_SFINAE_EXPR - now BOOST_NO_CXX14_AGGREGATE_NSDMI - VS15 Preview 4 BOOST_NO_CXX14_CONSTEXPR, BOOST_NO_CXX14_VARIABLE_TEMPLATES - VS15 RC Boost.Spirit X3 parser framework - VS15 RC Sprout constexpr containers/algorithms - VS15 RC Range-V3 (MSVC compatible version) Crow micro web framework GoogleTest (for C++11) JSON for Modern C++ (nlohmann github version)...

Compiler Diagnostics Improvements Column Information and Source Context : /diagnostics:caret Special Member Function errors

Generated Code Quality: Perf, Reliability, Security New SSA-based expression optimizer Eigen benchmarks: up to 7% speedups Spec2K6 benchmarks: up to 10% speedups Even more Real World Code Windows, Office, Bing, CoreCLR, Chakra Chrome, Boost, OpenSSL, OpenCV, Clang/LLVM, RxCpp, UnrealEngine CFG (/guard:cf) Improvements, e.g. guard long jumps void bar() { jmp_buf b; int res = _setjmp(b);... // hacker corrupts memory, making res //point to their own function and stack longjmp(b, 1); // CFG instrumentation will now // catch that longjmp is not // targeting a legal setjmp and fastfail } // Source code int test(int a) { return a % 2 != 0 ? 4 : 2; } // ASM without the new optimizer PROC and ecx, jge SHORT dec ecx or ecx, -2 inc ecx test ecx, ecx mov eax, 2 mov edx, 4 cmovne eax, edx ret 0 // ASM with the new optimizer PROC and ecx, 1 lea eax, DWORD PTR [rcx*2+2] ret 0

Build Throughput Faster builds (with improved linking) VS2015 Update 3 When opting for /debug:fastlink, 2-4x faster, e.g. Fable, Forza, Chrome, Bing Maps Standalone tool (mspdbcmf.exe) to generate FULL PDB for binary VS “15” On by default, further improves link times by 30% (over VS2015 U3) mspdbcmf.exe integrated as part of the Visual Studio build experience IncrediBuild extension Generates an improved build plan which breaks down false dependencies Intelligent dynamic resource management (up to 8 cores with the FREE extension) e.g. Qt from 942 to 844 seconds e.g. ACE from 392 to 282 seconds Build visualization and diagnostic tools to find build bottlenecks

AGENDA Compiler and Libraries: Status and Roadmap Tools (Visual Studio, Visual Studio Code) Workloads (Windows, Windows Store, Android, iOS, Linux, IoT, Games)

The Visual Studio family

VS2015 RTM Recap IntelliSense Single file browsing/IntelliSense Simplified template deduction Refactoring Rename, Extract function, Move definition, Convert to raw-string literal Code generation Create definition/declaration Implement pure virtuals Other Error List, Window Layout Debugging PerfTips, Integrated Memory & CPU views EnC x64 support, Breakpoints config, Exceptions window, natvis improvements Release Jul 2015 Update 1 Nov 2015 Update 2 Mar 2016 Update 3 Jun 2016

Visual Studio 2015 Update 3 (and Visual Studio “15”) IntelliSense New database format for scale Refactoring Change signature, Extract function Quick fixes Convert dot to arrow, Suggest missing #includes, Fully qualified name/use namespace Debugging More EnC, more Memory profiler, more natvis, Access Violations VS “15” only Run to Click Go-to (ctrl -, ) Exception helper and conditions when breaking on exception Improved Error List results Find All References and IntelliSense Memory and CPU profiler Extensions Bing developer assistant, Google Test Runner, Boost Test Runner

demo Visual Studio productivity

Visual Studio Code: C/C++ Extension Lightweight, keyboard focused Git integration Code Editing Go to definition, Peek definition, Switch header/source, Fuzzy auto-complete Code formatting (clang-format) Debugging Core-dump debugging, launch, attach, breakpoints (incl. conditional and function), stepping, threads, call stack, watch, GDB and MI commands Easily run, build, test, and run external tasks

demo Visual Studio Code

Visual Studio “15” continued Performance Auto-precompiled headers for IntelliSense perf (when no PCH) Memory usage during debugging significantly decreased E.g. debugging a specific problematic project down to 1.9G from… crashing Solution load dramatic improvements Open Folder CMake … Acquisition / Installation

demo Visual Studio “15” Open Folder, CMake

New Acquisition / Installation With VS “15”

AGENDA Compiler and Libraries: Status and Roadmap Tools (Visual Studio, Visual Studio Code) Workloads (Windows, Windows Store, Android, iOS, Linux, IoT, Games)

Windows, Windows Store Universal Windows Platform (UWP) New way to target Win10 Desktop, Mobile, Xbox, and HoloLens from a single binary Accelerated OpenGLES 1, 2 and 3 support through Angle OSS library C++/WinRT - a language-extension-free WinRT projection for C++ (experimental) Large game deployments to Xbox Bridges to Windows Store Centennial (from desktop) - Packaging your desktop apps in the Store Islandwood (from iOS) Share source code across Desktop, UWP, Android and iOS (and soon Linux)

Android and iOS Improvements and bug fixes for the edit-build-debug cycle iOS Easily import (and roundtrip) your Xcode project into Visual Studio Android New releases New Android API levels (23, 25) Android NDK x64 Android NDK R11c support Java language service and debugging Support for Android Gradle build system CppCon: Mobile App Development for Multiple Platforms with Visual C++

Linux Use Visual Studio with any Linux distro or Windows Subsystem for Linux Ships as an extension for VS2015, is a workload in VS “15” Remote system needs SSH, GDB, and GCC for compile Project templates today enable remote compile/debug IntelliSense supports GCC with standard Linux libraries out of the box Connect using user/password or private key Cross compilation is planned Resources Documentation: Issues, discussion:

demo Targeting Linux from Visual Studio

IoT Visual C++ for Linux Development works with IoT devices running Linux E.g. Raspberry Pi, Beaglebone, Edison We are looking at extending it to enable GCC MCU devices The Azure IoT SDK supports Linux and MCU devices Portable to very small devices Provides message processing and device management capabilities Any device with network capability can get messages to/from Azure Devices without network capability can communicate through gateways

Games Use the cloud to build, launch, and scale out your games Graphics debugger and profiler fully support DirectX12 with new features View resource history, View API and memory statistics, View a consolidated list of errors/warnings detected by the Direct3D debug layer, Frame Analysis for DirectX12, Improvements to GPU Usage Game engine partnerships Unity, Unreal, and Cocos

Games Use the cloud to build, launch, and scale out your games Graphics debugger and profiler fully support DirectX12 with new features View resource history, View API and memory statistics, View a consolidated list of errors/warnings detected by the Direct3D debug layer, Frame Analysis for DirectX12, Improvements to GPU Usage Game engine partnerships Unity, Unreal, and Cocos

AGENDA Compiler and Libraries: Status and Roadmap Tools (Visual Studio, Visual Studio Code) Workloads (Windows, Windows Store, Android, iOS, Linux, IoT, Games)

Want our help upgrading to VS2015 or VS “15”? Since announcing the 2015 Migration DevLab at //build, we ran several DevLabs, and as a result updated the MSDN Documentation We created a GitHub repo with a lot of resources to help you migrate Use this repo to explore solutions and submit error cases If even with the above you are still having migration issues, please reach out to organize a DevLab for your code (very limited slots available)

Summary Visual C++ toolset (compiler and libs) The obvious choice on Windows Visual Studio 2015 Update 3, Visual Studio “15” Most productive IDE for your editing, building, debugging Performance you can feel, Fast and easy workload installation, Open Folder Visual Studio Code Code editor redefined, optimized for editing and debugging your C/C++ code Any C++ developer, building any type of app No matter what platform you are targeting Microsoft We are listening and participating, tell us what you want to see next