Quantcast
Channel: Visual Studio Blog
Viewing all 1039 articles
Browse latest View live

Visual Studio 2017 version 15.9 Preview 3

$
0
0

Today, we are releasing the third preview of Visual Studio 2017 version 15.9. You can download it here and share your feedback with our engineering teams. This release includes ARM64 support in UWP apps as well as improvements to Xamarin and TypeScript. Continue reading below for an overview the fixes and new features. If you’d like to see the full list, check out the release notes for more details.

ARM64 Support for UWP Applications

You can now build ARM64 UWP applications for all languages. If you create a new application, the ARM64 configuration will be included in the project by default. For existing applications, you will add an ARM64 solution configuration (copied from the ARM configuration) using the configuration manager. Your UWP projects will automatically build for the correct architecture when selecting that configuration.

Note: For C# and VB UWP applications, the Minimum Version of your application must be set to the Fall Creators Update (build 16299) or higher to build for ARM64. In addition, C# and VB applications must reference the latest .NET Core for Universal Windows Platform preview NuGet package (6.2.0 preview) or higher to build for ARM64. Only .NET Native is supported for building ARM64 UWP applications.

Visual Studio Tools for Xamarin

Visual Studio Tools for Xamarin now supports Xcode 10, which enables you to build and debug apps for iOS 12, tvOS 12, and watchOS 5. For example, iOS 12 adds Siri Shortcuts, allowing all types of apps to expose their functionality to Siri. Siri then learns when certain app-based tasks are most relevant to the user and uses this knowledge to suggest potential actions via shortcuts. An example is provided in the GIF below.

See how to get ready for iOS 12 and our introduction to iOS 12 for more details on the new features available.

Xamarin.Android Build Performance

This release also brings Xamarin.Android 9.1, in which we have included initial build performance improvements. For a further breakdown of these improvements between releases, see our Xamarin.Android 15.8 vs. 15.9 build performance comparison for details.

C++ Standard Library Charconv Support for Floats

We’ve implemented the shortest round-trip decimal overloads of floating-point to_chars() in C++17’s charconv header. For scientific notation, it is approximately 10 times (not percent) as fast as sprintf_s() “%.8e” for floats, and 30 times (not percent) as fast as sprintf_s() “%.16e” for doubles. This uses Ulf Adams’ new algorithm, Ryu.

JavaScript and TypeScript Project References

We now support project references, which provide functionality for splitting a large TypeScript project into separate builds that reference each other. We have additionally rolled out the ability to easily update your project to the latest TypeScript 3.0 with our file renaming feature that also integrates project references. Now, if you rename your JavaScript or TypeScript file, the language service offers to fix references across your project.

Try out the Preview

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 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.

Angel Zhou Program Manager, Visual Studio

Angel is a program manager on the Visual Studio release engineering team, which is responsible for making Visual Studio releases available to our customers around the world.


Visual Studio 2017 and Visual Studio for Mac Support Updates

$
0
0

As we work to bring you Visual Studio 2019, our team will release the final update to Visual Studio 2017, version 15.9, in the coming months; you can try a preview of version 15.9 here. We’d love your feedback on this release as we finish it up; use Report-a-Problem to submit issues.

Following our standard Visual Studio support policy, Visual Studio 2017 version 15.9 will be designated as the “Service Pack”. Once version 15.9 ships, customers still using version 15.0.x (RTM) will have one year to update to version 15.9 to remain in a supported state. (Customers using versions 15.1 through 15.8 must update to the latest version immediately to remain supported.) After January 14, 2020, all support calls, servicing, and security fixes will require a minimum installed version of 15.9 for the duration of the ten-year support lifecycle.

You can install the most up-to-date version of Visual Studio 2017 by using the Notifications hub, the Visual Studio Installer, or from visualstudio.microsoft.com/downloads.

We also plan to release Visual Studio 2017 for Mac version 7.7 in the coming months, and a final significant update to Visual Studio 2017 for Mac (version 7.8) in the first half of 2019, focused primarily on quality improvements. Visual Studio for Mac continues to follow the Microsoft Modern Lifecycle Policy, and Visual Studio 2017 for Mac version 7.8 will be superseded by Visual Studio 2019 for Mac version 8.0 once released. For instructions on updating, see Updating Visual Studio for Mac.

More information is available on the Product Lifecycle and Servicing Information for Visual Studio and Team Foundation Server page and the Servicing for Visual Studio for Mac page.

Paul Chapman, Senior Program Manager

Paul is a program manager on the Visual Studio release engineering team, which is responsible for making Visual Studio releases available to our customers around the world.

Introducing ‘Suggest a Feature’ in Developer Community

$
0
0

Customer feedback is a critical input to help us improve Visual Studio. Up until two years ago, the Visual Studio customer feedback system left room for improvement – customers could use the “send a smile” feature in Visual Studio, but this would result in only coarse-grained feedback such as “I like this” or “I don’t like this.” The feedback we got through this UI then went into a database our team accessed, but didn’t leave an easy way for customers to see the feedback that other customers were giving so they could say, “I have that problem too!” More than that, the back-end system that gathered feedback was separate from the engineering systems we use for tracking bugs and features, crash reports, hang reports, and telemetry. Without a unified system on the backend, identifying the most impactful issues could be an error-prone job.

In Visual Studio 2017, we introduced a new system for reporting issues. From within Visual Studio, users can Report a Problem; the issue is tracked in a public system at https://developercommunity.visualstudio.com, and the public issue is integrated directly into our engineering system. Thus, a bug on Developer Community is a bug in our Azure DevOps work item database, and votes from the community would give items additional weight.

Since introducing this system, we have received over 70,000 issues from more than 24,000 customers. We have resolved over 13,000 of them, and in over 5,000 instances of issues customers have unblocked themselves quickly using the solutions and workarounds contributed by Microsoft and the larger community of developers.

Until now, we’ve focused the system on issue tracking, but that’s left a gap in our understanding of what customers want from us and developers need: the ability to ask for features. Today, we’re announcing that the same system that we use for reporting issues will work for feature requests in one convenient place.  If you have an idea or a request for a feature, you can now use the new Suggest a Feature button (shown below) on Developer Community and make your suggestions.

You can also browse suggestions from other developers and Vote for your favorite features to help us understand the impact to the community.

If you are wondering how feature suggestions are considered for inclusion on our product roadmap, please see our suggestions guide that clarifies the states used to track progress and what each state represents in the journey.

As part of this work, we will transition from UserVoice as the primary means for our customers to request features. The reason we’re moving from UserVoice is very similar to the reason we moved away from the old “send a smile” system: we want customer feature requests to be directly integrated into our core engineering system so we have complete line of sight into the feedback customers are giving us.

Moving off UserVoice is a big job: It tracks 32,000 feature requests and more than 24,000 points of  feedback. In unifying our system under Developer Community, these massive number of requests will benefit from a strong systems to help us analyze and track these important requests.

Over the coming months, we’ll be migrating many existing UserVoice items from UserVoice, starting with a few hundred, although tems with relatively lower vote counts and items that are exceptionally old may not move over. Please see these frequently asked questions for more details on how UserVoice votes and comments are being handled.  I recognize that may cause some frustration and I apologize in advance.  I’d simply ask you to sign into Visual Studio or go on the web and submit the item again.

Thank you!

Suggest a Feature on Developer Community is aimed at providing a single convenient place for all your Visual Studio feedback, improve your engagement with product teams and have a greater impact on Visual Studio family of products.  We are looking forward to hearing your suggestions.  To reiterate in closing, please visit Developer Community and check out the new experience.  We also encourage you to learn more about suggestions to get the best out of it.  Thank you for the valuable feedback you provide in Visual Studio and participation in Developer Community!

John Montgomery, Director of Program Management for Visual Studio
@JohnMont

John is responsible for product design and customer success for all of Visual Studio, C++, C#, VB, JavaScript, and .NET. John has been at Microsoft for 17 years, working in developer technologies the whole time.

Simplify extension development with PackageReference and the VSSDK meta package

$
0
0

Visual Studio 2017 version 15.8 made it possible to use the PackageReference syntax to reference NuGet packages in Visual Studio Extensibility (VSIX) projects. This makes it much simpler to reason about NuGet packages and opens the door for having a complete meta package containing the entire VSSDK.

Before using PackageReference, here’s what the References node looked like in a typical VSIX project:

It contained a lot of references to Microsoft.VisualStudio.* packages. Those are the ones we call VSSDK packages because they each make up a piece of the entire public API of Visual Studio.

Migrate to PackageReference

First, we must migrate our VSIX project to use PackageReference. That is described in the Migrate from packages.config to PackageReference documentation. It’s quick and easy.

Once that is done it is time to get rid of all VSSDK packages and installing the meta package.

Installing the VSSDK meta package

The meta package is a single NuGet package that does nothing but reference all the NuGet packages that make up the VSSDK. So, it references all relevant Microsoft.VisualStudio.* packages and is versioned to match major and minor version of Visual Studio.

For instance, if your extension targets Visual Studio 2015, then you need version 14.0 of the VSSDK meta package. If your extension targets Visual Studio 2017 version 15.6, then install the 15.6 version of the VSSDK meta package.

Before installing the meta package, make sure to uninstall all the Microsoft.VisualStudio.*, VsLangProj* and EnvDTE* packages, as well as stdole, Newtonsoft.Json, from your project. After that is done, install the Madskristensen.VisualStudio.SDK package matching the minimum version of Visual Studio your extension supports. It supports all the way back to Visual Studio 2015 version 14.0.

After the meta package is installed, the References node looks a lot simpler:

