Make it a lot more lightweight and modular
I don't use a lot of the features that VS provides and I imagine that a lot of people are in the same boat. eg..MSTest, all items on Analyze menu item, all items on Architecture menu item, items on Data menu item, toolbox. I reckon that if VS could be modularised even more so that users can stop having to install everything then it would hopefully improve performance and stop it feeling like a monolithic beast. I know that some work has been done on this front but I feel that you need to be way more extreme/critical.
To highlight what I mean, SharpDevelop comes in a 15meg installer, compared to 2gb iso for VS. SharpDevelop provides all the IDE features that I require. It is only the lack of support for a couple of project types and Resharper support that stop me using it full-time. It certainly out performs VS in my opinion
Yes, I agree, microsoft binding too many stuff is very bad. now microsoft can't maintain so many stuff. so many version .net framework, x386, winrt, just shocking for microsoft guys.
today, microsft's elephant can't dance now.
I Agree this very much,
VS is too big to install it, take too long to install it, take too long to run it. need too many memory to run it. Too many functions we needn't it. if make it modular then will be better.
Chris Beach commented
Agreed, but care must be taken that in making it modular you don't 'loose' features. Its all right for the old hands...but new comers might not realise what the product can do.
Installation seems like the best time for most of this.
Rudi Larno commented
This perfectly goes together with this suggestion: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2035455-use-nuget-to-install-most-of-the-components
as a means to have lots of features available, yet just only load the ones that are interesting towards the current solution.
Dan Finch commented
This would be great. I've installed the VS Integrated Shell with only one language, and it was very snappy.
Jeffrey Fritz commented
Highly agree... I would really like to unload from VS features I don't use like the data manager, server manager, and UI designers
Chris Fannin commented
Superb suggestion! 3 votes for this. I also don't use a large number of the built-in features and instead rely on an add-in.
I'd like to be able to disable and enable features on-demand like I do with Visual Studio 6 add-ins (yes, I deal with legacy code). That dialog even let me control if an add-in is loaded at Startup or only active for the current instance.
The "optional" (non-core/critical) VS features could be listed in the Add-in Manager under a separate section to indicate they are provided components. On first install of VS, either provide a dialog to set the initial state of each component like the Windows Features one, or default them all to Enabled as they are now. (Sidenote: I agree with Colin on merging Add-in and Extension Manager.)
To help pinpoint those features/components that are "unused", the new dialog/section could include a "Last Used" date beside each entry, similar to Add/Remove Programs in Windows but more accurate.
Marcos Fábio Jardini commented
Agree, VS need be more modularized. As I suggested in Channel 9 :: Going Deep:
* Back of Standart Edition: Come clean and accept 3rd party plugins
* VS as an IDE + visual Debug, using MSBuild for build/project, WinSDK compiler (no more crashes like the WSDK 7.1 SP1 and embedded WinSDK from VS)
I don't use any of the VS refactoring tools - I have ReSharper for this, so its a really pain to have all the VS refactorings also available in the menus.
Colin Bowern commented
Part of this can come from introducing more consistency into the IDE. Every product group is trying to get their stuff noticed by creating their own menu options and project types. Examples:
- Add-in Manager should be merged with Extension Manager
- Azure should be a deployment target, not a special project type.
- Attach to Process should be in the Debug menu
- Choose Toolbox Items should be under Customize
- Architecture should just be another item type, not a menu
- WCF Service Configuration Editor should just be a project properties tab
- Installer should allow me to pick my combination of language and targets (i.e. web, windows, services, etc...) so I can only install the bits I care about - then you can make intelligent decisions about which help packages and other things to include in the install.
Someone needs to step up and own the overall user experience and work with product groups to find relatively consistent ways to behave within the UI. That will reduce the clutter and crap and ultimately slim down VS both from a size UX perspective.
This is especially true for C++ developers. Managed languages share a huge amount of common code. C++ doesn't, but its IDE is still bogged down by those hundreds of packages. VS is just growing too big for a single monolithic application.