IntelliSense - Visual Studio Blog https://devblogs.microsoft.com/visualstudio/tag/intellisense/ The official source of product insight from the Visual Studio Engineering Team Mon, 03 Oct 2022 22:04:54 +0000 en-US hourly one https://devblogs.microsoft.com/visualstudio/wp-content/uploads/sites/4/2018/10/Microsoft-Favicon.png IntelliSense - Visual Studio Blog https://devblogs.microsoft.com/visualstudio/tag/intellisense/ thirty-two thirty-two Visual Studio 2019 v16.10 Preview 2 Releases Today https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-10-preview-2/ https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-10-preview-2/#comments Wed, 14 Apr 2021 17:15:58 +0000 https://devblogs.microsoft.com/visualstudio/?p=232075 We are excited to announce the release of Visual Studio v16.10 preview 2. This release continues a theme of developer productivity and convenience. We’ve added C++20 ranges, IntelliSense completions, and new features for testing, Docker, and Git integration!

The post Visual Studio 2019 v16.10 Preview 2 Releases Today appeared first on Visual Studio Blog .

]]>
We are excited to announce the release of Visual Studio v16.10 preview 2. This release continues a theme of developer productivity and convenience. We’ve added C++20 ranges, IntelliSense completions, margin icons for inspecting the inheritance chain, and new features for testing, Docker tooling enhancements, and Git integration!

Download the latest Visual Studio preview release to try the new features in 16.10. And as always, we love your feedback and interactions through our Developer Community .

New Features for C++

We’ve continued to add C++ 20 conformance features, as well as support for CMake preset files, and improved security for remote connections.

Use Ranges in C++ 20

We are delighted to announce that our C++20 Ranges implementation is now feature complete. Compile with /std:c++latest if you want to try it out.

Use CMake Presets

The CMakePresets.json file is now supported in Visual Studio as a common alternative to CMakeSetting.json.

CMake 3.19 and 3.20 added support for CMakePresets.json , which allows you to specify common configure, build, and test options, and share them with others. Use the same CMakePresets.json file to configure and build with CMake in Visual Studio, Visual Studio Code, and from the CLI on Windows, Linux, and macOS. The three dropdowns in the screenshot below indicate the active Target System, Configure Preset , and Build Preset .

 CMakePresets dropdown screenshot
Use CMakePresets.json files with Visual Studio and view the Target System, Configure Preset, and Build Preset in the dropdowns.

Customized Warning Levels for External Headers

Compiler and code analysis warnings for headers that are not part of your project are frustrating. To help with this, we’ve made it easy to mark headers external to your project. External headers can have their own compiler warning level, code analysis, and template diagnostics settings. You can choose stricter settings for your project’s code to enforce code quality without getting bogged down with warnings from headers you don’t control.

 Customize analysis of external headers
Customize code analysis for external headers.

Safely Connect Remotely

We’ve made creating remote connections safer by adding a prompt to accept or deny the host key fingerprint presented by the server. You may be familiar with this if you’ve used the OpenSSH command-line client or PuTTY before.

New Features for .NET

IntelliSense has several new completions that help automate common workflow tasks.

Completions for Casts, Indexers, and Operators

IntelliSense now offers completions for casts, indexers, and operators. Look for these new options in the standard completions list.

 IntelliSense cast, indexer, and operator completion
IntelliSense now features completions for cast, indexor, and operators.

Automatically Insert Method Call Arguments

There is now a completion option that automatically inserts arguments when writing a method call.

 IntelliSense argument insertion
IntelliSense now provides argument insertion completions.

This feature is off by default so you will need to enable it in Tools > Options > Text Editor > C# > IntelliSense and select Tab twice to insert arguments (experimental) .

To use this feature, start writing a method call and press tab twice ( tab+tab ). Notice that the method call includes arguments based on the method’s default values. Use parameter info to cycle through the list of arguments that you would like inserted by pressing the up and down arrow keys. Start typing an argument to bring up the IntelliSense completion list and type semicolon, which will commit the argument and add a semicolon to the end of the method call.

User Interface for EditorConfig Files

EditorConfig now has a user interface.

 User interface for EditorConfig files
Update .editorconfig files with a user interface.

Open any .NET EditorConfig file from your solution. Notice that the new UI will automatically open and display code style and code quality configuration options for both C# and Visual Basic.

Visualize Inheritance Chains

There is now a visual representation for navigating and inspecting the inheritance chain.

 Inheritance chain visualization
Visualize inheritance chains without leaving your current code.

This option is off by default so you will need to turn it on in Tools > Options > Text Editor > C# > Advanced and select Show inheritance margin. Enabling inheritance margin will add new icons to the margins representing your code’s implementations and overrides.

Click the inheritance margin icon to display inheritance options that you can navigate to.

 Inheritance chain navigation
Navigate the inheritance chain using icons in the margin.

New Features for Containers

This release includes some exciting features for users of the Docker container tooling. You can now run any combination of services defined in your compose files, and enjoy improved container and image management in the Containers window.

Run Launch Services Defined in your Compose Files

We listened to your feedback, and now our Docker Compose tooling in Visual Studio provides the ability to run any combination of services defined in your Compose files. Open the Debug dropdown or right-click on your docker-compose project and select Manage Docker Compose Launch Settings to get started.

 Use the new menu option to manage Docker Compose launch settings.
Use the new menu option to manage Docker Compose launch settings.

The tooling finds all services defined in your Compose files and displays a dialog where you can choose services to start at launch. As you create a Launch Profile, you have the option to either select from the Docker Compose profiles declared in your Compose files, or individually select the services you want to start.

 Individually select the services you want to start.
Individually select the services you want to start.

Any Launch Profile can be saved and run from the Debug dropdown in Visual Studio. This means you can create multiple options for launching your application’s services!

 Custom launch profile dropdown menu

Advanced Interactions with Containers and Images

In Preview 2, we added many new features to the Containers tool window. We made it easier to view and interact with containers and images. Navigate to View > Other Windows > Containers in Visual Studio to open the Containers tool window and try out the new features!

Containers are now grouped by Compose project, which makes it easier to identify which containers are associated with your application. We also added a Labels tab in both Containers and Images so you can see which labels you are using during development.

 View container labels in the Labels tab.
View container labels in the Labels tab.

Our new Volumes tab allows you to see the volumes of a running container and even open the files in Visual Studio.

 View and access volume files in the Volumes tab.
View and access volume files in the Volumes tab.

Finally, the Containers tool window also supports tagging an image! Right click on an image and select Tag.

 Tag an image in the Containers tool window.
Tag an image in the Containers tool window.

 

Test Experience Accessibility improvements

We made several updates to improve the usability and keyboard accessibility of the test detail pane and log files in the Test Explorer.

View Console Logs in the Test Explorer

Console.WriteLine messages now show in the Test Explorer.

 Console.WriteLine now shows in the Test Explorer.
Console.WriteLine now shows in the Test Explorer.

Output appears as a collapsible section in the test detail summary pane. Long output is truncated with an option to open the log in a separate window. Stack traces are truncated to 20 frames, and will only show the first and last 10 frames for long traces. An important part of the truncation design was focused on reducing VS freezes when test runs have large output . Tests that have large output will no longer block the UI thread.

Test output can now preserve tags so hyperlinks and stacktrace links are navigable from the log files. These links are now keyboard friendly as well.

 Hyperlinks and stacktrace links are now navigable and keyboard friendly.
Hyperlinks and stacktrace links are now navigable and keyboard friendly.

Automatically Create Log Files

Log files are created for a single test result when output is over 300 characters, or if there are over 10 files attached to the test result. Log files now open in preview so it’s easier to manage your tabs. Both the Test Explorer and log files support Ctrl PgUp/PgDn for navigating the cursor and Shift + Ctrl PgUp/PgDn for selection.

 Automatic log file with preview and links.