You can read more about the VSSDK meta package on GitHub.

Known limitations

To use PackageReference and the VSSDK meta package, make sure that:

  1. The VSIX project targets .NET Framework 4.6 or higher
  2. You are using Visual Studio 2017 version 15.8 or higher
  3. You include search for pre-release packages since it is in beta

Try it today

The VSSDK meta package is right now a prototype that we hope to make default in Visual Studio 2019. I’m personally dogfooding it in about 10 production extensions, but we need more extensions to use it to ensure it contains the right dependencies for the various versions of Visual Studio. When it has been properly tested and we’re confident that it will work, it will be renamed to Microsoft.VisualStudio.SDK or similar.

So please try it out and let us know how it works for you.

Mads Kristensen, Senior Program Manager
@mkristensen

Mads Kristensen is a senior program manager on the Visual Studio Extensibility team. He is passionate about extension authoring, and over the years, he’s written some of the most popular ones with millions of downloads.

Microsoft’s Developer Blogs are Getting an Update

$
0
0

In the coming days, we’ll be moving our developer blogs to a new platform with a modern, clean design and powerful features that will make it easy for you to discover and share great content. This week, you’ll see the Visual Studio, IoTDev, and Premier Developer blogs move to a new URL while additional developer blogs will transition over the coming weeks.  You’ll continue to receive all the information and news from our teams, including access to all past posts. Your RSS feeds will continue to seamlessly deliver posts and any of your bookmarked links will re-direct to the new URL location.

We’d love your feedback

Our most inspirational ideas have come from this community and we want to make sure our developer blogs are exactly what you need. If you have immediate questions, check our FAQ below. If you don’t see your issue or question, please submit a bug report through our Feedback button.

Share your thoughts about the current blog design and content by taking our Microsoft Developer Blogs survey and telling us what you think! We’d also love your suggestions for future topics that our authors could write about. Please use the Feedback button docked to the right on the blogs (as shown above) to share what kinds of information, tutorials, features, or anything you’d like to see covered in a future blog post.

Frequently Asked Questions

To see the latest questions and known issues, please see our Developer Blogs FAQ, which includes any known issues and will be updated in real time with your feedback. If you have a question, idea, or concern that isn’t listed, please click on the feedback button and tell us about it.

I have saved/bookmarked the URL to this blog. Will I need to change this?

No need to change your bookmark. All existing URLs will auto-redirect to the new site. However, if you discover a broken link, please report it through our feedback button.

Will my RSS feed still work with my feed reader to get all the latest posts?

Your RSS feed will continue to work through your current set-up. If you encounter any issues with your RSS feed, please report it through our feedback button with details about your feed reader.

Which blogs are moving?

This migration involves the majority of our Microsoft developer blogs so expect to see changes in our Visual Studio, IoTDev, and Premier Developer blogs this week. The rest will be migrated in waves over the next few weeks, starting with our most popular blogs.

See additional questions on our Developer Blogs FAQ.

What’s Next for Visual Studio for Mac

$
0
0

Since it was released a little more than a year ago, Visual Studio 2017 for Mac has grown from being an IDE primarily focused on mobile application development using Xamarin to one that includes support for all major .NET cross-platform workloads including Xamarin, Unity, and .NET Core. Our aspiration with Visual Studio for Mac is to bring the Visual Studio experiences that developers have come to know and love on Windows to the MacOS and to provide an excellent IDE experience for all .NET cross-platform developers.

Over the past year, we added several new capabilities to Visual Studio for Mac including .NET Core 2; richer language services for editing JavaScript, TypeScript, and Razor pages; Azure Functions; and the ability to deploy and debug .NET Core apps inside Docker containers. At the same time, we have continued to improve Xamarin mobile development inside Visual Studio for Mac by adding same-day support for the latest iOS and Android SDKs, improving the visual designers and streamlining the emulator and SDK acquisition experiences. And we have updated the Unity game development experience to reduce launch times of Visual Studio for Mac when working together with the Unity IDE.  Finally, we have been investing heavily in fundamentals such as customer feedback via the Report-a-Problem tool, accessibility improvements, and more regular updates of components that we share with the broader .NET ecosystem such as the .NET compiler service (“Roslyn”), and the .NET Core SDKs. We believe that these changes will allow us to significantly accelerate delivery of new experiences in the near future.

While we will continue to make improvements to Visual Studio 2017 for Mac into early next year, we also want to start talking about what’s next: Visual Studio 2019 for Mac. Today, we are publishing a roadmap for Visual Studio for Mac, and in this blog post, I wanted to write about some of the major themes of feedback we are hearing and our plans to address them as described in our roadmap.

Improving the performance and reliability of the code editor

Improving the typing performance and reliability is our single biggest focus area for Visual Studio 2019 for Mac. We plan to replace most of the internals of the Visual Studio for Mac editor with those from Visual Studio. Combined with the work to improve our integration of various language services, our aspiration is to bring similar levels of editor productivity from Visual Studio to Visual Studio for Mac. Finally, as a result of this work, we will also be able to address a top request from users to add Right-To-Left (RTL) support to our editor.

Supporting Team Foundation Version Control

Including support for Team Foundation Server, with both Team Foundation Version Control (TFVC) and Git as the source control mechanisms, has been one of the top requested experiences on the Mac. While we currently have an extension available for Visual Studio 2017 for Mac that adds support for TFVC, we will integrate it into the core of the source control experience in Visual Studio 2019 for Mac.

Increased productivity when working with your projects

The C# editor in Visual Studio for Mac will be built on top of the same Roslyn backend used by Visual Studio on Windows and will see continuous improvements. In Visual Studio 2017 for Mac (version 7.7), we will enable the Roslyn-powered brace completion and indentation engine which helps improve your efficiency and productivity while writing C# code. We’re also making our quick fixes and code action more discoverable by introducing a light-bulb experience. With the light bulb, you’ll see recommendations highlighted inline in the editor as you code, with quick keyboard actions to preview and apply the recommendations. In the Visual Studio 2019 for Mac release, we’ll also dramatically reduce the time it takes you to connect to your source code and begin working with it in the product, by introducing a streamlined “open from version control” dialog with a brand-new Git-focused workflow.

.NET Core and ASP.NET Core support

In future updates to Visual Studio 2017 for Mac, we will add support for .NET Core 2.2. We will add the ability to publish ASP.NET Core projects to a folder. We will also add support for Azure Functions 2.0, as well as update the New Functions Project dialog to support updating to the latest version of Azure Functions tooling and templates. In Visual Studio 2019 for Mac, we will add support for .NET Core 3.0 when it becomes available in 2019. We will add more ASP.NET Core templates and template options to Visual Studio for Mac and improve the Azure publishing options. Finally, building upon the code editor changes described above, we will improve all our language services supporting ASP.NET Core development including Razor, JavaScript and TypeScript.

Xamarin support

In addition to continuing to make improvements to the Xamarin platform itself, we will focus on improving Android build performance and improving the reliability of deploying iOS and Android apps. We will make it easy to acquire the Android emulators from within the Visual Studio for Mac IDE. Finally, we aim to make further improvements in the Xamarin.Forms Previewer and the Xamarin.Android Designer as well as the XAML language service for Xamarin Forms.

Unity support

We continue to invest in improving the experience of game developers using Unity to write and debug cross platform games as well as 2D and 3D content using Visual Studio for Mac. Unity now supports a .NET 4.7 and .NET Standard 2.0 profile, and we’re making sure that Visual Studio for Mac works out of the box to support those scenarios. Unity 2018.3 ships with Roslyn, the same C# compiler that is used with Visual Studio for Mac, and we’re enabling this for your IDE. In addition to this, we’ll be bringing our fine-tuned Unity debugger from the Visual Studio Tools for Unity to Visual Studio for Mac for a more reliable and faster Unity debugging experience.

Help us shape Visual Studio 2019 for Mac!

By supporting installation of both versions of the product side-by-side, we’ll make it easy for you to try out the Visual Studio 2019 for Mac preview releases while we are still also working on the stable Visual Studio 2017 for Mac releases in parallel.

We don’t have preview bits to share with you just yet, but we wanted to share our plans early so you can help us shape the product with your feedback that you can share through our Developer Community website.  We will update our roadmap for Visual Studio for Mac once a quarter to reflect any significant changes. We will also post an update to our roadmap for Visual Studio soon.

Unni Ravindranathan, Principal Program Manager

Unni currently leads the Visual Studio for Mac Program Management team. Ever since joining Visual Studio as an Intern many years ago, he has focused primarily on improving the productivity of developers buildings apps for various devices and platform, including tools for building Windows apps, XAML, Blend, and our NuGet service.

Visual Studio Roadmap Updates and Visual Studio 2019 Information

$
0
0

Yesterday, we covered What’s next for Visual Studio for Mac, and today we’ve updated our Visual Studio Roadmap so you can see the latest news about what we’re working on. We’re particularly excited to share this update since it includes information about the first preview of Visual Studio 2019, which we will make available by the end of this calendar year. We plan to have a generally available (GA) version of Visual Studio 2019 in the first half of 2019.

Be sure to check out the full roadmap for all the updates, but some notable improvements are:  

  • A better performing and more reliable debugger, moving to an out-of-process 64-bit process.
  • Improved search accuracy for menus, commands, options, and installable components.
  • Visual Studio tooling for Windows Forms and WPF development on .NET Core 3.

As always, we are committed to making Visual Studio a great development environment: faster, more reliable, more productive for individuals and teams, and easier to get started with developing your code. Please continue to share your feedback with us so we can make the best tools for your development. You can send us your suggestions, ideas, and concerns through our Developer Community portal.

