Visual Studio

Welcome to the Visual Studio UserVoice site. Let us know what you would like to see in future versions of the Visual Studio suite of products. This site is for suggestions and ideas. If you need to file a bug, visit the Visual Studio Connect site: https://connect.microsoft.com/visualstudio.

Many applications that communicate with low-powered hardware need a way to verify the received data. CRC32 is a well-known, lightweight check value which is better suite to verify short data.

.Net already has an implementation of this check value with (System.IO.Compression.Crc32Helper, System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089) but this class has an internal ac cess modifier and can't be used by user code.

Fakes and Shims are only useful if every developer in the team is able to use it to enhance their unit tests. Limiting its availability to just Architects and Senior developers (who usually have Premium or Ultimate level subscriptions) sounds like such a bad idea. This is killing the power of such potentially amazing tool! Please consider this.

TFS automatically adds everyone it sees in Active Directory to its Identities list.

We have 20 TFS users out of our 250 domain users.

- All the "Assign To" fields list 230 irrelevant names in them.

- All the domain users have access to TFS resources by default, so we have to be very careful with how we set up our groups and permissions to make sure only the right people can see TFS resources.

- When we switched domains, TFS broke our database because we had two identities for each user, both with the same display name. We could not take the old domain away, so after migrating the identities properly, TFS decided to re-add the users from the old domain, and then remapped all our work items back onto the old domain names. All our workspaces were broken and very difficult to delete because the TFS tools could not distinguish the two usernames. This would not have happened if we had to add users manually (e.g. to the "valid users" group) rather than TFS automatically creating users for all AD accounts it can see.

We have different types of users (Developers, Testers, other staff who only store documents in source control, and customers) who require different levels of access. We control these using AD and TFS groups, but it is impossible to select a group or user and list their permissions (AD, WorkItems, Projects, Areas, Iterations, Source Control, SharePoint, Reporting etc) - you have to go around a million different places looking at security settings to work out/configure what they can do.

I have found workarounds for all these problems (editing process templates to restrict the assign-to user lists, using extensions that make permissions slightly easier to manage, and spending hours weeding out all the places where I need to set permissions, for example), but fundamentally the identity creation should not be automatic - I should have to deliberately add users, or TFS should ask if I want to add user X, and all the permissions for a user or group should be displayed in a single location, so I can easily manage them.

We only have 20 users - I hate to think how bad administration must be for large organisations with thousands of users. Maybe they just use Git.

TFS automatically adds everyone it sees in Active Directory to its Identities list.

We have 20 TFS users out of our 250 domain users.

- All the "Assign To" fields list 230 irrelevant names in them.

- All the domain users have access to TFS resources by default, so we have to be very careful with how we set up our groups and permissions to make sure only the right people can see TFS resources.

- When we switched domains, TFS broke our database because we had two identities for each user, both with the same display name. We could…

We work in a mainline with branch-per-release, so periodically we need to merge one or more bugfix change-sets to the active release branch. Often this means a batch of several non-contiguous changesets need to be merged to the same branch.

1) When we open the merge dialog it doesn't remember the last-used settings (it defaults to "merge all changes" and the oldest branch - we always want to do a "merge specific changesets" and almost always this will be targeting the most recently created branch. If it just remembered the last settings I used, this would save a lot of time/hassle.

2) When doing "specific changesets", populating the list of available changesets is very slow (20-40 seconds), which makes cycling around this dialog for several merges in a row very slow. Could it cache the list (and just append any new changesets that have been added since the last merge) so it will re-show instantly? (It would be acceptable for this to be slow the first time I do a merge within one visual studio session - it wouldn't need to persist the cache to disk)

3) It would be very helpful if the selected changeset could default to the first changeset after the last one that was merged to the target branch. So if I merge changeset 1234 and then return to the dialog, it will show changeset 1235 selected so I can easily remember "where I was up to" in the merge.

4) If I merge changeset 1234, I want to add a comment on my checkin that says "merged changeset 1234 (bug fix 5678) into release X branch" so I can later work out what has gone into the release and what has not. It would be very helpful if the merge process could list the changeset(s) and their associated work item(s) as a default check in comment to save me having to write down the numbers when merging and then type them in when checking in the merged result.

5) Merge can't handle a non-contiguous series of changesets. However, if the selected changesets (or the changesets being skipped) don't affect the same files there should be no reason why this restriction should be imposed. Most of our batch merges could then be accomplished in a single quick pass.

We work in a mainline with branch-per-release, so periodically we need to merge one or more bugfix change-sets to the active release branch. Often this means a batch of several non-contiguous changesets need to be merged to the same branch.

1) When we open the merge dialog it doesn't remember the last-used settings (it defaults to "merge all changes" and the oldest branch - we always want to do a "merge specific changesets" and almost always this will be targeting the most recently created branch. If it just remembered the last settings I used, this would save a lot of…

