Hi everyone,

 

I've gathered a nice list of ideas for apps from blogs, newsgroups, MS people, etc... I've shown these to our team and there are people already working on some projects.

 

Things that are in the works right now are:

 - Window Management ideas below

 - The Class Template Editor from below

 - Some of the SDK samples below

 - File extensions repair tool - I created a workspace and posted some code that does the diagnosing. I hope I can soon add the repair and reset code.

 - Annotate This - a package that let's you annotate your code

 

We are going to be creating worspaces for anything we are working on. Feel free to jump in and help out with any of these! Join the workspaces or start your own workspace with one of these ideas. Please share more ideas that you have, or vote for the ideas that you would like us to work on first.

 

Everyone in our team that works on these does that in their spare time, so in order to move these faster and get to more projects we do need your help!

 

BTW, these are all meant for the Whidbey Beta1, but it should be pretty simple to get any of these to work for earlier versions of VS.

 

Here is the list I have so far:

 

Ideas for IDE:

·       Task List:

 Updates to the Task List that consume the whole open solution and not just the open files TODO comments. 

 

·       Instant Messenger Integration

Drag and drop some code to your buddy in an instant messenger toolwindow in VS? Cool huh?

 

·       Window Management

 

1. Tool Windows Snap-To Edge

Write a package that listens for tool window move messages.  When a tool window gets within so many pixels of the monitor’s edge, it snaps to it.  Chris wrote in some recent windowing events that allow anyone at the VSIP level to listen to all tool window messages.  This requires VSIP support.

            

2. Maximize / Minimize Toolwindows

Exactly how it sounds.  I believe this is possible via an add-in

            

3. Dragging code windows outside the IDE (for multi monitor setup)

We’ll want to have a simple tool window whose contents are those of the document window you’re dragging.  Another approach is to pull the content into the tool window just like the VB My Project does. 

 

·       Help:

 

1. Custom Help Provider Sample

2. Improved Help favorites

3. Back Forward work in Whidbey?

In IE and VS.NET you can navigate backwards more than one page by clicking a small drop down arrow next to the back button which presents your       immediate browse history. The "Microsoft Document Explorer" (the dedicated help system) lacks this functionality.

4. Provide a way to jump to the MSDN Online version of the currently viewed Local Help document (and possibly flag if MSDN Online has a newer version)

5. Provide a solution to upgrade the MSDN Library to the current WEB Version - downloading only the new/modified content - and integrating it into VS

 

Ideas for MSBuild:

 

  • VS Add-in tool window that allows you to edit any arbitrary property + allows you to select any random target for build
  • VS Add-in that allows you to view your project dependency graph graphically
  • VS Add-in tool window that allows you to a) open a projects that contain other projects, b) build these and c) edit project files in the same instance of the VS IDE
  • MSBuild no project build tool -- basically a tool that can look at the sources on your given machine hierarchy and infer the project file in memory and feed it to the MSBuild OM

 

  

Ideas for the Editor \ Code Navigation space:

 

·       End2End Snippet Integration

 

  • Code Highlighter/Formatter:  "Let's say you're programming, and you know you are writing some test code, something that you know will need to be changed, something that should be deleted eventually, etc... Well it would be cool if there was an add-in where you could define different code highlight/format categories like Test Code, Debug Code, Temp Code and then assign them each a different color, font type, or font format (bold, italics, etc). You would just highlight some code, right click, and pick from the menu Code Highlighter>Test Code and then it would change all the highlighted code to that specific font color/format. Then you'd never forget about the code because it would be obvious if it is in a different format than normal code. I make this mistake to often where I put a comment by some test code or temp code to remove it but then forget to until weeks later, if ever."
  • A variation of the above idea is to create a tool to allow users to open a code file with their preferred layout and markup and then save it back out using their team's standards.  There are tools out in the public to do the formatting, but we haven't seen any of them integrated in the IDE.

  

Project and Solution Ideas:

·       New Starter Kits & Templates
The new template architecture in the project system has lots of cool ways to abuse it and seed customer's projects with project & item templates, as well as stuff like documentation.

·       "I would like to see an add-in that would let me manage the assembly version numbers across all projects within a solution. It could be one of those dockable content things that would contain a table listing all the projects within a solution, their current versions, whether they are auto-incrementing etc. When we edit them in this interface, it could change them in the AssemblyInfo.cs file. I would write it myself, but I still can't get my head around plugIns."

·       Class Template Editor: I think it would be good to have a class skeleton editor, where one can edit the basic skeleton code provided when adding a new class. I know a lot of devs out there want to automatically have regions set up for Fields, Methods, Properties, Operator Overloads, etc. so it would be nice to be able to edit this visually rather than doing it the hard way (ie. editing the individual files that are used by the IDE somewhere in "Program Files\Microsoft Visual Studio .NET 2003\xxx\xxx\xxx\xxx"

 

 

VSIP and Extensibility Ideas:

 

  • VSIP Add-In Shim
    Write a 'package' that hosts add-ins but gives the add-in access to more of the package-level interfaces and functionality!

       Write an SDK Sample! Some features that don't have good coverage in the SDK at this point:

  • Working with class view from VSIP code
  • Debugger visualizers
  • Plugging into the Fonts and Colors dialog
  • Code snippets for any common integration task
  • Porting existing SDK samples into VB, MC++ or J# (if you really want to).
  • Creating a profile control point
  • A UI that has a simple object model and implements macro recording
  • Custom controls in the property browser

 

Source Safe ideas:

  • heat, I want heat. I want the source code control integration to keep churn counters for blocks of code, and as there is more churn, they're rendered in a lighter color. I find code with lots of churn indicates poor thinking or poor understanding of the problem, and as a tester, I find highly churned code to be fruitful for bug finding.

  

Others:

 

  • Runtime Visualizer:  "Picture the visualizers in Windows Media Player but for code. You could base the visualizer changes on attributes of the code like the WMP visualizers use frequency and volume. The visualizer could respond to things like allocation frequency, total memory allocated, GC frequency, number of local variables, etc."
  • ??(Need a name): I'd like to be able to drag a table from a sql server in server explorer into a blank class and have it wire up public/private properties, get and sets (property names match database field name with the private fields prefixed by a user defined character _ or m or whatever the developer preference is).
  • App Framework: What I'd really like is an easy way to create an app framework; something like enterprise templates, but a little less fiddly; something like the old app wizard in vb5/6, which let you choose the style of app (document, explorer-style, etc). I'm thinking something that includes the ms app blocks ready configured and "wired up" ready to go; currently I'm working on an enterprise template that creates an app framework, with all the common / generic bits and pieces, base app services, etc, which you can then install and build a full app on top of. But enterprise templates are a bit arcane, and very fiddly to distribute. Perhaps you could create a generic framework that can then be extended or customised?
  • I want the IDE to tell me when there is duplicated code, unused code, and unused imports. So as to be able to remove them from the code base more easily; an example of this can be seen in the PMD plugin for Eclipse.

Thanks,

krassimir