We will keep updating the roadmap as we deliver Visual Studio 2019 features iteratively. To try out the newest features and fixes, keep an eye on the Visual Studio Preview page and on this blog for announcements about the latest previews.

John Montgomery, Director of Program Management for Visual Studio
@JohnMont

John is responsible for product design and customer success for all of Visual Studio, C++, C#, VB, JavaScript, and .NET. John has been at Microsoft for 17 years, working in developer technologies the whole time.

A preview of UX and UI changes in Visual Studio 2019

$
0
0

Over the years, we’ve learned that sharing the evolution of Visual Studio, with you – our users – early and often helps us to deliver the best possible experience for our community. We’re excited to share today that, as part of the development of Visual Studio 2019, we’ve been looking to refresh our theme, update our product icon and splash screens, and help you get to your code faster. I’d like to walk you through our thinking behind the changes and show off the resulting user experience that you’ll encounter every day. By leaving a comment below or suggesting a feature (or reporting a bug!) in Developer Community, you have a chance to provide input into the design of the product, early in the process.

Updating our product icon

Visual Studio 2017 icon (left) and the new Visual Studio 2019 icon (right)

Visual Studio 2017 icon (left) and the new Visual Studio 2019 icon (right)

The first change you might notice is the refresh of our product and preview icons. We work on improving our icons for each release of Visual Studio so that you can quickly spot which version of Visual Studio you’re opening and using. We caught some usability issues around the style of the icon in the early stages of releasing Visual Studio 2017 and we’re focused on addressing these issues for Visual Studio 2019.

One thing that came up was that the current icon’s flat style rendered it almost invisible against a background with a similar color. By adopting the Fluent Design System approach to depth, lighting, and materials, we’ve visually enhanced the icon so that it’s much more visible against a variety of backgrounds.

The new Visual Studio 2019 icon in the taskbar and start menu

The new Visual Studio 2019 icon in the taskbar and start menu

We’re always learning about new situations and environments where the Visual Studio logo might appear. We keep improving its legibility, reducing the chance that it will get lost on a similar-colored background.

The Visual Studio 2019 release icon (left) next to the Visual Studio 2019 Preview icon (right)

The Visual Studio 2019 release icon (left) next to the Visual Studio 2019 Preview icon (right)

Another challenge we faced was the difference between a Preview and final RTM version of Visual Studio. Our product icon is the obvious way for us to be able to communicate this difference, but this proved difficult with the Visual Studio 2017 icon set. For Visual Studio 2017, the icon was designed to be a part of the large Visual Studio Family. The method we used was to align all our icons with a consistent “ribbon” down the right side. However, this left less space for the identifying mark that distinguished the apps from one another.

For Visual Studio 2019, we started by removing any extra parts of the icon. We wanted to focus on the most recognizable element of the Visual Studio logo: namely, the infinity loop

We increased the size of the infinity loop, which gave us more room and opportunity to show the difference between the Preview and Release icons. We’ve also taken a bolder approach to how we represent the Preview. By breaking the icon shape in a few places, we’ve maintained the overall shape of the Visual Studio icon. But we’re showing a distinct and accessible difference at the same time, suggesting a complete (if not production-ready) preview.

We’re working on a similar approach for the new Visual Studio for Mac icon that will debut in forthcoming Previews.

Easier to launch your code

start window for visual studio for mac (left) and visual studio (right)

start window for Visual Studio for Mac (left) and Visual Studio (right)

Through research and observation, we identified opportunities to simplify the choices that you must make during the most crucial steps of getting started with Visual Studio. We realized we needed to remove what we call “off-ramps” from the experience and provide you with the best paths forward to your code.

Whether you’re new to Visual Studio or a seasoned Visual Studio developer, the new start window gives you rapid access to the most common ways that developers access their code: cloning or checking out code, opening a project or solution, opening a local folder on PC, and creating a new project.

We know how important the list of recent projects and folders from the current IDE Start Page in Visual Studio 2017 is for you (more than 90 percent of you who use the Start Page also use the recent project lists), so we made sure to maintain its position as a focal point in the experience.

You’ll also find a new, streamlined, Git-first workflow that lets you clone public Git repos with just a few clicks.

Finally, we also reimagined the experience of creating a new project, with a new list of the most popular templates and improved search and filter capabilities. With the new design and step-by-step approach for selecting a template and configuring it, we believe that we have made it less overwhelming so that you can focus on a single decision at a time. You will also be able to explore other languages, platforms, and project types that Visual Studio supports and eventually be able to install them right from there.

A refreshed blue theme

The refreshed blue theme (left) next to the current blue theme (right)

The refreshed blue theme (left) next to the current blue theme (right)

One of the most noticeable visual impacts you may see when you run Visual Studio 2019 is our updated blue theme. More than half of you use the blue theme, but it’s looked the same since Visual studio 2012. We focused our changes around a desire to declutter the Visual Studio UI. By softening the edges around our icon buttons and toolbars, as well as tool-windows, we can bring forward the focus of what you’re working on. We’ve made small changes across the whole UI, which add up to a cleaner interface while still meeting our accessibility standards. We started with the blue theme so that we can get these updates in front of you, learn from your feedback, and then apply it across our other themes.

Productivity at your fingertips

The current commanding space (top) and the simplified version for Visual Studio 2019 (bottom)

The current commanding space (top) and the simplified version for Visual Studio 2019 (bottom)

Looking for opportunities to broaden the focus of the code and remove clutter, we started with the vertical space. By removing the title bar, we took the opportunity to reassess the uppermost layout of Visual Studio without drastically changing your workflow. We have moved the search UI to increase discoverability. With the upcoming preview releases and updates, you’ll find that search in Visual Studio 2019 is more powerful and accurate.

We now have a focused location for team collaboration using Live Share in the title bar. Grouped together close to the user account signed in to Visual Studio, it’s now easier to see who you’re collaborating with. This is built into all editions of Visual Studio. We’ve also taken the time to clean up the default iconography to align it better with Windows.

These small changes allow us to reclaim vital space in the IDE … allowing for larger tool windows, more space for your code, and faster access … to the tools and commands that matter to you.

Noticeable notifications

Early next year, one of our Preview releases will include an update to the notifications UI. Through conversations with you, we’ve heard that the current notifications location, icon, and states have been unclear to you for some time. To tackle this, we’re moving the entry point for notifications to the status bar at the bottom of the IDE. This new position avoids disruptive UI breaking your concentration, but sets us up for displaying messages from a variety of different services (from the status of a Live Share to a Pull Request comment) in the future. We’re also updating the icon from a flag to a bell, based on your comments.

An ongoing conversation

We’re excited to share these changes that we’ve been working on with you, and we’d love to hear your thoughts about our new designs, so please leave a comment below. You can also suggest a feature or file a bug in our Developer Community. We want to make Visual Studio better with every update and your feedback is critical.

Jamie Young, Group Principal Design Manager
@jamiedyoung
Jamie runs the Design Team in the Developer Tools Division of Microsoft. He has been designing all sorts of things for over 15 years and has built up an unhealthy interest in complex problems, which sits well with his current job.

AI-assisted coding comes to Java with Visual Studio IntelliCode

$
0
0

Visual Studio IntelliCode is a set of AI-assisted capabilities that aims to improve developer productivity with features like AI-assisted IntelliSense and statement completion, code formatting, and style rule inference. During SpringOne 2018, we announced that we will bring those productivity boosters to Java developers and now we’re happy to introduce AI-assisted IntelliSense to Java in the IntelliCode Extension for Visual Studio Code.

IntelliCode saves you time by putting the most relevant suggestions at the top of your completion list. IntelliCode recommendations are based on thousands of open source projects on GitHub, each with over 100 stars, so it’s trained on most popular usage patterns and practices. When combined with the context of your code, the completion list is tailored to promote those practices.

Check out the animation below to see IntelliCode for Java in action.

IntelliCode for Java

You may have noticed that IntelliCode provides most relevant IntelliSense recommendations based on your current code context, especially within conditional blocks. IntelliCode works well with popular Java libraries and frameworks like Java SE platform and Spring framework. It will help you whether you are doing monolithic or modern microservices architecture.

Exploring and managing your Java project

You speak, we listen. Some of the most frequent feedback requests we received from developers on Visual Studio Code are the lack of a package view, dependency management and project creation. Thus, we’ve built a new extension to provide those features – Java Dependencies.

See below for package and dependency view.

Package and Dependency Viewer

And create a simple Java project.

Create Java project

Spring Tool 4 available for Visual Studio Code

During SpringOne 2018, Pivotal announced the release of their brand new Spring Tool 4 built on top of the Language Server Protocol developed by Visual Studio Code team, and it’s now available for Visual Studio Code, Eclipse and Atom. Pivotal and Microsoft presented sessions to promote that during both SpringOne and Oracle Code One.

Along with Spring Initializr and Spring Boot Dashboard, now you can easily create new Spring Boot applications, navigate your source code, have smart code editing, see runtime live information in your editor and manage your running application, all within Visual Studio Code.

Spring Tools 4

View the recording of Hacking Spring Boot Applications Using Visual Studio Code to learn more.

More improvements for Java in Visual Studio Code

There’s also lots of additional new features added to our Java on Visual Studio Code extension lineup, including

Debugger for Java

  1. Use code lens to run Java program in a much simpler way.
  2. Add support for Logpoints.
  3. Add a troubleshooting page for common errors.
  4. Support starting without debugging.
  5. Add new user settings java.debug.settings.enableRunDebugCodeLens to enable/disable Run|Debug Code Lenses on main methods #464 (Thank you Thad House!)
  6. Add Italian translation for extension configuration #463 (Thank you Julien Russo!)