Automatic log file creation with links, previewing, and selection!

The log file editor now uses the IVsTextView interface and can now open very large text files. This should eliminate the need for users to “Copy All” truncated logs and open them in a separate editor. For MSTest, we also include a single log file that aggregates output instead of having individual log files for each data row.

Git Productivity

We’ve continued to enhance the Git tooling in Visual Studio and are excited to announce some long-awaited updates. We’ve improved how you switch repositories, view commits, interact with diffs, and synchronize your branches.

The status bar now features an enhanced branch picker, a repository picker, and a sync button. Select a commit to open an embedded view of its details and the file changes in the Git Repository window without having to navigate to other windows. You can compare commits in the same way! This view also allows you to pop out commits into their own windows if you want to deep-dive into changes.

Finally, the Git Changes window has a new overflow menu with commands to manage remotes, push tags, and manage branches. Get a walkthrough of all these features and more, in our latest Git blog post .

 Enhanced Git tooling in 16.10 preview 2
Git tooling enhancements make it easier to manage repos, branches, and interact with diffs! See full size .

 

Visual Studio 2019 16.10 preview 2 adds a nice collection of productivity-enhancements for all Visual Studio users. Download the preview today to try out the new features and don’t forget to report a problem or give us feedback on Developer Community !

The post Visual Studio 2019 v16.10 Preview 2 Releases Today appeared first on Visual Studio Blog .

]]>
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-10-preview-2/feed/ twenty-seven
Visual Studio 2019 v16.9 and v16.10 Preview 1 are Available Today! https://devblogs.microsoft.com/visualstudio/vs2019-v16-9-and-v16-10-preview-1/ https://devblogs.microsoft.com/visualstudio/vs2019-v16-9-and-v16-10-preview-1/#comments Tue, 02 Mar 2021 17:11:32 +0000 https://devblogs.microsoft.com/visualstudio/?p=231706 Our team is eager to release Visual Studio 2019 v16.9 and v16.10 Preview 1. These include new features from our C++, .NET Productivity, XAML tooling, Address Sanitizer, and IntelliCode teams.

The post Visual Studio 2019 v16.9 and v16.10 Preview 1 are Available Today! appeared first on Visual Studio Blog .

]]>
Whenever there is a conference such as Microsoft Ignite , there is a tangible excitement throughout our internal teams. We look forward to discovering what new, exciting products, product features, and educational opportunities are available for our customers. Carrying this excitement forward, the Visual Studio team is eager to release Visual Studio 2019 v16.9 and v16.10 Preview 1. We hope you enjoy the new features highlighted from some of teams such as C++, .NET Productivity, Address Sanitizer, XAML Tooling, and IntelliCode teams.  In addition, Visual Studio 2019 v16.9 is our next long-term servicing release .

While you enjoy some of our virtual conference sessions, feel free to download one of our latest releases to give these new features a try.  Also, we love to hear your feedback through our improved Developer Community . It is the first place our teams look for new ideas or to address any problems you may be experiencing. We look forward to interacting with you through our vibrant online community.

What’s New in Visual Studio 2019 v16.9?

Address Sanitizer with C++

First up on our announcements is Address Sanitizer support for Windows is out of experimental support and now generally available. The highlight change is MSVC can now work out which runtime libraries are needed to use ASan with your project. Consequently, you no longer need to supply them when compiling from the command-line. All you need to do is set  /fsanitize=address and our tools will work out the rest of the details.

Additionally, the IDE integration for ASan-reported exceptions ( vcasan.lib ) now handles the complete collection of reportable ASan exceptions. If the compiler and linker detect you are building with ASan but not receiving debug information, it will offer the option to emit this information.

Finally, we have added support for global C variables and  __declspec(no_sanitize_address) . This makes it possible to opt out of running the Address Sanitizer over specific variables or even entire functions.

C++ Conformance

We have implemented the More Constexpr Containers proposals which allows destructors and new expressions to be  constexpr . We are excited about this as it paves the way for utilities like constexpr std::vector and  std::string . Included in our implementation in this release are compiler diagnostics for uses which trigger undefined behavior.

C++ IntelliSense

Based on your feedback, we have made many improvements to the stability and functionality of providing imported modules and header units in IntelliSense. We appreciate every report, so please keep them coming! While we were working on stability, we also added extra functionality. As a result, we can highlight  Go-to-definition on module imports, indexing support for export {…}, and more accurate module reference for those with identical names.

 Go-to-definition on Module Imports in Visual Studio 2019 v16.9
Go-to-definition on Module Imports in Visual Studio 2019 v16.9

As implementation of a top-voted Developer Community suggestion ticket, we added completion for  make_unique make_shared , and  emplace_back . These provide text completion based on the specified type parameter.

Additionally, Visual Studio 2019 can configure IntelliSense in CMake projects based on the value of CMake variables set by toolchain files. This greatly improves IntelliSense for Android and other embedded scenarios. The CMakeSettings.json file is the location to specify your custom IntelliSense options.

Improved Call Stack Handling of Stack Overflow Scenarios

Visual Studio 2019 has a new capability to filter out redundant frames from the call stack when the debugger stops on a Stack Overflow Exception . It is now possible to see the base of the stack where an infinite recursion originated. This should make it easier to investigate these types of bugs.

 Improved Call Stack Handling in Visual Studio 2019 v16.9
Improved Call Stack Handling in Visual Studio 2019 v16.9

 

New .NET Core Memory Dump Analyzers

Deadlocks generally occur when thread A is waiting for thread B to release a lock. Simultaneously, thread B is waiting for thread A to release a lock. This conundrum caused us to add a new Auto Analyzer to inspect the threads in a memory dump to determine if an unresponsive application is due to one of these deadlocks. A blocked finalizer can lead to abnormal memory growth which. This, in turn, can lead to system instability due to out of memory exceptions. Our new Analyzer inspects the .NET Core Finalizer queue to help you identify potential blocking objects in a memory dump.

 New Memory Dump Analyzers in Visual Studio 2019 v16.9
New Memory Dump Analyzers in Visual Studio 2019 v16.9

To access the Analyzer, open your memory dump in Visual Studio 2019. On the Mini Dump File Summary page, select the  Run Diagnostics Analysis action.

IntelliCode: Frictionless Suggestions in the Completions List

IntelliCode suggestions already helps you find other locations where a repeated edit applies. Comparatively, in Visual Studio 2019 v16.9, you can easily apply suggestions in a more frictionless way and without breaking your editing flow. You can find IntelliCode suggestions right in your IntelliSense completion list. From there, you are also able to find and apply the same change in other locations. This new functionality in the completion list should blend naturally into your editing flow. The edit is added to the completion list in a non-intrusive way. This makes edits easy to find and perform repetitious actions.

Find out more in the blog post from the team who wrote the feature.

 IntelliCode: Frictionless Suggestions in Visual Studio 2019 v16.9
IntelliCode: Frictionless Suggestions in Visual Studio 2019 v16.9

.NET Productivity

From our .NET team, we bring you several features to help with continual improvements in productivity. First on the list, using directives will now automatically be added when copying and pasting types to a new file. To give this a try, you will need to turn on this option under Tools > Options > Text Editor > C# . You can also access it from  Basic > Advanced and select  Add missing using directives on paste .

 Using Directives Automatically Added in Visual Studio 2019 v16.9
Using Directives Automatically Added in Visual Studio 2019 v16.9

We have also added inline type hints that insert adornments for variables with inferred types and lambda parameter types. Like the last feature, you will need to turn this feature on under the menu Tools > Options > Text Editor > C# or again under  Basic > Advanced > Display inline type hints . This last option is under the Inline Hints section. Hold down Alt+F1 to view hints at any time.

 Inline Type Hints in Visual Studio 2019 v16.9