I uses AspNetCompiler task to verify syntax of ASPX and CSHTML files. The problem is that if there are many errors (e.g. due to refactoring) AspNetCompiler reports only errors from first invalid file and then does not continue. So, if I have errors in 100 files I have to 100 times build (takes long), open the ASPX file (takes long), fix the error, save, build again and again and again.
It would be really helpful if AspNetCompiler reports all errors on first run (like C# or VB compilers do). So I can see all of the errors and fix all of them in one cycle.

I uses AspNetCompiler task to verify syntax of ASPX and CSHTML files. The problem is that if there are many errors (e.g. due to refactoring) AspNetCompiler reports only errors from first invalid file and then does not continue. So, if I have errors in 100 files I have to 100 times build (takes long), open the ASPX file (takes long), fix the error, save, build again and again and again.
It would be really helpful if AspNetCompiler reports all errors on first run (like C# or VB compilers do). So I can see all of the errors and fix all…

Currently when connected to a TFS project in Visual Studio and viewing the remote git repositories, only the "clone" option is given.

Visual Studio should give another option, called something like "Map". Map will allow you to specify a local repository that uses the selected remote. This way a repository that was cloned on the command line can be set up to still track TFS work items in Visual Studio.

An app created via the new vs plugin with a custom azure resource Group does not show up in the old app insights Portal. Btw: The new azure portal is **** in a usability point of view. **** is a hard word, i know. But an azure Portal should be made for devs / it pros. Not for People who like cool looking pictures.

People are continuously using <asp:Repeater> controls throughout their applications (web or otherwise). Consider the following example below, which is web based. (Note: I've removed some of the attributes to simplify the code)

Doing the e.Item.FindControl for each control within your repeater is a tedious task. Then multiply this several hundred times throughout a large web application and it becomes a time waster.

It would be excellent if, within the scope of the event handler function, controls embedded in the <ItemTemplate> where automatically identified and available via Intellisense just like Visual Studio does when you place any control outside of a repeater.

If it is a matter of saving resources, perhaps the objects can be lazy loaded, meaning the "FindControl" is only called when the object is accessed within the event handler??

People are continuously using <asp:Repeater> controls throughout their applications (web or otherwise). Consider the following example below, which is web based. (Note: I've removed some of the attributes to simplify the code)

Currently the Print operation in Silverlight happens on the UI thread, which locks the UI until the print operation is complete. This does not allow the code to update the UI thread during the Print operation.

For an example when the print operation is in progress there is no option to show a dialogue box where the current status of the printing operation be shown(ex. Printing Page 1 of 10, etc.). There is no way to even cancel the print operation from the middle of the operation.

Kindly allow the Print operation to take place from other than the UI thread so that such simple and basic requirements can be fulfilled.

Currently the Print operation in Silverlight happens on the UI thread, which locks the UI until the print operation is complete. This does not allow the code to update the UI thread during the Print operation.

For an example when the print operation is in progress there is no option to show a dialogue box where the current status of the printing operation be shown(ex. Printing Page 1 of 10, etc.). There is no way to even cancel the print operation from the middle of the operation.

Kindly allow the Print operation to take place from other than the UI…

The Team Room API allows messages to be posted to the team room by an individual user, these messages are limited to plain text.

Work item updates, build completions etc. are posted to the team room as "notifications", can contain additional information, and appear as system messages. It would be great to be able to extend this for third party services.

For example, we use Octopus Deploy for deployment, having deployment status and information surfaced in the team room would be great. This is possible using the current API but the messages appear as being posted by me (I could create a new user, but they would then require a license with Team Room access), and its not possible to nicely link to the deployment details etc. Allowing third parties to notify into the Team Room would be a great addition to the current service hooks, and allow a central place for the teams information in VSOnline.

Thanks,
Rhys

The Team Room API allows messages to be posted to the team room by an individual user, these messages are limited to plain text.

Work item updates, build completions etc. are posted to the team room as "notifications", can contain additional information, and appear as system messages. It would be great to be able to extend this for third party services.

For example, we use Octopus Deploy for deployment, having deployment status and information surfaced in the team room would be great. This is possible using the current API but the messages appear as being posted by me (I could…

For software departments that have a large library of solutions that need to be deployed a flat list of components can grow unwieldy very fast. If a solution is for example composed of 10 to 20 components and the department has on the order of 60-100 solutions the list can be between 600 and 2000 items long.

10 to 20 components is not neccesarily a large number of components when you have seperate config files for each environment, webservices, database(s) and client components as a part of the solution.

I propose build-in regex support for numeric ranges. While regex is oriented on text, it is possible to construct a regular expression that covers a range of numbers. To give an example, the most frequent regex with numbers involved is one that validates IP addresses. I think that support for numbers will be a viable addition and I support use my CodePlex project 'RegexNumRangeGen' for implementing it. I think that if .NET has support for something trivial like comments in regular expressions, then this feature cannot be missing.