Tomcat

  1. Support right click on exploded WAR folder to run it directory Tomcat Server
  2. Support right click on exploded WAR folder to debug it directory on Tomcat Server
  3. Add command “Generate WAR Package from Current Folder”

Maven

  1. Supported to fast re-run maven command from history. Added entry for historical commands in context menu.
  2. Supported to trigger maven command from command palette.
  3. Supported to hide Maven explorer view by default.
  4. Started to use a separate terminal for each root folder.
  5. Supported to update explorer automatically when workspace folders change.

With the help from Language Support for Java by Red Hat, we now have better support for newer versions of Java (9, 10, and 11), better integrations with the editor (outline, go to implementation), more code actions (convert var to type and vice versa, convert to lambda expression) and various other enhancements.

Provide feedback

Your feedback and suggestions are especially important to us and will help shape our products in future. Please help us by taking this survey to share your thoughts!

Try it out

Please don’t hesitate to have a try on using Visual Studio Code for your Java development and let us know your feelings! Visual Studio Code is a lightweight and performant code editor with great Java support especially for building microservices.

Install the Java Extension Pack which including Language Support for Java™ by Red Hat, Debugger for Java, Maven and Java Test Runner.

Xiaokai He, Program Manager
@XiaokaiHeXiaokai is a program manager working on Java tools and services. He’s currently focusing on making Visual Studio Code great for Java developers, as well as supporting Java in various of Azure services.

Q# Advent Calendar 2018

$
0
0

The F# and C# communities have blogging events called Advent Calendars (F#, C#), in which every day in December one awesome community member publishes a blog post about the language. I think it’s an amazing way to bid farewell to the old year and to celebrate the new one, and Q# needs one too!

(I asked Sergey Tihon for permission)

So, let’s write some Q# blog posts!

The rules are simple:

  1. Reserve a slot by leaving a comment on this post. The slots are assigned on the first come, first serve basis. You do not have to announce the topic of your blog post until you’re ready to publish it, but we’d really love to hear it beforehand!
  2. Prepare a blog post (in English) about Q#, learning Q#, teaching Q#, using Q# for research, tools for working with Q#… You got the idea.
  3. Publish your blog post on your assigned date. Don’t forget to link back to the Q# Advent Calendar from your post, so that your readers can find the entire advent.
  4. Leave the link to your blog post in a comment to this post, and we’ll add it to the calendar. If you share a link to your post on Twitter, use hashtags #qsharp and #QsAdvent.

We are pursuing publishing a compendium of all of the posts to the arXiv, the standard repository for work on quantum computing.
If you would like to have your post included, please make sure that it is published under a Creative Commons CC-BY license.

Let’s start with 24 slots, December 1st through December 24th, and if we have more volunteers than that we’ll add extra slots. We have a couple of blogs by our team members in store, but we’ll keep those flexible to fill the slots which end up unclaimed.

Thanks to everybody who will participate!

Useful Links

Mariia Mykhailova, Senior Software Engineer, Quantum
@tcnickolas

Mariia Mykhailova is a software engineer at the Quantum Architectures and Computation group at Microsoft. She focuses on developer outreach and education work for the Microsoft Quantum Development Kit. In her spare time she writes problems for programming competitions and creates puzzles.

Why do we need Q#?

$
0
0

You may be familiar with the Microsoft Quantum blog, which shares general news about our quantum computing program and about quantum computing in general. This blog is its developer- and community-focused partner. It will host technical posts, deep dives into the language and libraries, and tutorials. There will also be developer event announcements and recaps, new release information, and the like.

Why We Wrote Q#

tl;dr: Because we want to write algorithms, not circuits.

History and Requirements

Q# grew out of a project to build a follow-on to LIQUi|〉 that would be oriented towards writing, compiling, and executing algorithms on both short-term small-scale “NISQ” and eventual large-scale quantum computers. While supporting simulation is important in the short term as the primary available execution platform, and even in the long term as an aid for debugging, the goal of the project is execution on quantum hardware, not simulation. In addition, we wanted to support scalability of development as well as of execution; that is, the project should allow productive development of large numbers of complex applications, not just one or two simple canned algorithms.

To meet these goals, we came up with the following requirements for the language, compiler, and runtime:

  1. Algorithms must be expressed in terms of abstract qubits, rather than physical qubits. For large numbers of qubits, the compiler and runtime should manage the mapping from program qubits to logical (error-corrected) qubits, and then eventually to physical qubits. Doing this by hand becomes unmanageably complicated for any non-trivial algorithm. The compiler and runtime should also be responsible for selecting and implementing the error correction and fault tolerance approach.
  2. Algorithms need to allow integrated quantum and classical computation. In particular, classical flow control based on quantum measurement outcomes must be supported. This is required to support quantum patterns such as repeat-until-success and
    adaptive phase estimation.
  3. Higher-order protocols such as phase estimation and oblivious amplitude amplification must be expressible. A common pattern in quantum computing is “meta-algorithms” such as these, which operate on other operations rather than on qubits. It is necessary for development scalability to allow such algorithms to be expressed abstractly and used with the appropriate input algorithms.
  4. Higher-order transformations such as taking the adjoint of an operation must be natively expressible. There are two common ways to derive a new operation from an existing one in quantum computing: taking the adjoint of the operation and controlling the operation with a qubit or multiple qubits. To support writing higher-level protocols cleanly, there should be a way to express that the adjoint or controlled version of an operation should be invoked. It greatly aids development scalability for the compiler to be able to auto-generate the adjoint or controlled version of an operation.
  5. Tasks such as gate synthesis, gate sequence optimization, and ancilla management should be delegated to the compiler. Performing these tasks manually becomes unmanageable rapidly, even for medium-size algorithms. This implies that the compiler must be able to determine a great deal of information statically, so that tasks such as rotation synthesis may be done at compile time rather than during execution.
  6. Algorithms should be required to respect the laws of physics. For instance, copying the state of a qubit should not be possible. Direct access to the qubit state should not be possible, although we allow a certain amount of validation and state examination to facilitate debugging with a simulator.

Our first attempt, not surprising given our LIQUi|〉 heritage, was to use a quantum library embedded in the functional portion of F#. We used the F# quotations feature to examine and process the quantum algorithm code.

As a functional language with rich support for generics and type inference, F# made the first four requirements easy to meet. Meta-operations were easy to express as F# functions that took function arguments. Adjoint and Controlled were implemented as F# functions that were recognized and processed specially by the compiler.

Initially we had a fair amount of success with this approach, when we had only the compiler developers writing quantum algorithms. As more and more people started using the platform, though, we found that the code for compiler features such as generating adjoints and synthesizing gates became more and more complicated. Providing these features depends on being able to comprehend the semantics of an algorithm in order to perform symbolic computation on the algorithm. Unfortunately for this purpose, F# (like any modern general-purpose language) is a rich language with a very rich set of libraries, so that it is difficult for a compiler to look at code and determine what it means. When there were only a few developers writing algorithms, it was possible for our compiler to recognize and handle the specific idioms that those developers used. Every time we got a new user, though, they brought with them a new set of idioms that the compiler had to recognize. This approach was clearly not scalable in terms of platform development.

Q#: A Domain-Specific Language

After a significant effort to make the embedded approach work, we finally decided that moving to a custom domain-specific language for quantum computing would offer significant enough advantages to be worth the development cost of building our own compiler front-end and libraries. In the summer of 2017, we started designing Q#.

Execution Model

One decision we made at the start was that we were going to treat the quantum computer as an accelerator, similar to the way that a GPU is treated. This means that there will be a main application program written in C#, F#, or some other .NET language, and the quantum code will run as a subroutine to the main program. This also means that the quantum routine can be limited to just the accelerated portion of the application; capabilities such as file I/O and user interaction can be safely omitted from Q# and left to the main program.

Design Principles

We knew that designing a new language isn’t quick and easy, and that we were unlikely to get everything right first time. Thus, we decided on a set of core principles to guide our process both initially and as Q# evolves:

  1. Start minimal and evolve carefully based on user experience.
  2. Be quantum first, familiar second.
  3. Use libraries wherever possible, rather than language features.
  4. Keep clear, well-defined semantics to enable rich optimizations and transformations in the compiler back-end.

Starting minimal led us to defer many features that we could have put into Q# at the beginning, and instead to wait and see if they’re needed. For example, the first preview of Q# did not support a C-like ternary operator. We subsequently heard from users that lacking this operator over-complicated the code for a simple situation; specifically, a mutable variable and an `if` statement were required to simply have a conditional return. Thus, in our 0.3 release we will add support for a ternary operator.

An example of quantum first is the repeat-until statement, which directly expresses the quantum repeat-until-success pattern. While it’s possible to express this pattern using a C-like while or do/while loop, doing so requires multiple flags and some awkward logic that obscures the pattern. Having a specialized statement allows this pattern to be apparent in the code, both to the reader and to optimizers and other code transformations.

Some Key Q# Features

Qubit Management

In Q#, qubits are a resource that are requested from the runtime when needed and returned when no longer in use. This is similar to the way that classical languages deal with heap memory.

The Q# language doesn’t specify whether qubits are logical or physical. This can be decided by the runtime when the algorithm is executed. Similarly, the mapping from a qubit variable in a program to an actual logical or physical qubit is decided by the runtime, and that mapping may be deferred until after the topology and other details of the target device is known. The runtime is responsible for determining a mapping that allows the algorithm to execute, including any qubit state transfer and remapping required during execution.