Inline Type Hints in Visual Studio 2019 v16.9

In addition, there is now IntelliSense completion that automatically inserts a semicolon as a commit character for object creation and method completion.

 Automatic Semicolon Insertion in Visual Studio 2019 v16.9
Automatic Semicolon Insertion in Visual Studio 2019 v16.9

.NET Core Debugging with WSL 2

Are you a .NET Core developer who loves working in Windows and Visual Studio, but needs to test your app in Linux? If so, the new .NET Core debugging in WSL 2 feature is something you will want to try out! It enables you to debug your code in WSL 2 using the Linux distro of your choice.

 .NET Core Debugging with WSL 2 in Visual Studio 2019 v16.9 Preview 1
.NET Core Debugging with WSL 2 in Visual Studio 2019 v16.9

After installing WSL 2  and the  distribution of your choice and opening an ASP.NET Core web app or .NET Core console app in Visual Studio, you’ll see a new Launch Profile named WSL 2 .

 Adding Launch Profile WSL 2 in Visual Studio 2019 v16.9 Preview 1
Adding Launch Profile WSL 2 in Visual Studio 2019 v16.9

Selecting this profile will add it to your launchSettings.json. Once the new profile is selected, Visual Studio checks that your WSL 2 distribution is configured to run .NET Core apps, and helps you install any missing dependencies. As soon as all the dependencies are installed, you are ready to debug WSL 2. From here, you can start Debugging as normal, and your app will now be running in your default WSL 2 distribution. Check Environment.OSVersion to verify the correct distribution.

Note: Only Ubuntu and Debian have been tested and are currently supported. Other distributions supported by .NET Core should work but require manually installing the .NET Core Runtime  and  Curl .

By default, the WSL 2 launch profile will use the default distribution as set in wsl.exe, but you can modify your launch profile to include specific distributions. Adding extra functionality, you can also have multiple launch profiles. For instance, if you need to test your console app on Debian, Ubuntu 18.04, and Ubuntu 20.04, you could modify these settings.

XAML Tools (WPF, WinUI, UWP & Xamarin.Forms

In this release we’ve  made   multiple improvements to our XAML toolin g, highlight s  include :  

For  MVVM Tooling  improvements  in the XAML code editor w e’ve introduced  l ightbulbs to   set the design DataContext in XAML to an available  view-model . Setting this  enhances IntelliSense ,  such as the ability to create new ViewModel properties , Go To Definition and completions   right from  the  XAML code  editor You can even create new  ICommand properties  for whichever implementation your solution references.  

Xamarin.Forms “changes only” XAML Hot Reload is now GA quality, no longer in preview.  Apps targeting Xamarin.Forms 5.0 or newer will use this new mode by default.    

The new “changes only” XAML Hot Reload mechanism makes it possible to update your running app’s UI in real-time and see those changes reflected immediately without requiring the full page to be reloaded, and without having to save the file. “Changes only” Hot Reload also supports the Live Visual Tree, so you can see the runtime UI hierarchy for your app and easily navigate to your XAML source code.   

 Live Visual Tree in Visual Studio 2019 v16.9
Live Visual Tree in Visual Studio 2019 v16.9

For those customers who prefer to continue to use the older “full page” Hot Reload you can still do so even for projects targeting Xamarin.Forms SDK v5 by going to the Hot Reload settings under Tools > Options > Debugging > Hot Reload.

These are just two of our highlights, for a complete list of XAML tooling improvements please see the release notes.

Ding! Your Test Run is Complete!

One of the features we find particularly fun is how Test Explorer can play audio cues after a test run completes. This includes the option for different sounds for test runs with all tests passing and a different for test runs with at least one failing test. You are also able to fully customize these sounds using the Windows 10 sound library or yo ur own audio files. To watch this in action, check out our demo .

Improvements to GitHub Actions Tooling

In a previous post, using GitHub Actions in Visual Studio is as easy as right-click and Publish , we announced the efforts added to Visual Studio 2019 to extend our Publish experiences. Specifically, we sought to introduce and assist developers to repeatable, predictable continuous integration and deployment (CI/CD) environments using GitHub Actions. In this release, we bring the following improvements:

  • A redesigned summary page.
  • An added new status section
  • Commit and push the workflow with just one click

In addition, these updated experiences also now recognize more project types. Plus, we will help you generate CI/CD workflows for building, testing, deploying ASP.NET web projects to Azure App Service, Azure Functions, and Azure API Management.

 GitHub Actions Tooling in Visual Studio 2019 v16.9
GitHub Actions Tooling in Visual Studio 2019 v16.9

What’s New in Visual Studio 2019 v16.10 Preview 1?

.NET Productivity

Our .NET Productivity team has been working hard for this release!

Remove Unused References

We have added functionality through the Remove Unused References  command. This command allows you to clean up unused project references and NuGet packages. This option is turned off by default, but you can enable it under menu Tools > Options > Text Editor > C# > Advanced . Select the Remove Unused References command in Solution Explorer (Experimental). Once the option is enabled, the  Remove Unused References command will appear in the right-click menu of a project name or dependencies node.

 Remove Unused References in Visual Studio 2019 v16.10 Preview 1
Remove Unused References in Visual Studio 2019 v16.10 Preview 1

 

When you select  Remove Unused References , a dialog box will open. You can then view all references that are going to be removed, but you also have the option to preserve any you wish to keep.

 Customize Removal of Unused References in Visual Studio 2019 v16.10 Preview 1
Customize Removal of Unused References in Visual Studio 2019 v16.10 Preview 1

 

Simplify LINQ Expressions

Next, there is a refactoring to  Simplify LINQ expressions . This will remove the unnecessary call to the Enumerable for the  .Where() method to help improve performance and readability. To access this feature, place your cursor on the  LINQ Expression , press ( Ctrl+ ) to trigger the  Quick Actions and Refactorings menu. Select  Simplify LINQ expression .

 Simplify LINQ Expressions in Visual Studio 2019 v16.10 Preview 1
Simplify LINQ Expressions in Visual Studio 2019 v16.10 Preview 1

 

New Completion Options

Next, there is additional IntelliSense functionality by the added completion for Enum values when a type is known even if the Enum value is not entered.

 IntelliSense Completion for Enum Values in Visual Studio 2019 v16.10 Preview 1
IntelliSense Completion for Enum Values in Visual Studio 2019 v16.10 Preview 1

We have also added a new IntelliSense completion mode setting that gives you the ability to set default completion options. This new setting is available in Tools > Options > Text Editor > Advanced > Default IntelliSense completion mode where you can choose  from the following options: Last used which will preserve the last setting you used with Ctrl+Alt+Space , Tab-only which will only complete on tab, and Automatic which is currently the default behavior that will complete on punctuation and special characters.

 IntelliSense Completion Options in Visual Studio 2019 v16.10 Preview 1
IntelliSense Completion Options in Visual Studio 2019 v16.10 Preview 1

To continue to help you, we added a new command called Smart Break Line that automatically inserts a set of braces and adds the caret within those braces when using Shift + Enter as a commit character. Smart Break Line works for all type declarations that require braces as well as properties, events, fields, and object creation expressions. The example below shows Smart Break Line used on a class and  a field. If the field doesn’t have a semicolon at the end, typing Shift + Enter will convert the field to a property by adding a set of braces. One more use of Shift + Enter will undo the commit which will still automatically add a semicolon at the end of the field.

 Smart Break Lines in Visual Studio 2019 v16.10 Preview 1
Smart Break Lines in Visual Studio 2019 v16.10 Preview 1

New Code Style Preferences for New Lines

Finally, we have added new code style preferences for new lines. You can configure these preferences with an EditorConfig file or with  Tools > Options > Text Editor > C# > Code Style > New line preferences (experimental) .

 New Line Style Preferences in Visual Studio 2019 v16.10 Preview 1
New Line Style Preferences in Visual Studio 2019 v16.10 Preview 1

As an example, you can set your code style preferences to report a diagnostic and offer a code fix to remove extra blank lines.

 Remove Extra Blank Lines in Visual Studio 2019 v16.10 Preview 1
Remove Extra Blank Lines in Visual Studio 2019 v16.10 Preview 1

 

Extended Support for Visual Studio 2019 v16.9

Visual Studio 2019 version 16.9 is the fourth supported servicing baseline for Visual Studio 2019. Consequently, Enterprise and Professional customers are encouraged to standardize on this version as it will provide a long term stable and secure development environment.  As explained in more detail in our lifecycle and support policy , version 16.9 will be supported with fixes and security updates for one year after the release of the next servicing baseline.

Now that version 16.9 is available, version 16.7, our last released servicing baseline, will be supported for an additional year and will go out of support in April 2022. Prior minor versions 16.0, 16.1, 16.2, 16.3, 16.5, 16.6, and 16.8 are no longer under support.   These intermediary releases received servicing fixes only until the next minor update was released.

You can acquire the latest most secure version of Visual Studio 2019 version 16.9 in the downloads tab of the Subscriptions portal .  For more information about Visual Studio supported baselines, please review the support policy for Visual Studio 2019 .

As you can see, we have been busy updating our product to bring more value and productivity to our developers. We hope you enjoy each of these features and look forward to hearing your suggestions for improvements on Developer Community . For now, I am going to settle into a few of our Ignite 2021 sessions where I hope to see you interacting online. As always, we wish you a happy Visual Studio 2019 experience with either our v16.9 or v16.10 Preview 1 release. This calendar year promises some very exciting announcements, so stay tuned!

The post Visual Studio 2019 v16.9 and v16.10 Preview 1 are Available Today! appeared first on Visual Studio Blog .

]]>
https://devblogs.microsoft.com/visualstudio/vs2019-v16-9-and-v16-10-preview-1/feed/ twenty-nine
Visual Studio 2019 v16.9 Preview 3 is Available Today https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-9-preview-3/ https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-9-preview-3/#comments Wed, 20 Jan 2021 17:49:01 +0000 https://devblogs.microsoft.com/visualstudio/?p=231614 Visual Studio 2019 v16.9 Preview 3 releases today. Highlights of this release include additional functionality in C++, .NET Productivity, XAML Tools, and Accessibility. Check out the new features today!

