This post was originally published at Visual Studio 2017 version 15.7 Preview 3
Today we released the third preview of the next update: Visual Studio 2017 version 15.7. The top highlights of this Preview include:
- Updates to Universal Windows Platform development
- C++ development improvements
- Significant updates in Xamarin and .NET Mobile Development
- Ability to configure installation locations
- Debugger support for authenticated Source Link
- Live Unit Testing improvements
- New tooling for migrating to NuGet PackageReference
- Connected Service improvements to deployment and Key Vault functionality
This preview builds upon the features that debuted in the Preview 2 and Preview 1 releases that occurred in March. As always, you can drill into the details of all of these features by exploring the Visual Studio 2017 version 15.7 Preview release notes. We appreciate your early adoption, engagement, and feedback as it helps us ship the most high-quality tools to everyone in the Visual Studio community.
We hope that you will install it, use it, and share your feedback with us. To acquire the Preview, you can either install it fresh from here, you can update the bits directly from the IDE, or if you have an Azure subscription, you can provision a virtual machine with this latest preview.
Universal Windows Platform Development
Latest Windows Insider SDK: With Visual Studio 2017 version 15.7 Preview 3, the latest Windows Insider Preview SDK (build 17133) is included as an optional component to the Universal Windows Platform development workload. You can choose to install this SDK with Visual Studio to start taking advantage of the latest Windows APIs and features.
New Features in Blend for the Updates to the XAML Designer: In the fall of last year, we brought some drastic changes to the XAML Designer for UWP developers targeting the Windows 10 Fall Creators Update. With these changes, we lost some of the features that our developers have grown to know and love. With Visual Studio 2017 version 15.7 Preview 3, we are proud to announce that two big features for Blend are back – Visual State Management tooling, and the Animation tooling with the Objects and Timeline pane! Now, all UWP developers can take advantage of these tools in Blend.
C++ Standards Conformance: This release includes many conformance improvements, including rewording inheriting constructors, declaring non-type template parameters with auto, std::launder(), and two-phase name lookup. In addition, the MSVC compiler toolset conforms almost fully with the C++17 Standard: when compiling with the /Zc:__cplusplus switch, the value of the __cplusplus macro reflects the correct Standard version numbers.
Unit Testing: You can now use CodeLens above each of your unit tests to Run, Debug, and view Test Status.
Code Analysis: We’ve added the /analyze:ruleset option to cl.exe for filtering down warnings in the C++ Code Analysis tools based on ruleset configuration. This results in a consistent experience between standalone invocations of the compiler and the IDE, and improves performance by running only the rules mentioned in ruleset.
Spectre Mitigations in MSVC: The Visual C++ Runtime now supports mitigations for the Spectre variant 1 vulnerability, and the toolset includes mitigated and non-mitigated versions of the DLLs. We’ve also enabled compiler support for Spectre mitigations in non-optimized builds (/Od).
Build Throughput: The /Zf switch is now enabled by default, which enables faster PDB generation when using multiple compilation processes.
CMake: The CMake Targets View provides an alternative way to view a CMake project’s source in the Solution Explorer; instead of a folder-based view, it organizes the code into individual CMake targets.
In addition, unknown macros that cause tag-parsing errors are now underlined with green squiggles, and source files (.cpp) belonging to CMake projects can now be built individually.
IntelliSense: Headers from Linux and Unix-like systems are now automatically downloaded for use by IntelliSense on Windows. These are also used to provide an enhanced IntelliSense experience for Linux native platform development.
For more C++ feature additions, please see the release notes.
Xamarin and .NET Mobile Development
Xamarin.Forms XAML Editing Improvements: Xamarin.Forms developers using Visual Studio 2017 version 15.7 will notice a vastly improved IntelliSense experience when editing XAML. The Xamarin.Forms XAML editing experience is now powered by the same engine that powers WPF and UWP. This brings many enhancements to developers, including improved matching, light bulb suggestions, code navigation, error checking, resource completion, and markup extension completion.
Modernized project templates: Whether you’re new or a seasoned Xamarin developer, project templates are an important part of the app building journey. We have centralized the cross platform project creation in a single place, modernized our iOS and Android native project templates and reduced the time it takes to create a new project.
Android Development Improvements: We have made several improvements to the Android development experience. We are now distributing the Android Oreo SDK (Android API level 27) and are shipping the Android emulators with Quick Boot enabled. We have modernized the designer’s property editor. Visual Studio will now detect scenarios where the project requires a different version of the Android SDK that is installed and will download in the background the required components.
Lastly, when you start a compilation, Visual Studio will boot and deploy the Xamarin runtime on your device while the compilation is taking place, thus reducing the time that that you have to wait to see your application show up. With our test application, on a fresh device, with no previous deployment, and including launching the Android emulator, we see the following performance gains:
Apple Platform Development Improvements: We’ve also made significant improvements to the iOS development experience. The iOS, Mac, tvOS and Watch applications now feature a fully static type system. This brings many benefits, such as smaller applications, faster application startup, and reduced memory usage. We have also introduced the [Weak] attribute for fields that make it simpler to write code that is garbage collection friendly in Apple platforms.
Lastly, the provisioning of iOS devices has historically been a chore, requiring multiple trips to the documentation. We have incorporated the same fastlane experience that we shipped on macOS and you can now provision your devices in seconds and keep your entitlements up to date with the click of a button.
The new and improved version of the Python debugger is now bundled with the Python extension and on by default, making it easier and faster for you to debug your Python code. For more information, refer to the Python debugger blog post that describes this feature.
New tooling for migrating to NuGet PackageReference: This release provides out of the box support for migrating existing projects based on packages.config to PackageReference. To get started, right-click on the References node in the Solution Explorer and select Migrate packages.config to PackageReference. The tool analyzes the installed NuGet packages, calculates the dependency graph, and categorizes them into top-level and transitive dependencies. It also provides warnings for potential package compatibility issues with PackageReference.
Starting with Visual Studio 2017 version 15.7 Preview 3, you can reduce the installation footprint on your system drive by directing the download cache, shared components, and some SDKs and tools to different locations. Because these pieces are shared among Visual Studio installations, you can only set the locations with your first installation, meaning that you can’t change them later. If you have a solid-state drive (SSD), we recommend that you install the Visual Studio core product on your SSD drive because this will make Visual Studio run significantly faster. For further details on what each of these locations mean, please refer to the preview release notes.
Source Link Authentication: The debugger now supports authenticated Source Link requests for Visual Studio Team Services and private GitHub repositories. When debugging code that was built on another computer, such as a library in a NuGet package, Source Link enables the debugger to show correctly matching source code by downloading it from the internet. To build your own code with Source Link enabled see https://aka.ms/SourceLinkSpec.
For VSTS repositories, authentication is provided by signing into Visual Studio. For GitHub, we leverage credentials from the GitHub Extension for Visual Studio and the Git Credential Manager for Windows. If Source Link fails due to an authentication error a new “Source Link Authentication Failed” page is shown to explain the issue. This page allows the user to login to VSTS or GitHub and retry the Source Link request.
Live Unit Testing
Live Unit Testing has added support for new project features including embedded pdbs and pdbs specifying /deterministic. Live Unit Testing can also now support projects that use reference assemblies.
Deployment to Azure App Services on Linux: Visual Studio now offers you the ability to deploy non-containerized applications to Azure App Service on Linux in addition to our previous support for apps built with Docker. To publish your application to App Service and run in Linux, from the Publish dialog choose “App Service Linux” and select “Create new”. To continue to publish a containerized application to App Service for Containers using Linux, choose “Create new App Service for Containers”.
Key Vault Connected Service: Azure Key Vault provides a secure location to safeguard keys and other secrets used by cloud apps. Securing your project’s secrets is now easier than ever with the ability to create and add a Key Vault to your project as a Connected Service. Doing so will automatically add configuration, add the required NuGet packages to your project, and enable you to access secrets from the Key Vault in your source code. Once the Key Vault has been added, you will be able to manage secrets and permissions through the Azure portal. This is available for both ASP.NET and ASP.NET Core applications.
Visual Studio for Mac version 7.5 Preview 2
Try out the Preview today!
If you’re not familiar with Visual Studio Previews, take a moment to read the Visual Studio 2017 Release Rhythm. Remember that Visual Studio 2017 Previews can be installed side-by-side with other versions of Visual Studio and other installs of Visual Studio 2017 without adversely affecting either your machine or your productivity. Previews provide an opportunity for you to receive fixes faster and try out upcoming functionality before they become mainstream. Similarly, the Previews enable the Visual Studio engineering team to validate usage, incorporate suggestions, and detect flaws earlier in the development process. We are highly responsive to feedback coming in through the Previews and look forward to hearing from you.
Please get the Visual Studio Preview today, exercise your favorite workloads, and tell us what you think. If you have an Azure subscription, you can provision a virtual machine of this preview. You can report issues to us via the Report a Problem tool in Visual Studio or you can share a suggestion on UserVoice. You’ll be able to track your issues in the Visual Studio Developer Community where you can ask questions and find answers. You can also engage with us and other Visual Studio developers through our Visual Studio conversation in the Gitter community (requires GitHub account). Thank you for using the Visual Studio Previews.
|Christine Ruana Principal Program Manager, Visual Studio
Christine is on the Visual Studio release engineering team and is responsible for making Visual Studio releases available to our customers around the world.
This post was originally published at Visual Studio 2017 version 15.7 Preview 3