Q# also supports “dirty ancillas”: There are quantum routines that require additional workspace qubits (ancillas) during execution, but that are guaranteed to return the qubits back to their original state by the end of the routine. These ancillae can be qubits that are currently in use but that are not accessed during the routine in question. The Q# compiler and runtime can determine which qubits are safe for use this way, avoiding the need of additional “clean” qubits and reducing the overall space requirements of an algorithm.

First-Class Operations

Operations and functions in Q# are first-class entities; they can be passed to other operations, assigned to variables, and used like any other value. This makes it easy to express protocols such as amplitude amplification, phase estimation, and others in the Q# Canon library.

A related feature, partial application, enhances the power of first-class operations by making it easy to define new operations as specialized versions of existing operations. The Canon implementation of the Trotter-Suzuki expansion demonstrates the power Q# gets from the combination of first-class operations and partial application.

Adjoint and Controlled Derivations

Q# provides two ways of deriving a new operation from an existing one:

  • The Adjoint of an operation is, mathematically, the complex conjugate transpose of the operation. For the unitary operations common in quantum computing, the adjoint of an operation is its inverse; that is, it undoes the computation that the operation performs.
  • The Controlled version of an operation takes one or more additional qubits and performs the base operation if and only if the additional “control” qubits are in the computational 1 state. Of course, it does this in superposition, so the result is typically an entangled state of the control qubits and the operated-on qubits.

Both the adjoint and controlled derivations require non-trivial code transformations on the base operation. Q# allows the developer to ask the compiler to generate the derived versions following general rules for unitary operations. In the relatively rare situation that an operation requires special processing, or if there is a more efficient derived version that the developer can provide using special knowledge, the developer can explicitly specify the derived version.

In Q#, the `Adjoint` and `Controlled` modifiers are used with a base operation to refer to the respective derived operations. For instance, if `SomeUnitary` is an operation that has an adjoint, `Adjoint SomeUnitary` is the derived operation that is the adjoint of that operation. The modifiers may be applied to operation-valued variables, as well, which is critical for supporting higher-level operations such as phase estimation.

Beyond Circuits

Q# supports general classical control flow during the execution of an algorithm. For instance, the loop required for probabilistic algorithms such as Grover search can easily be expressed in Q#, rather than having to return to the classical driver to test whether the result satisfies the oracle and rerunning if not.

Q# supports rich classical computation as well as quantum operations. This allows clean expression of adaptive algorithms such as the random walk phase estimation operation in the non-commercial library. Such algorithms are difficult to express directly in the circuit model of a fixed sequence of quantum gates.

These features imply that the execution runtime must be capable of handling significant runtime variation in gate sequences. Ensuring this capability is a key part of Microsoft’s quantum full-stack architecture.

Coming Soon

Some topics we’re planning:

  • Quantum katas: learning quantum computing with Q#
  • What’s new in 0.3
  • Why do we care about quantum computing?
  • Drill down: Qubits in Q#
  • Drill down: The new Hamiltonian simulation library
  • Inside the Q# compiler

Please let us know in comments if there are specific topics you’d like us to cover!

Useful Links

Alan Geller, Software Architect, Quantum Software and Applications
@ageller

Alan Geller is a software architect in the Quantum Architectures and Computation group at Microsoft. He is responsible for the overall software architecture for Q# and the Microsoft Quantum Development Kit, as well as other aspects of the Microsoft Quantum software program.

Learn Quantum Computing with the Quantum Katas

$
0
0

I started to learn quantum computing when I joined Microsoft Quantum team less then two years ago. Before that the most exposure I had to the topic was a course on quantum mechanics back in the university, which was long enough ago to not count. Upon joining I was immediately presented with a brand-new copy of “Quantum Computation and Quantum Information” by Nielsen and Chuang. I spent probably a month trying to read it, but inevitably got stuck somewhere around chapter 4 feeling that I hadn’t made much progress.

There were several problems with the book – or, more likely, with this style of learning. First, the exercises in the book didn’t have answers, or any hints for that matter. Once I solved a problem, I had no idea whether my approach was correct, and if I was stuck, I was on my own. I was lucky to have access to a whole team of quantum computing experts, whom I could pester with my questions; most people who want to learn quantum computing on their own don’t have this luxury. Second, the book approaches a lot of things from a theoretical point of view, and I don’t believe you can truly master an algorithm – quantum or classical – until you’ve actually implemented it. There is a world of difference between reading explanations and formulas or even following the calculations with pen and paper and writing the code, making mistakes and finding them, seeing how it behaves on different inputs and so on.

Of course, one can (and should) turn to other sources for the exercises. I’ve greatly enjoyed the Quantum Information Science courses by MIT on EdX, since they had interesting problem sets with solution verification. But still I felt that there should be more to teaching quantum computing than that…

Last winter, after we released the Quantum Development Kit 0.1, I started to think about how to help people learn Q# – and for that they would need to learn quantum computing. Examples and library code showing algorithms’ implementations or step-by-step follow-along tutorials like Writing a quantum program were clearly not sufficient, since they lacked the learn-by-doing aspect, giving the learner neither motivation nor framework to experiment on their own.

And then I recalled FSharpKoans through which I went the previous year when learning F#. Those were really good – fun and engaging (who doesn’t love fixing things?) while useful for learning the syntax and concepts of the language. Could we do something like that for Q#?

Fast forward several months: we proudly presented the Quantum Katas – an open-source project aimed at teaching quantum computing and Q# programming.

Working with the Quantum Katas in Visual Studio Working with the Quantum Katas in Visual Studio
The Quantum Katas follow several key principles.

Learning by doing

Each kata offers you programming exercises on one topic or a set of closely related topics. They don’t offer you the theory on these topics – for that they send you to external sources like lecture notes or Wikipedia (you’re also most welcome to find your own favorite resource). Once you’ve gone through the theory, you dive into the exercises to internalize your newly gained knowledge. Each task requires you to write a fragment of code to implement something you’ve learned.

Immediate feedback

Each kata includes a testing framework which validates your solutions to the tasks as soon as you write them. The level of detail provided varies from topic to topic: if the problem asks you to create a certain superposition state, you’ll know only whether the state you created was correct or not (and if it was not, you can use debugging tools like DumpMachine to see what state you created); if the problem asks you to perform quantum state discrimination, you’ll know what percentage of the given states you’ve misclassified, and so on.

Increasing task complexity

The tasks in each kata start simple and gradually increase in complexity, building up on the previous ones. The Superposition kata, for example, starts with really simple tasks – create a |+⟩ or a |-⟩ state – and builds up to creating a W state, which requires using recursion and some clever rotations or even more clever post-selection tricks.

End-to-end algorithm implementation

If you want to master a classical algorithm, you don’t implement the algorithm alone – you also write some unit tests to run it and verify that your implementation works (at least you should). The same goes for quantum algorithms: if a kata covers an oracle algorithm like Grover’s search or a protocol like teleportation, it will take you through all the steps:

  • writing an oracle in the right format for the algorithm or preparing the shared resources for the protocol,
  • implementing the algorithm itself,
  • putting all the pieces together to run the algorithm or the protocol and to check that you get the expected result.

The Quantum Katas project is still in its early stages – there are only 10 katas, covering the introductory topics – but it has already proven itself quite useful. We’ve used the katas in several guided workshops, where the hands-on work with them was preceded by a lecture on the necessary quantum computing concepts, with great success. And personally I felt that I really understood the Grover’s algorithm only after I test-solved the respective kata contributed in October 🙂

Speaking of contributions… If you have an idea for a nice new task or even a whole new kata, let us know and we’ll be happy to help you implement it!

Useful Links

Mariia Mykhailova, Senior Software Engineer, Quantum
@tcnickolas

Mariia Mykhailova is a software engineer at the Quantum Architectures and Computation group at Microsoft. She focuses on developer outreach and education work for the Microsoft Quantum Development Kit. In her spare time she writes problems for programming competitions and creates puzzles.

Visual Studio 2017 version 15.9 now available

$
0
0

Today, we are releasing Visual Studio 2017 version 15.9. The easiest way to update is directly from within Visual Studio 2017 by selecting Help>Check for Updates or select “Update” from the Visual Studio Installer. You can also download from the Visual Studio website to get the latest release of Visual Studio. If you prefer to try these updates without installing, you can create a Visual Studio image on Azure. You can find the complete list of all the changes in the release notes and view the issues you submitted that are fixed on Developer Community.

Let’s look at a couple of the standout scenarios in this update that you can now try.

Step Back for C++

Step back debugging is a type of historical debugging. Visual Studio works with the runtime and operating system to take snapshots of a running application’s stack, enabling you to hit a breakpoint and then to step backwards and forwards, with full access to the call stack, variables, and watch windows. We first talked about this feature back in October for C# in this blog post and now we’re adding it for C++.

With IntelliTrace events and snapshots enabled in Tools>Options>IntelliTrace, every step (in, out, over) you take has a corresponding “step backwards” command to get back to the state of the app at a previous step. Step Back saves you from having to restart your debug session just to check what state your app was in a few lines above. It also makes it easy to compare the state of your application at two different points. Better yet, the diagnostic tools window contains a list of all the states that you can jump to – just double click on your desired event in the diagnostic tools window.

To use the C++ step back feature, you’ll need the Enterprise edition of Visual Studio and the Windows 10 Anniversary Update (1607) or later.

Have a look at the gif below to see this feature in action, and remember that you can read more about how it works on the Visual C++ Team Blog.

Demonstration of C++ step backward and step over feature for Visual Studio 2017 Enterprise.

.NET Core tooling updates