The post Visual Studio 2019 v16.9 Preview 3 is Available Today appeared first on Visual Studio Blog .

]]>
First of all, Happy New Year! We hope everyone had a safe and enjoyable time ushering in 2021. As a team, we are looking ahead with strong optimism for what is coming this year. While we work on planning our next series of releases, we are extremely excited for what we hope to deliver to the developer community as a whole. Closer to the heart, we cannot wait to add more value to those of you who turn to Visual Studio as a primary productivity tool.

Today the Visual Studio team welcomes Visual Studio 2019 v16.9 Preview 3 as our first preview release of 2021. We hope the new additions to C++, .NET Productivity, Test Explorer, Accessibility, and XAML Tools will please you. As you download our latest version, we hope this summary of features will build anticipation to try each of them.

Meanwhile, we encourage you submit any feedback or suggestions to our thriving online Developer Community .

What’s New in this Release?

C++

Opening this section, we are excited to mention additional command line tools. First, you can now target the LLVM version of the OPenMP runtime with the command line switch /openmp:llvm . Included in this item is added support for the lastprivate clause on #pragma omp sections and unsigned index variables in parallel for loops. Please keep in mind this switch is currently only available for the AMD64 target, and we do still consider this experimental.

Next, Visual Studio CMake projects now have first class support for remote Windows development. This includes configuring a CMake project to target Windows ARM64. Subsequently, you can also deploy and debug the project on a remote Windows machine from Visual Studio 2019.

Speaking of CMake, we have shipped binaries for Ninja and CMake with Visual Studio for quite some time. As promised we continue to upgrade them so you can make the most of recent versions of those tools. In this release, we have upgraded Ninja to v1.10 and CMake to v3.19 .

Finally, we have marked many of the lock and guard types in our Standard Template Library (STL) implementation as  nodiscard . This gives you better compiler errors if you use them incorrectly. You can take a look at the details in this pull request on GitHub .

IntelliSense in C++

Based on your feedback, we have made many improvements to the stability and functionality of providing imported modules and header units in IntelliSense. We appreciate every report, so keep them coming! While we were working on stability, we also added extra functionality. Consequently, we can highlight Go-to-definition on module imports, indexing support for export {…}, and more accurate module reference for modules with identical names.

As implementation of a top-voted Developer Community suggestion ticket, we added completion for  make_unique make_shared emplace and  emplace_back . These provide completion based on the specified type parameter.

 Additional IntelliSense Completion in Visual Studio 2019 v16.9 Preview 3
Additional IntelliSense Completion in Visual Studio 2019 v16.9 Preview 3

We have also added improved language compliance of C++ by implementing some standards defects reports.

Address Sanitizer

After announcing ASan support for Windows last year, we have been continuously working on the experience and implementation.

The IDE integration for ASan-reported exceptions( vcasan.lib ) now handles the complete collection of reportable ASan exceptions. Like other ASan libraries, this specific library, vcasan , is found automatically when you pass the  /fsanitize=address . The compiler and linker will also suggest emitting debug information if they detect you’re building with ASan but not receiving debug information. As we approach our Visual Studio 2019 v16.9 generally available release, more details will be provided in the full ASan documentation.

As a final point, we have made some extensions and fixes to the Windows support.

Use Audio Cues with Test Explorer

We love to implement user suggestions, and this is one of them! Test Explorer can now play a customizable sound when a test run completes. You can select two different sounds. The first one is for indicating the test run succeeded with passing test results. The second chosen sound would indicate a test with at least one failure. What makes this even more exciting is the added accessibi lity of the Test Explorer by adding an audio cue for developers with visual impairments.

When you first use this feature, the sound selection is the default Windows 10 sound dialog which has many preset sounds. Rest assured, you can use  any audio file from your computer ! We had some fun with this, and hope you do too.

The Group By menu has also been made friendlier with screen readers as we have changed it to more concise wording and more efficient word order.

High Contrast Improvement

Speaking of accessibility, as part of the Visual Studio team’s commitment to such experiences, the IDE has the capability to detect if you have High Contrast settings enabled in Windows. If those options are enabled, Visual Studio 2019 will honor those settings.

Again, this suggestion has come from user advice that the Visual Studio themes should meet their needs better than the ones provided by the operating system. We have added a checkbox to give you control over whether you want Visual Studio to use Windows High Contrast mode.

To activate this feature, go to  Tools > Options . Note the new option Use Windows High Contrast Settings . When this option is checked, the default setting will match the detected Windows High Contrast settings. If this box remains unchecked, you are free to choose any of the themes included with Visual Studio 2019. This theme choice will continue to persist even if Windows reports that a High Contrast color theme is in use.

.NET Productivity

The .NET Productivity team has been busy adding additional IntelliSense improvements. This release, we can highlight completion for preprocessor symbols. To see this in action, start typing the  #if directive to see the new completion options available for symbols currently defined in scope.

 IntelliSense Completion for Preprocessor Symbols in Visual Studio 2019 v16.9 Preview 3
IntelliSense Completion for Preprocessor Symbols in Visual Studio 2019 v16.9 Preview 3