The way Visual Studio exposes the .NET Core SDKs has been a bit confusing in the past. In version 15.9, we made a change to how .NET Core tools will use the .NET Core SDK. For stable releases of Visual Studio, the latest stable release of an SDK will be used by default. Before, the tools would use whatever latest version was on your machine, regardless of whether it is stable. This change will make use of .NET Core within Visual Studio more predictable. Read more on the .NET Blog.

Visual Studio installation configuration

Configuring Visual Studio setup and replicating that setup configuration on many computers has been too complex. In version 15.9 (with any product: Community, Professional, or Enterprise), we made it easy to save a Visual Studio installation configuration and use it to populate another. In the Visual Studio Installer, export the workload and component selection to a .vsconfig file. You can use this file to copy your installation configuration across multiple machines or share with others on your team. If you are importing to an existing installation, it will add new workloads and components, and will not replace the existing ones.

Visual Studio Enterprise 2017 import configuration on install.

Tools for Universal Windows Platform Developers

We have made a lot of improvements for developers building Universal Windows Platform applications. The key ones are: support for the Windows 10 October 2018 Update (build 17763) SDK, the ability to build .msix installation packages in Visual Studio using the normal packaging tools for UWPs, support for ARM64, and performance and reliability improvements (particularly improvements to F5 performance and XAML designer reliability).

Also, when using the XAML Designer for building UWP applications targeting the Windows 10 Fall Creators Update (Build 16299) or later, developers can now specify control display options. You can choose to have the designer display all controls, including custom user controls, or have the designer-only display platform controls. Only displaying platform controls may improve the stability of the designer and will render fallback controls represented by a yellow border.

XAML Designer control display options.

Support for SharePoint 2019

With SharePoint 2019 now generally available, we added templates for it. These templates allow you to create new projects that are empty, that contain a visual web part, or that are based on an existing SharePoint 2019 solution package. You can also migrate existing SharePoint projects from either SharePoint 2013 or SharePoint 2016 to SharePoint 2019. To do so, you can just open an existing SharePoint 2013 or SharePoint 2016 project in Visual Studio 2017 version 15.9 and you will see a dialog that gives you the option to upgrade the project type.

Please note that SharePoint 2019 support is only available in Visual Studio 2017 version 15.9. To upgrade your tooling, we recommend that you install the Office workload when upgrading to the latest version of Visual Studio.

Stay Connected

A final note: version 15.9 is the final minor update to Visual Studio 2017. We’ll still ship a few service updates (e.g. 15.9.1), and 15.9.x will become the Visual Studio 2017 servicing baseline and will be the supported version of Visual Studio 2017 starting January 14, 2020. You can read more from our blog post, Visual Studio 2017 and Visual Studio for Mac Support Updates.

As always, we  love to hear about your experiences with Visual Studio. Please install Visual Studio 2017 version 15.9 and let us know any issues you have via the Report a Problem tool in Visual Studio. You can also track your issues in Visual Studio Developer Community, as well as suggest a feature, ask questions, and find answers. Please engage with us and other Visual Studio developers through our Gitter community (requires GitHub account) or get free installation help through Live Chat Support.

John Montgomery, Director of Program Management for Visual Studio
@JohnMont

John is responsible for product design and customer success for all of Visual Studio, C++, C#, VB, JavaScript, and .NET. John has been at Microsoft for 17 years, working in developer technologies the whole time.

The Latest in Visual Studio 2017 for Mac – Version 7.7

$
0
0

Today, we are happy to share with you the next update to Visual Studio for Mac 2017. Version 7.7 incorporates much of your great feedback and is aimed at improving the core development experience for every project type from .NET Core to Xamarin and Unity. Below are just a few of the new features in Visual Studio 2017 for Mac 7.7 – for the full release notes, please read on here.

Improved IntelliSense with brace completions, smart indenting and lightbulbs

Visual Studio 2017 for Mac 7.7 includes a number of improvements to the IntelliSense experience. Most of the updated features will feel right at home to folks who are familiar with Visual Studio, including quick fix suggestions as well as the “lightbulb” experience. Now, when there are suggested fixes, you’ll get an icon next to the line number which indicates the type of fix available: a lightbulb for a suggestion, a lightbulb with an error symbol for an error, or a wrench for refactoring options and suggestions. We have also made several improvements to brace-matching and smart indenting in this release.

.NET Core 2.2 (preview) Support

If you’re interested in trying out the latest and greatest ASP.NET Core features, you can now work with .NET Core 2.2-based projects in Visual Studio 2017 for Mac. Once you have the .NET Core 2.2 Preview SDK installed, you will able to accomplish all the tasks you currently can with .NET Core 2.1, including creating a new project, opening an existing project, debugging, and deploying.

.NET Core 2.2 can live side-by-side with .NET Core 2.1, so all you need to do is select the appropriate target framework when creating a new project. For existing projects, you can easily update the target framework in the .csproj file. If you don’t want to use .NET Core 2.2 on a project, it will continue to target the same version as before.

There are several improvements in ASP.NET Core 2.2 (Preview) including:

  • Improved routing with parameter transformers
  • A new built-in service for link generation
  • A health-check service for Entity Framework DBContexts
  • Improvements to the data model validation system
  • A much faster HTTP client

To learn more about the new ASP.NET Core 2.2 preview features, read on here.

Azure Functions 2.0 support

Azure Functions give you the ability to run your code in a scalable and cost-efficient way using the power of the cloud. Whether you’re creating an API or want to respond to some event, Azure Functions have you covered. This release of Visual Studio for Mac adds support for the latest version of Azure Functions. With version 2.0 of Azure Functions, you now have access to a portable, cross-platform host runtime, which increases the flexibility of your Azure Function deployment. Visual Studio for Mac offers you a beautiful macOS development environment for all your Azure Functions needs.

Xamarin.Android Build Performance Improvements

This version of Visual Studio for Mac is also the first version to feature our work on improving the build performance for Xamarin.Android projects. This was another top request from our users, and we are happy to be able to share our work with you today. The results speak for themselves, with improved deployment and build times, whether it’s the first build or the fiftieth. For example, our test projects saw an average of a four second decrease in incremental build times. More details on the changes, as well as detailed metrics and comparisons, can be found here: https://github.com/xamarin/xamarin-android/wiki/Build-Performance-Results.

Support for license verification behind a proxy server

We have addressed the highest voted issue from Developer Community, and now Visual Studio for Mac can be activated from behind many proxy server configurations that we have been able to test with. Addressing this issue took us a while as we were not able to effectively reproduce the issue in-house –we wanted to thank several users who directly worked with us to give us logs and validate the fixes within their environments. If you continue to see issues activating Visual Studio for Mac after this update, please report them via our Developer Community and we will take an immediate look.

Publish ASP.NET Core projects to a folder

We all love Azure, but sometimes you need to publish your ASP.NET projects elsewhere, and we want to ensure that’s a smooth experience. Version 7.7 introduces a new publishing destination: a folder! Now you can publish to any folder or file share (network drive), and either run the page locally or host it anywhere you like.

TFVC Extension Update

Along with Visual Studio for Mac, we are also releasing an update to the TFVC extension. This extension provides support for connecting to both Azure DevOps based TFVC repositories as well as on-premise servers. Though the extension is still in a preview state, we encourage you to install it via the Extension Gallery located under Visual Studio > Extensions and give it a try. The latest preview contains many bug fixes and stability improvements. We welcome any and all feedback that you have on this extension as we prepare to integrate it as a core feature in Visual Studio for Mac’s future updates as previously called out in our roadmap.

Share your Feedback

Addressing reliability and performance issues in Visual Studio for Mac remains our top priority. Your feedback is extremely important to us and helps us prioritize the issues that are most impacting your workflow. There are several ways that you can reach out to us:

  • Use the Report a Problem tool in Visual Studio for Mac.
  • You can track and comment on your issues on the Developer Community portal
  • In addition to filing issues, you can also add your vote or comment on existing issues. This helps us assess the impact of the issue.
Cody Beyer, Program Manager
@cl_beyer

Cody is a Program Manager on the Visual Studio for Mac team. His main areas of focus are around performance and reliability of the IDE. He enjoys making mobile applications and trying new technologies.

Qubits in Q#

$
0
0

How should qubits be represented in a quantum programming language?

In the quantum circuit model, a quantum computation is represented as a sequence of operations, sometimes known as gates, applied to a set of qubits. This leads to pictures such as:

Teleportation quantum circuit

from Quantum Computation and Quantum Information by Nielsen and Chuang

In this picture, each horizontal line is a qubit, each box is an operation, and time flows from left to right.

When we want to design a programming language to express a quantum computation, the question naturally arises of whether qubits should be represented in the language, and if so, how. In the most naive model of such a picture, there would be a software entity that represented each horizontal line, with little or no accessible state other than perhaps a label, but there are other possibilities.

Quantum States as Linear Types

Quipper uses linear types to model quantum states, although it refers to the data type as Qubit. The intuition is that the no-cloning theorem prevents you from making a copy of the quantum state of a qubit, so it makes sense to use the type system to prevent you from making a copy of the software representation of quantum state. Linear types have proven useful in other contexts where copying the software representation of an entity would be bad, for instance in functional concurrent programming, so why not for quantum computing?

The argument for linear types is, as mentioned, that they reflect the no-cloning theorem in the language. The implication is that a software qubit represents a qubit state, rather than an actual object. The problem with this view is that, once entangled, it no longer makes sense to talk about the state of an individual qubit; that’s more or less exactly what being entangled means. To model this in software, an entangling gate such as a CNOT should take two single-qubit states as inputs and return a software entity that represents two-qubit state as output — as long as you never want to perform a CNOT on two qubits that are each entangled with other qubits.

The software entity as quantum state abstraction breaks down for two reasons:

  • because quantum computing works by applying operations to physical entities, not to quantum states, so the abstraction doesn’t correspond to operational reality; and
  • because in general there is no actual physical quantum state smaller than the state of the entire quantum computer, so the abstraction doesn’t correspond to physical reality.

Qubits as Opaque References

An alternate approach is to use an opaque data type that represents a reference to a specific two-state quantum system, whether physical or logical (error-corrected), on which operations such as `H` or `X` may be performed. This is an operational view of qubits: qubits are defined by what you can do to them. Both OpenQASM and Q# follow this model.

Quantum Computing is Computing by Side Effect

The representation used in Q# has the interesting implication that all of the actual quantum computing is done by side effect. There is no way to directly interact with the quantum state of the computer; it has no software representation at all. Instead, one performs operations on qubit entities that have the side effect of modifying the quantum state. Effectively, the quantum state of the computer is an opaque global variable that is inaccessible except through a small set of accessor primitives (measurements) — and even these accessors have side effects on the quantum state, and so are really “mutators with results” rather than true accessors.

In general programming, the use of side effects and global state is generally discouraged. For quantum computing, on the other hand, they seem to match the actual physical reality pretty well. For this reason, we decided that this abstraction was the right one to use in Q#.

This post is the first one in the Q# Advent Calendar 2018. Follow the calendar for other great posts!

Alan Geller, Software Architect, Quantum Software and Applications
@ageller

Alan Geller is a software architect in the Quantum Architectures and Computation group at Microsoft. He is responsible for the overall software architecture for Q# and the Microsoft Quantum Development Kit, as well as other aspects of the Microsoft Quantum software program.

Making every developer more productive with Visual Studio 2019

$
0
0

Today, in the Microsoft Connect(); 2018 keynote, Scott Guthrie announced the availability of Visual Studio 2019 Preview 1. This is the first preview of the next major version of Visual Studio. In this Preview, we’ve focused on a few key areas, such as making it faster to open and work with projects stored in git repositories, improving IntelliSense with Artificial Intelligence (AI) (a feature we call Visual Studio IntelliCode), and making it easier to collaborate with your teammates by integrating Live Share. With each preview, we’ll be adding capabilities, improving performance, and refining the user experience, and we absolutely want your feedback.

For a quick overview of the new functionality, you can keep reading this blog, or if you want a video overview, check out our team member Allison’s introduction to Visual Studio 2019. But before you do either, make sure to kick off the download.

Enabling you to focus on your work

Right off the bat, you’ll notice that Visual Studio 2019 opens with a new start window on launch. This experience is better designed to work with today’s Git repositories – whether local repos or online Git repos on GitHub, Azure Repos, or elsewhere. Of course, you can still open an existing project or solution or create a new one. (This experience is also coming soon to Visual Studio 2019 for Mac.) We’ll have a more detailed blog post on the new start window experience next week, which will also go into some of the research that supported this revamp.

Visual Studio 2019 start window

Visual Studio 2019 for Mac start window

Once you’re in the IDE, you’ll notice a few changes to the UI and UX of Visual Studio 2019. Jamie Young recently published a blog post with more detail on these changes, but to recap, they include a new product icon, a refreshed blue theme with small changes across the UI to create a cleaner interface, and a more compact title and menu bar – for which we’ve heard your feedback loud and clear and are working to further optimize.

In addition to the enhancements Jamie mentions, today we’re sharing the new search experience in Visual Studio 2019, which replaces the existing “Quick Launch” box. You can now search for settings, commands, and install options. The new search experience is also smarter, as it supports fuzzy string searching to help find what you are looking for even when misspelled.

The new search experience in Visual Studio 2019

When you’re coding, Visual Studio 2019 makes it easier to get your work done quickly.  We’ve started by focusing on code maintainability and consistency experiences in this preview. We’ve added new refactoring capabilities – such as changing for-loops to LINQ queries and converting tuples to named-structs – to make it even easier to keep your code in good shape. With the new document health indicator and code clean-up functionality, you can now easily identify and fix warnings and suggestions with the click of a button.

The document health indicator and code clean-up command

Common debugging task are also easier. You’ll immediately see that stepping performance is improved, allowing for a much smoother debugging experience. We’ve also added search capabilities to the Autos, Locals, and Watch windows helping you track down objects and values. Watch for a future blog post that goes deeper into the debugger improvements in Visual Studio 2019, including the new Time Travel Debugging for managed code feature (coming to a future Preview), updates to the Snapshot Debugger to target Azure Kubernetes Service (AKS) and Virtual Machine Scale Sets (VMSS), and better performance when debugging large C++ projects; thanks to an out-of-process 64-bit debugger.

Search in the Watch window

Helping your team work together

Building on the work we started in Visual Studio 2017, we’re improving Visual Studio IntelliCode, our context-aware and AI-powered IntelliSense, to enable training it on your own code repositories and share the results with your team. IntelliCode reduces the number of keystrokes you need since the completion lists are prioritized on the most common coding patterns for that API combined with the context of the code in your existing project. We’ll have a blog post on all the improvements in IntelliCode coming later this week, including more details on learning from your code, and C++ and XAML support being added for Visual Studio 2019.

Visual Studio IntelliCode using a trained model

Earlier this year, we introduced Visual Studio Live Share to help you collaborate in real-time with anyone across the globe using Visual Studio or Visual Studio Code. Live Share is installed by default with Visual Studio 2019, so you can immediately invite your teammates to join your coding session to take care of a bug or help make a quick change. You’ll also find it’s easier to start a session and view who you’re working within a dedicated space at the top-right of the user interface. We’ll also have a deeper-dive post on Visual Studio Live Share improvements in the next few days, including support for any project, app type, and language, Solution View for guests, and support for more collaboration scenarios.

Visual Studio Live Share integrated in Visual Studio 2019

Last, we’re introducing a brand-new pull request (PR) experience in Visual Studio 2019, which enables you to review, run, and even debug pull requests from your team without leaving the IDE. We support code in Azure Repos today but are going to expand to support GitHub and improve the overall experience. To get started, you can download the Pull Requests for Visual Studio extension from the Visual Studio Marketplace.

The new pull request experience in Visual Studio 2019

.NET Core 3 Preview 1

We also announced .NET Core 3 Preview 1 today, and Visual Studio 2019 will be the release to support building .NET Core 3 applications for any platform. Of course, we also continue to support and improve cross-platform C++ development, as well as .NET mobile development for iOS and Android with Xamarin.

.NET Core 3.0 development in Visual Studio 2019

Help us build the best Visual Studio yet

We are very thankful to have such an active community and can’t wait to hear what you think about Visual Studio 2019. Please help us make this the best Visual Studio yet by letting us know of any issues you run into by using the Report a Problem tool in Visual Studio. You can also head over to the Visual Studio Developer Community to track your issue or, even better, suggest a feature, ask questions, and find answers from others.

We will share more about the full feature set and SKU lineup of Visual Studio 2019 in the coming months as we release more previews. You can try Visual Studio 2019 side-by-side with your current installation of Visual Studio 2017, or if you want to give it a spin without installing it, check out the Visual Studio images on Azure.

I also want to take a moment to thank our vibrant extension ecosystem, who have made over 400 extensions available for Visual Studio 2019 Preview 1 already, and more are being added each day. You can find these extensions on the Visual Studio Marketplace.

Microsoft has always been a company with developers at the heart – we’re humbled that the community of users of the Visual Studio family has surpassed 12 million. We aim to make every second you spend coding more productive and delightful. Please continue to share your feedback on the preview for Visual Studio 2019 to help guide the future direction of the product so it becomes your favorite tool. Thank you!

John Montgomery, Director of Program Management for Visual Studio
@JohnMont

John is responsible for product design and customer success for all of Visual Studio, C++, C#, VB, JavaScript, and .NET. John has been at Microsoft for 17 years, working in developer technologies the whole time.

Visual Studio IntelliCode supports more languages and learns from your code

$
0
0

At Build 2018, we announced Visual Studio IntelliCode, a set of AI-assisted capabilities that improve developer productivity. IntelliCode includes features like contextual IntelliSense code completion recommendations, code formatting, and style rule inference.

IntelliCode has just received some major updates that make its context-sensitive AI-assisted IntelliSense recommendations even better. You can download the updated IntelliCode Extension for Visual Studio and IntelliCode Extension for Visual Studio Code today! The Visual Studio extension already works with the newly-release Visual Studio 2019 Preview 1.

AI-assisted IntelliSense recommendations based on your language of choice

Many of you have requested IntelliCode recommendations for your favorite languages. With this update, we’re excited to add four more languages to the list that can get AI-assisted IntelliSense recommendations. In our extension for Visual Studio, C++ and XAML now get IntelliCode alongside existing support for C#. In our extension for Visual Studio Code, TypeScript/JavaScript and Java are added alongside existing support for Python.

We’ll be sharing more details about IntelliCode’s support for each language on their respective blogs [C++ | TypeScript and JavaScript | Java]

AI-assisted IntelliSense for C# with recommendations based on your own code

Until now, IntelliCode’s recommendations have been based on learning patterns from thousands of open source GitHub repos. But what if you’re using code that isn’t in that set of repos? Perhaps you use a lot of internal utility and base class libraries, or domain-specific libraries that aren’t commonly used in open source code, and would like to see IntelliCode recommendations for them too? If you’re using C#, you can now have IntelliCode learn patterns and make recommendations based on your own code!