You may notice a new change in Solution Explorer as it will now display the new .NET 5.0 Source Generators underneath the Analyzer node. This will allow you to easily navigate and view the generated code.

 .NET 5.0 Source Generators in Visual Studio 2019 v16.9 Preview 3
.NET 5.0 Source Generators in Visual Studio 2019 v16.9 Preview 3

 

Go To All will no longer display duplicate results across netcoreapp3.1 and netcoreapp2.0 as well as results for partial types that exist to wrap another nested type. This will help declutter the results so you can easily find and navigate through your code. The results also now include the filename for partial symbols.

 Go To All Easier Code Navigation in Visual Studio 2019 v16.9 Preview 3
Go To All Easier Code Navigation in Visual Studio 2019 v16.9 Preview 3

XAML Tools (WPF, WinUI, UWP, & Xamarin.Forms)

As a quick highlight to end out this post, we have expanded  MVVM Tooling for XAML . The functionality is the introduction of lightbulbs to generate commands and new view-models.

 MVVM Tooling Support in Visual Studio 2019 v16.9 Preview 3
MVVM Tooling Support in Visual Studio 2019 v16.9 Preview 3

Happy New Year & Happy Developing

We sincerely hope these new features and additional stability give you reason to smile this new year. Thank you for your constant engagement in our virtual Developer Community . This is the best place to submit feedback and suggestions as we have teams looking out for new and up-voted issues.

Wrapping up this post , we wish you the happiest in 2021 and hope it is your most productive development year yet!

The post Visual Studio 2019 v16.9 Preview 3 is Available Today appeared first on Visual Studio Blog .

]]>
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-9-preview-3/feed/ twenty-two
AI-assisted IntelliSense for your team’s codebase https://devblogs.microsoft.com/visualstudio/ai-assisted-intellisense-for-your-teams-codebase/ https://devblogs.microsoft.com/visualstudio/ai-assisted-intellisense-for-your-teams-codebase/#comments Mon, 18 Nov 2019 20:00:45 +0000 https://devblogs.microsoft.com/visualstudio/?p=227488 Visual Studio IntelliCode uses machine learning to offer useful, contextually-rich code completion suggestions as you type, allowing you to learn APIs more quickly and code faster. With our latest release, you can easily share IntelliCode team completions and automate updates via an Azure DevOps task.

The post AI-assisted IntelliSense for your team’s codebase appeared first on Visual Studio Blog .

]]>
Visual Studio IntelliCode uses machine learning to offer useful, contextually-rich code completion suggestions as you type , allowing you to learn APIs more quickly and code faster. Although IntelliCode’s base model was trained on over 3000 top open source C# GitHub repositories, it does not include all the custom types in your code base. To produce useful, high-fidelity, contextually-rich suggestions, the model needs to be tailored to unique types or domain-specific APIs that aren’t used in open source code. To make IntelliSense recommendations based on the wisdom of your team’s codebase, the model needs to train with your team’s code.

Earlier this year, we extended our ML model training capabilities beyond our initial Github trained base model to enable you to personalize your IntelliCode completion suggestions by creating team models trained on your own code .

Team completions shared and automated easily!

Your team completions become part of your normal developer workflow just by associating a model to your repo . Anyone with access to your repository, automatically gets team completions – no extra configuration steps are required!

Once you’re ready, you can keep your completions up-to-date with our new Azure DevOps task that can retrain your models on CI. When a change is made to your codebase, the model is automatically trained and shared with your team.

2 steps to team completions

 

 Setting up IntelliCode team completions with IntelliCode training service in Azure Dev Ops

Set up and share

Repository-associated models are automatically shared with others working in the same codebase as long as users have enabled automatic acquisition of team models in Visual Studio. To enable automatic acquisition by going to Tools > Options > IntelliCode > Acquire team models for completion . Access to the repository is access to the model. Be sure you are at least Visual Studio 16.4 preview 4 to enable these preview features.

When training, we collect some information about the checked-out commit where the training took place. Anyone who requests that model must have the same commit in their repository and be able to produce the same information that was collected during training to receive the team model.

Please note that you’ll need to be on at least Visual Studio 2019 version 16.4 preview 5 to try out these updates to the IntelliCode team completions experience.

See more details on how to acquire and share team completions here .

Automate

Once you’re happy with the team completions on you repo, you should set up to automatically retrain as part of your continuous integration (CI) pipeline in  Azure Pipelines . When code changes are pushed to your repository, the build task runs and your team completions are retrained and made available to the repo. In parallel, Visual Studio checks for updates to team completions  and will update automatically .

Install the  Visual Studio IntelliCode Team Model Training task  from Visual Studio Marketplace to your Azure DevOps organization or Azure DevOps Server (formerly TFS).

See more details about how to configure and automate the build task here .

Tell us what you think!

We’d love to understand your current experience with IntelliCode and where we can improve. Try out sharing team completions and automating updates today and tell us what you think of the new experience. Please note that you’ll need to be on at least Visual Studio 2019 version 16.4 preview 5 to try out these updates to the IntelliCode team completions experience.

Please raise issues and comments Visual Studio “report a problem” .

We’re interested to hear feedback about the recommendations themselves, the performance of the feature, or any capabilities you might be missing.

To keep up with the future of AI-assisted development, sign up for our Insiders newsletter.

The post AI-assisted IntelliSense for your team’s codebase appeared first on Visual Studio Blog .

]]>
https://devblogs.microsoft.com/visualstudio/ai-assisted-intellisense-for-your-teams-codebase/feed/ six
Re-imagining developer productivity with AI-assisted tools https://devblogs.microsoft.com/visualstudio/ai-assisted-developer-tools/ https://devblogs.microsoft.com/visualstudio/ai-assisted-developer-tools/#comments Mon, 04 Nov 2019 19:00:09 +0000 https://devblogs.microsoft.com/visualstudio/?p=227184 Harnessing the wisdom of the community, Visual Studio IntelliCode is revolutionizing developer productivity. We started with AI-assisted IntelliSense and are now expanding the application of artificial intelligence to accelerate learning, radically improve development agility, and increase code quality whole line completions and refactoring.

The post Re-imagining developer productivity with AI-assisted tools appeared first on Visual Studio Blog .

]]>
TL;DR:

Harnessing the wisdom of the community, Visual Studio IntelliCode is revolutionizing developer productivity. We started with AI-assisted IntelliSense and are now expanding the application of artificial intelligence to significantly accelerate learning, radically improve development agility, and increase code quality by means of two exciting new capabilities: whole line completions and refactoring .

Technology is evolving so fast that every developer is constantly learning, whether you’re adopting a new programming language, API, or architecture (e.g. microservices). Amidst this rate of technological change, existing tools are no longer sufficient for achieving agility as development teams are trying to accelerate their time-to-market  and increase code quality. As a result, development tools need to radically evolve to satisfy the productivity demands of modern teams.

At Microsoft Ignite , we showed a vision of how AI can be applied to developer tools. After talking with thousands of developers over the last couple years, we found that the most highly effective assistance can only come from one source: the collective knowledge of the open source, GitHub community. This is exactly what IntelliCode provides.

AI-assisted suggestions + whole-line code completions

IntelliCode now provides whole-line code completion suggestions mined from the collective intelligence of your trusted developer knowledge bases. This is like having an AI-developer pair-programming with you, providing meaningful, suggestions and whole-line code completions without disrupting your flow. To generate accurate suggestions and provide completion assistance as you code, IntelliCode extends the GPT-2 transformer language model for our machine-learning models to learn about programming languages and coding patterns.