When you open Visual Studio after installing the updated IntelliCode Extension for Visual Studio, you’ll see a prompt that lets you know about training on your code, and will direct you to the brand new IntelliCode page to get started. You can also find the new page under View > Other Windows > IntelliCode.  Once training is done, we’ll let you know about the top classes we found usage for, so you can just open a C# file and start typing to try out the new recommendations. We keep the trained models secured, so only you and those who have been given your model’s sharing link can access them–so your model and what it’s learned about your code stay private to you. See our FAQ for more details.

Check out Allison’s video below to see how this new feature works.

Get Involved

As you can see, IntelliCode is growing new capabilities fast. Get the IntelliCode Extension for Visual Studio and the IntelliCode Extension for Visual Studio Code to try right away, and let us know what you think.  You can also find more details about the extensions in our FAQ.

IntelliCode and its underlying service are in preview at present. If you hit issues using the new features and you’re using Visual Studio, use the built-in Visual Studio “Report a Problem” option, and mention IntelliCode in your report. If you’re a Visual Studio Code user, just head over to our GitHub issues page and report your problem there.

If you want to learn more or keep up with the project as we expand the capabilities to more scenarios and other languages, please sign up for email updates. Thanks!

Mark Wilson-Thomas, Senior Program Manager

@MarkPavWT  #VSIntelliCode

Mark is a Program Manager on the Visual Studio IntelliCode team. He’s been building developer tools for over 10 years. Prior to IntelliCode, he worked on the Visual Studio Editor, and on tools for Office, SQL, WPF and Silverlight.

Visual Studio Live Share for real-time code reviews and interactive education

$
0
0

Collaborating with your team using Visual Studio Live Share keeps getting easier! Since making Live Share available for the public use at BUILD last May, we’ve heard so much great feedback from our users, which has helped guide us in continuing to build a tool that truly enables developers to collaborate in all the ways they need from the comfort of their favorite tools. Your feedback has pointed us towards new collaboration scenarios that we had not previously thought of (e.g. technical interviews and hackathons), as well helped us prioritize releasing some of the biggest feature requests and issues, like sharing multi-root workspaces, making it easier to visually interact with a Live Share session, as well as allowing guests to start a debugging session. We’ve come a long way, and we have so much more collaboration goodness to bring you! If you haven’t checked out Live Share yet, get started collaborating today!

Live Share + Visual Studio 2019

After installing the Visual Studio 2019 Preview, you’ll immediately notice a Live Share button in the top-right corner of your IDE. Starting with Visual Studio 2019, Live Share is now installed by default with most workloads, making it easier than ever to start collaborating with your teammates.

For a quick overview of how to get started with Live Share, we have a walkthrough for you to watch:

We’ve also been working to bring features to enable better Live Share support for Visual Studio users. For our public preview release, we announced universal language support for all languages and platforms. We’re happy to say we’ve continued to expand this capability and have recently added language support for more languages, including: C++, VB.NET, and Razor, with F# and Python on the way soon.

Additionally, one of the top feature requests from Visual Studio users of Live Share was enabling Solution View for guests. Now, you will see the project-based view of the codebase, rather than the “folder view”. The guests and host no longer have different views into the project, and now have the same view, as if they were all developing locally.

Real-time code reviews

Another big area of collaboration among teams comes when committing your code and conducting reviews. Live Share wants to further enhance that experience and offer new ways to work with your teammates.

When a host shares their code during a Live Share session, guests will have access to the shared source control diffs. Available in both Visual Studio (with the Pull Requests for Visual Studio extension), and Visual Studio Code, guests can view the diffs to get context on what changes have been made before or during a session. This can help with having real-time code reviews in your tool of choice, or even figuring out a merge conflict.

Another aspect of the reviewing experience is comments. For that, Live Share enables in-line commenting. While in a session, participants can add comments to code for others to see in real-time. You can use this for making notes about certain changes found in a shared diff or making a to-do list of things to accomplish during the collaboration session.

To further enhance your code review experience, and ensure you can use the tools you’re already familiar with, we’re excited to announce that GitLens has added support for Live Share! As a guest, you can visualize code authorship with Git blame annotations, navigate through line/file/repo history, and view diffs between arbitrary baselines (e.g commits, branches, or tags).

Collaboration comes in so many different forms, so working with the extension ecosystem to holistically address the various ways developers work together is integral to Live Share. We’ve also partnered with other 3rd party extensions to augment Live Share collaboration sessions with their additional capabilities, like auto-sharing servers created by Live Server, sharing Test Explorer results with guests, and letting guests execute code as it is written with Quokka.js.

Interactive Education

The primary goal of Visual Studio Live Share is to enable developers to collaborate with each other more easily, and education is a scenario we care deeply about. Whether you’re mentoring a developer on your team, or giving a lecture to a classroom, Live Share provides participants with an experience that is more engaging and truly personalized to everyone’s learning needs.

While Live Share was already applicable to education, we’ve specifically addressed the following key feedback items, in order to ensure it’s further optimized for the diverse needs of instructors and students everywhere:

Get Collaborating!

If you haven’t had a chance, give Visual Studio Live Share a try! The extension is also available for download for Visual Studio 2017 and Visual Studio Code users. Additionally, it available as a default install option in the new Visual Studio 2019 Preview.

For more information about using Live Share, please check out our docs! We’re so grateful for all the amazing feedback we’ve received from you, and love hearing more. We talked a about a few new use cases we’ve optimized for based on your feedback, and we’re so excited for all the new ways we can enhance how you collaborate. As always, feel free to send us your feedback by filing issues and feature requests on GitHub.

Happy Collaborating!

Jon Chu, Program Manager
@jonwchu

Jon is a Program Manager on the Visual Studio Live Share team bringing collaboration tools to developers, enabling them to tell their own unique stories. Prior to Live Share he’s worked on XAML tooling and NuGet.

New Preview label for Visual Studio extensions

$
0
0

Visual Studio extensions can now be marked with a Preview label which is shown very clearly on the Visual Studio Marketplace. This gives your customers clear expectations that this version could contain issues as you are actively developing new features. You can get feedback from your users earlier, test out new code changes to improve your extension, and continue to provide a stable version for your users that may require it.

Determining the quality of an extension is today an exercise left to the extension user. If an extension isn’t recommended by a friend, coworker or other trusted person, all we can do is to look at the number of downloads, the star rating, and reviews to determine if we perceive the quality to be high enough for us to try out the extension.

The new preview label explicitly communicates some important details to the consumer about what to expect from the extension. This helps them to understand that the extension may not be feature complete and may contain bugs. It can also help to communicate to them that feedback is welcome to improve the extension before its final release and the preview label removed.

If the version of your extension is less than one (i.e. v0.5) then it will likely benefit from adding the preview label.

Add the preview label

In your extension’s .vsixmanifest file, add the new <Preview> element to the <Metadata> node.

<Metadata>
  <Identity Id="[guid]" Version="0.8" Language="en-US" Publisher="My name" />
  <DisplayName>Extension name</DisplayName>
  <Description>Extension description.</Description>
  <Icon>Resources\Icon.png</Icon>
  <Preview>true</Preview>
</Metadata>

Now upload your extension to the Visual Studio Marketplace to see the new preview label show up. If your extension isn’t uploaded but referenced by a link, then there is a checkbox you can check to add the preview label when you edit your linked extension on the Marketplace.

It’s important to note that the extension will not change behavior in any way due to the addition of the preview label.

Try it out

If you have any applicable extensions, then use the preview label to better communicate the right expectations to your users and get a better chance at higher ratings.

Mads Kristensen, Senior Program Manager
@mkristensen

Mads Kristensen is a senior program manager on the Visual Studio Extensibility team. He is passionate about extension authoring, and over the years, he’s written some of the most popular ones with millions of downloads.

New Benefits in Visual Studio Subscriptions

$
0
0

Last week at Microsoft Connect();, we announced two new benefits to assist cloud migration for our users who have Visual Studio Subscriptions. If you missed the event or want to watch the on-demand trainings, check out the Connect(); event page. If you’re a current Visual Studio subscriber, activate your new benefits to get started right away. To learn more about our developer subscriptions and programs visit the Visual Studio website.

Here are more details on the two new benefits:

CAST Highlight

Developers need critical insights on their software when migrating to the cloud. With CAST Highlight, Visual Studio Enterprise subscribers can rapidly scan their application source code to identify the cloud readiness of their applications for migration to Microsoft Azure and monitor progress of their app both during and after a migration. Check out this video from CAST to see it in action.

Visual Studio Enterprise subscribers can get a free, full-featured one-month subscription to CAST Highlight for up to five apps per subscriber.

UnifyCloud’s CloudPilot

Developers also need solutions that enable quick and easy app migration to the cloud. CloudPilot helps move apps to Microsoft Azure in a few easy steps, including identifying all required changes down to the line of code for successful migration to containers, virtual machines, App Service, Azure SQL, and SQL Managed Instance. See this video from UnifyCloud to learn more about CloudPilot.

Visual Studio Enterprise subscribers are eligible for two 90-day free licenses to the full-featured CloudPilot, while Visual Studio Professional subscribers can take advantage of one 30-day license to scan apps and databases of millions of lines of code in minutes.

Log into the Visual Studio Subscriptions portal at https://my.visualstudio.com today to get your new benefits.

Let us know what you want to see with the Visual Studio Subscriptions by sharing your feedback, suggestions, thoughts, and ideas in the comments below!

Lan Kaim, Director of Product Marketing

Lan is a Director on the Azure marketing team where she is responsible for the developer subscription business.

Viewing all 1039 articles
Browse latest View live