The GPT model architecture , originally developed by OpenAI, has demonstrated strong natural language understanding, including the ability to generate conditional synthetic text examples without needing domain-specific training datasets. For our initial language-specific base models, we adopted an unsupervised learning approach that learns from over 3000 top GitHub repositories. Our base model extracts statistical coding patterns and learns the intricacies of programming languages from GitHub repos to assist developers in their coding. Based on code context, as you type, IntelliCode uses that semantic information and sourced patterns to predict the most likely completion in-line with your code.

 Suggested whole-line completions in Visual Studio Code editor
AI-assisted whole-line completions in Visual Studio Code editor

 

IntelliCode has now extended our machine-learning model training capabilities beyond the initial base model to enable your  teams to train their own team completions. Team completions are useful if your development team uses internal utility and base class libraries or domain-specific libraries that aren’t commonly used in open-source GitHub repositories. If you’re using code that isn’t in that set of GitHub repos, those recommendations aren’t as useful to you. By training on your team’s code, IntelliCode learns patterns from your code to make more accurate suggestions. This enables your  team to accelerate  learning and take advantage of the knowledge of your team and broader community.

AI-assisted Refactoring

IntelliCode watches code changes as they occur in the IDE and locally synthesizes, on demand, edit scripts from any set of repetitive pattern changes. It uses these edit scripts to produce suggestions, enabling you to apply repetitive changes quickly or create a pull request to apply the suggestion(s) for team review without distracting your current work. IntelliCode refactorings take the time-intensity and error-proneness out of routine tasks, such as introducing a new helper function. To do so, IntelliCode uses an AI technology called program synthesis , and more specifically, programming-by-examples (PBE).

 Quick action menu in Visual Studio IDE showing available actions for IntelliCode refactorings. Available actions are take the repeated edit, ignore the suggestion, or submit a new PR with the suggestion.
IntelliCode refactorings based on repetitive code edits in Visual Studio IDE

 

PBE technology has been developed at Microsoft by the PROSE team and has been applied to various products to enable users to streamline repetitive tasks after providing a few examples. You’ve seen PBE in action in Flash Fill in Excel and webpage table extraction in PowerBI . IntelliCode advances the state-of-the-art in PBE by allowing patterns to be learned from noisy traces as opposed to explicitly provided examples, without any additional steps on your part. You can read more about this in this earlier post . We’re planning to broaden this capability to more languages, as well as enabling your team easily benefit from the patterns that you find.

 

 Display of IntelliCode refactoring suggestions in Visual Studio IDE
IntelliCode refactorings in Visual Studio IDE

 

What about privacy and code security?

We know that your code is a vital business asset, so we are committed to a simple principle across our developer tools and services: your code remains your code, your models are your models, and remain your models unless you choose to share them with others. You control when to utilize AI-assistance and who has access to your data.

As examples of this principle in action, when we train a team model for IntelliCode completions on your codebase, we don’t share that model with anyone but you unless you choose to share it, and we locally extract only those elements of the code that are needed to create a model for recommending completion values. We also make it easy for you to ensure that access to your model follows the same security access rules as your code repo when shared, with no extra configuration. You can read more about this in the documentation .

Our PROSE-based models work entirely locally, so your code never leaves your machine.

When it is necessary for us to use a service-based model to deliver a feature, we ensure all appropriate security is in place to secure any information (including code) that is transmitted over the network – the documentation has more information.

What’s next?  

Our ambition is to contribute to developer-assistance across the whole developer lifecycle. We’re particularly interested in making learning and retrieving typical code snippets whilst learning a new API or re-learning an old one, a lot easier. We continue to listen hard to our developer community about where we can best contribute to assist with your daily development challenges.

Get the latest Visual Studio 2019 previews ; there, you can try much of this out for C# already. Watch the Visual Studio blog for more announcements as we make progress.

You can also sign up for regular updates and invitations to future private previews.

Try it now

You can try out IntelliCode team models and refactorings in Visual Studio for C# by downloading our latest Visual Studio Preview .

We also support a variety of languages in Visual Studio and Visual Studio Code :

  • Visual Studio : C#, C++, JS/TS, XAML
  • Visual Studio Code : Python, JS/TS, Java, SQL

 

Happy coding!

The post Re-imagining developer productivity with AI-assisted tools appeared first on Visual Studio Blog .

]]>
https://devblogs.microsoft.com/visualstudio/ai-assisted-developer-tools/feed/ fourteen
Code more, scroll less with Visual Studio IntelliCode https://devblogs.microsoft.com/visualstudio/code-more-scroll-less-with-visual-studio-intellicode/ https://devblogs.microsoft.com/visualstudio/code-more-scroll-less-with-visual-studio-intellicode/#comments Thu, 14 Mar 2019 18:00:13 +0000 https://devblogs.microsoft.com/visualstudio/?p=224638 Learn how to get Visual Studio IntelliCode to make recommendations based on patterns it finds in your own code in 3 simple steps.

The post Code more, scroll less with Visual Studio IntelliCode appeared first on Visual Studio Blog .

]]>
You may know that Visual Studio IntelliCode helps you write code from commonly used libraries, based on machine learning across thousands of open sourced GitHub repos. Instead of having to search and scroll through a sorted list of methods and properties, you get suggestions on the most likely ones for your coding context as you type.

While the wisdom of the open source community is delivered direct to your editor’s IntelliSense, what if you want to write code based on a set of APIs not included in the GitHub public repos? Perhaps you use numerous internal utility and base class libraries, or domain-specific libraries that aren’t often used in open-source.  You may not know that if you code in C# you can have IntelliCode analyze to your own code and share what it learns it across your team, so you can all benefit from recommendations and more easily collaborate. Depending on your codebase, analyzing your code and sharing the resulting model could be done in a matter of minutes and save your team hours of hunting through lists and documentation diving.

How do I create and use my own model?

It’s as easy as 3 short steps.

  1. Make sure you have the IntelliCode extension for Visual Studio installed
  2. Effortlessly create a custom model for a codebase that contains good examples of usage of your desired class libraries – remember that the quality of suggestions offered by IntelliCode is directly related to the quality of the samples you provide.
  3. Easily share it with your colleagues so they can start using the recommendations. If you need to update the model, for instance if there are substantial changes to the code, your team will automatically receive the latest updates when you retrain.

 Creating an IntelliCode Custom Model

My colleague Allison Buchholtz-Au has a great video covering this topic if you’d like to see more details.

If you’re a contributing author of an open source component, it’s simple for you to share a model that helps your users leverage your libraries more easily. Don’t forget to share the model somewhere that users who are getting started will find it. We suggest linking to it from the README in your repo.

What about security?

Most importantly, we don’t upload your raw source code to our servers. You can learn more about what happens when you train a model in our FAQ .

Your feedback matters

If you have more suggestions and feedback about IntelliCode, we’d love to hear from you. Get in touch and let us know more.

The post Code more, scroll less with Visual Studio IntelliCode appeared first on Visual Studio Blog .

]]>
https://devblogs.microsoft.com/visualstudio/code-more-scroll-less-with-visual-studio-intellicode/feed/ eight
Argument completion made easy with Visual Studio IntelliCode https://devblogs.microsoft.com/visualstudio/argument-completion-made-easy-with-visual-studio-intellicode/ https://devblogs.microsoft.com/visualstudio/argument-completion-made-easy-with-visual-studio-intellicode/#comments Tue, 12 Mar 2019 18:00:44 +0000 https://devblogs.microsoft.com/visualstudio/?p=224622 IntelliCode now makes recommendations for arguments in your C# code. Just install the latest version of the IntelliCode extension for Visual Studio and start editing C# code faster with in-line suggestions.  It's as simple as that!

The post Argument completion made easy with Visual Studio IntelliCode appeared first on Visual Studio Blog .

]]>
Visual Studio IntelliCode saves you time by putting what you’re most likely to use at the top of your completion list. IntelliCode recommendations are based on thousands of open source projects on GitHub, each with over 100 stars. When combined with the context of your code, the completion list is tailored to promote common practices. As a result, instead of having to search and scroll through sorted lists, you get suggestions on the most likely ones for your coding context as you type.

Now we’re making selecting the right arguments easier too!

What does it do?

IntelliCode now makes recommendations for arguments in your C# code. Just install the latest release of the IntelliCode extension for Visual Studio  and start editing C# code. It’s a simple as that!

When you enter an argument, you’ll notice the familiar starred IntelliCode recommendations appear when you’re typing. If you want to see a suggested argument without even typing a single character, you can also invoke IntelliSense directly with Ctrl+Space.

 Parameter completion, showing a recommendation from IntelliCode

Your feedback matters

We hope you enjoy this new feature – if you have more suggestions and feedback about it or other parts of IntelliCode, we’d love to hear from you. Get in touch  and let us know more.

The post Argument completion made easy with Visual Studio IntelliCode appeared first on Visual Studio Blog .

]]>
https://devblogs.microsoft.com/visualstudio/argument-completion-made-easy-with-visual-studio-intellicode/feed/ eighteen
The Latest in Visual Studio 2017 for Mac – Version 7.7 https://devblogs.microsoft.com/visualstudio/the-latest-in-visual-studio-2017-for-mac-version-7-7/ Thu, 29 Nov 2018 18:00:59 +0000 https://blogs.msdn.microsoft.com/visualstudio/?p=19795 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.

The post The Latest in Visual Studio 2017 for Mac – Version 7.7 appeared first on Visual Studio Blog .

]]>
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 en vironments. 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 pr eviously 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.

The post The Latest in Visual Studio 2017 for Mac – Version 7.7 appeared first on Visual Studio Blog .

]]>
A Summer of ASP.NET: Catching up with .NET Web Developments https://devblogs.microsoft.com/visualstudio/a-summer-of-asp-net-catching-up-with-net-web-developments/ Thu, 24 Sep 2015 12:00:00 +0000 https://blogs.msdn.microsoft.com/visualstudio/2015/09/24/a-summer-of-asp-net-catching-up-with-net-web-developments/ Summer 2015 has come and gone (in the northern hemisphere at least!), and four releases of ASP.NET have hit the internet in that time. With the Visual Studio 2015 release in July the team released ASP.NET 4.6, a major update for our ASP.NET frameworks and tooling.

The post A Summer of ASP.NET: Catching up with .NET Web Developments appeared first on Visual Studio Blog .

]]>
Summer 2015 has come and gone (in the northern hemisphere at least!), and four releases of ASP.NET have hit the internet in that time. With the Visual Studio 2015 release in July the team released ASP.NET 4.6, a major update for our ASP.NET frameworks and tooling. Additionally, ASP.NET 5 beta 5 was released with Visual Studio 2015 so that developers could start to explore the new development framework. With several updates to ASP.NET 5 since that date, and the introduction of the new ASP.NET web hooks tools, there are many new features and capabilities to explore. In this post, we’ll focus on the newest features for web developers.

ASP.NET 4.6 – More of a good thing

With ASP.NET 4.6, developers working with Web Forms, MVC, WebAPI, Windows servers, and Internet Information Server have the latest C# tools and compilers for their favorite platform. In addition to providing support for C# 6 and VB 14, this release also brought support for HTTP2 on compatible servers.

Async Model Binding

Web Forms developers in ASP.NET 4.6 can now write model binding methods that run asynchronously and return Task objects on pages that are marked with an async=”true” page directive. No longer will the web server block threads while it is waiting for a database call when you have model-binding code like this:

public async Task <Models. Trip> GetTripFor([QueryString] string id)
{
    var tripId = Guid .Parse(id);
    return await dataContext.Trips.FirstOrDefaultAsync(t => t.Id == tripId);
}

Our id will be read from the querystring “id” parameter, parsed as a Guid and then passed to an Entity Framework query against the Trips collection in our dataContext . The best part is the use of the await keyword on the query will allow the operation in the database to run while the executing thread is returned to the ASP.NET threadpool.

.NET Compiler Platform

The new language features are available throughout ASP.NET, and are enabled by default when you create a new web application. If you want to add these features to a project that you are upgrading from an older version of ASP.NET, simply install the compiler platform NuGet package with the following command in the Visual Studio Package Manager Console:

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Tooling Improvements

We also brought support for new web development technologies and tools to Visual Studio. Starting with 2015, the JSON editor supports JSON Schema validation and provides IntelliSense based on known schemas.

 JSON Schema Validation

The editor also supports SchemaStore.org – an open source collection of useful JSON schema files. Any JSON file that has a schema associated on schemastore.org will automatically get IntelliSense and validation support.

Support is now provided for bower and npm configuration files. This gives you the IntelliSense type-ahead that you would expect and gives you package information as you key in package names:

 IntelliSense for bower and npm files

 

The HTML editor has been improved as well. The editor now has a better understanding of the common double-curly brace syntax {{…}} . This ensures that inner content is not treated as HTML and marked invalid by the editor. Developers using Angular, Mustache, Handlebars, and other double-curly brace templating languages benefit from this. The editor also now understands Angular directives and attributes. You’ll see icons and helpful hints when you start typing out that ng- attribute name:

 IntelliSense for Angular.js

 

The Bootstrap CSS framework receives similar treatment, with a special icon to indicate the various classes and capabilities of the Bootstrap framework, keeping them logically separated from any classes you have created:

 IntelliSense for Bootstrap CSS

 

The JavaScript editor has seen similar improvements, with support for AngularJS, ReactJS, and new JavaScript language features. Try out the new code navigation bar in the editor to assist in traversing large JavaScript files. If you are working with complex JavaScript scripts, you may want to decorate them with JSDoc comments to help document their features like you do with C# and VB code. The JavaScript editor now provides IntelliSense hints for writing your JSDoc markup and supports displaying this content as IntelliSense pop-ups in the editor.

 IntelliSense hints for JSDoc markup

More information about the tools and features of ASP.NET 4.6 can be found in our announcement blog post on the Web Development blog .

ASP.NET 5 betas

ASP.NET 5 is the name of the next generation web development platform that the team is working on. In addition to continuing to provide ASP.NET MVC and WebAPI development capabilities, this open-source platform promises to provide a cross-platform development and deployment experience. ASP.NET 5 projects can be developed, built, and deployed on Windows, Mac, or Linux operating systems.

The ASP.NET 5 team has released beta versions of the framework and tools every month, and has a published roadmap that they are tracking for a final release. With three beta releases over the summer, there have been a significant number of advancements in Web Development with ASP.NET.

ASP.NET 5 beta 5 shipped with Visual Studio 2015 and came with an initial set of capabilities to support development with a new version of ASP.NET MVC that was merged with ASP.NET Web API to become ASP.NET MVC 6. It supports developing web applications with Mac and Linux through the use of the open source Mono runtime. Other features include:

  • C# 6 support in Razor markup
  • A new JSON helper to assist in serializing JSON for views
  • New tag helpers like ImageTagHelper and support for binding dictionary properties

ASP.NET 5 beta 6 shipped at the end of July and brought a bunch of non-breaking framework changes to improve developer’s interactions with ASP.NET. Additionally, the SQL Server distributed cache was introduced as well as strong name support for assemblies referenced by a web project. The MVC and WebAPI packages were refactored to allow them to stand on their own, enabling developers to grab just the parts of the framework they needed without inheriting the entire MVC framework.

ASP.NET 5 beta 7 was made available in early September as a pair of downloads from www.asp.net/vnext . These downloads update both the ASP. NET frameworks (dnvm, dnx) and the web development tools in Visual Studio 2015. This was a significant release for ASP.NET because it features the first public preview of the native .NET Core frameworks for Mac and Linux. No longer is the Mono framework required to run ASP.NET with these versions of .NET Core.

Some of the additional enhancements in ASP.NET 5 beta 7 include:

  • dnx commands no longer require a directory to be specified at the command-line. You can simply execute dnx web to execute the web command in the current project folder.
  • dnu restore output has been improved to report the nuget.config files and feeds used to retrieve packages.
  • Incompatible package dependencies are reported better and appear cleaner in the Visual Studio 2015 error list.
  • The dnx command-line supports a new –framework switch to specify which .NET Framework to use.
  • When running with the full .NET Framework on Windows, the app.config file is supported.
  • You can now specify the operating system for which a dnx should be installed when executing dnvm. This allows you to install a dnx for Linux on Windows and then public that app to Linux from Windows.
  • Unit testing templates were made available through SideWaffle and the Yeoman ASP.NET Generators .

The Kestrel web server has been improving in leaps and bounds. In the beta 7 release we made a pair of performance improvements to allow chunked responses when no content length is specified and to allow write-behind buffering when writing responses to the network. We decided to make Kestrel our primary host that we will support, and discussed this in a recent ASP.NET Community Standup:

 

Tooling in ASP.NET 5 beta 7 has been improved to give a number of productivity improvements for web developers. We refactored the package search analyzer to now add only framework packages that you may be referencing when you execute a Ctrl+. hotkey.

 Refactored package analyzer

 

Now when you start a project from Visual Studio, we enable the Debug Logger by default so that all Debug and higher severity messages are reported to the console. Finally, we added IntelliSense support to TagHelpers so that you can learn how to better use these extensions to the Razor markup.

 IntelliSense for TagHelpers in Razor markup

A complete description of the important new features of the ASP.NET 5 beta 7 release are available on our announcement blog post .

ASP.NET Web Hooks

An exciting new extension to ASP.NET 4.6 was introduced in September called ASP.NET Web Hooks. With this new framework, you can integrate with internet services to send or receive webhooks. These webhooks are small messages that are sent between services when subscribed events are triggered on a service.

We have an extensive series of blog posts on how to configure receiving and sending webhook integration messages between web services. Check them out on the Web Development blog .

ASP.NET Community Standup

Each week the ASP.NET leadership team broadcasts a meeting where they discuss the latest features and changes to the web development framework. They take community contributions and questions, so this is your chance to have your voice heard by the team that is building the next generation of .NET web tools. Follow along with their broadcasts and review the already completed meetings at http://live.asp.net .

 ASP.NET Community Standup

Summary

It’s an exciting time to be a web developer on the Microsoft application platform. With a new ASP.NET framework in open development, new compilers and features for the production-ready ASP.NET 4.6, and new innovative frameworks like WebHooks there is a lot to learn and start using. Visit www.asp.net and blogs.msdn.com/webdev to learn more about all of the latest web platform frameworks and tools.

 

 clip_image018

Jeffrey T. Fritz ( @csharpfritz )
Program Manager, Azure Dev Experience

Jeff is a long time web developer who survived the dot-com era. He’s been writing web applications since the 1990s and currently is the program manager for the NuGet package manager. His two pre-teen daughters think he’s the coolest because he works at the same place as the Minecraft team.

The post A Summer of ASP.NET: Catching up with .NET Web Developments appeared first on Visual Studio Blog .

]]>
Enabling IntelliSense for Mobile Services JavaScript in Visual Studio https://devblogs.microsoft.com/visualstudio/enabling-intellisense-for-mobile-services-javascript-in-visual-studio/ Fri, 26 Jul 2013 08:00:00 +0000 https://blogs.msdn.microsoft.com/visualstudio/2013/07/26/enabling-intellisense-for-mobile-services-javascript-in-visual-studio/ In a previous post , we shared the new Windows Azure Mobile Services integration and capabilities in Visual Studio 2013. These include the ability to edit your Mobile Services table scripts. In this post, we describe how you can enable IntelliSense on your server side scripts in Visual Studio.

The post Enabling IntelliSense for Mobile Services JavaScript in Visual Studio appeared first on Visual Studio Blog .

]]>
In a previous post , we shared the new Windows Azure Mobile Services integration and capabilities in Visual Studio 2013. These include the ability to edit your Mobile Services table scripts. In this post, we describe how you can enable IntelliSense on your server side scripts in Visual Studio. This is a capability that isn’t integrated in Visual Studio 2013 Preview, following the steps below will help you turn it on.

To get started, download our IntelliSense definition files from here . Save these files to a relatively easy to access path.

How much IntelliSense?

The files we’re releasing today provide you IntelliSense for your Mobile Services table scripts in Visual Studio. This includes working with data using the tables API, sending push notifications using the push API and working directly with SQL using the mssql API. Here’s a quick example of what it looks like:

 Intellisense

See the ReadMe for more information on limitations and certain exclusions in the definition files.

Enabling IntelliSense

There are two ways to enable IntelliSense on your server side scripts in Visual Studio 2013 Preview. Use the first method (add an explicit reference to specific script files) if you don’t want to affect IntelliSense for other JavaScript files that you edit in Visual Studio. For example, if your Windows Store app is in JavaScript, then you don’t want IntelliSense for your client side JavaScript files to be injected with Mobile Services definitions. Use the second method (add a reference through Tools -> Options) when you want to enable IntelliSense in all your server side scripts without any changes to the scripts themselves. The second method may be more suitable if your client project is a Windows Store app in C#, VB, or C++.

1. Add an explicit reference to specific script files

In the script where IntelliSense is desired, open the script file (e.g. Insert.js) and add a reference to mobileservices.intellisense.js in a comment above the parent method declaration. Path defines the destination on disk where you saved the mobileservices.intellisense.js reference file.

Here’s what this will look like if the IntelliSense file is saved to C:IntelliSense:

 Adding an explicit reference to specific script files

2. Add a reference through Tools -> Options

IntelliSense can also be enabled by adding a reference to mobileservices.intellisense.js through the Tools-> Options dialog. This will add Mobile Services definitions to any JavaScript file.

  1. Choose Tools, Options, Text Editor, JavaScript, IntelliSense, and References.
  2. Change the Reference Group to “Implicit (Web).”
  3. Browse (…) to the location on disk where you saved the mobileservices.intellisense.js file and choose Open.

 Adding a reference through Tools Options

Note that both procedures only apply to your machine, if you work in a team or attempt to edit the scripts on other machines, copy the files to each machine and follow the instructions above. If you edit the scripts in the Windows Azure Management Portal, you will not receive IntelliSense support.

We hope you will find this short post helpful when you take advantage of the great Windows Azure Mobile Services integration with Visual Studio 2013. Please tell us what you think via the send-a-smile feature, submit bugs through Microsoft Connect , or post on Visual Studio User Voice .

 Image 0250 image thumb 288D7524 Merwan Hade: Program Manager, Visual Studio Windows Azure Tools

Merwan is a Program Manager with the Windows Azure Tools team in Visual Studio. He has worked on a number of tooling features, all designed to make it easier for developers to build and debug applications powered by Windows Azure. Merwan is passionate about app development, especially in the mobile space.

 Image 7120 image thumb 5A66AB2C Paul Batum – Program Manager, Windows Azure Mobile Services

Paul joined Microsoft a little over two years ago to work on WebSockets in .NET 4.5. His current focus is on making it as easy as possible for developers to build backends for their mobile applications.

 

The post Enabling IntelliSense for Mobile Services JavaScript in Visual Studio appeared first on Visual Studio Blog .

]]>