Writing VS2010 Extension - visual-studio-2010

I'd like to create an extension for Visual Studio 2010. The functionalities I need are these:
Add a context menu item for Project (when user right clicks project name in his solution, he'll get my context item in the list).
When he clicks, a new WinForms form appears, where he can input some data, and an option to save that data for future reuse.
When he clicks OK on that Form I'll generate some files and add those files to be a part of his project that he rightclicked.
The WSCF.blue is exactly the kind of behaviour I want to immitate in VS, but it's source was written in VS2008, and I'd like to use VS2010 Extension options which are quite changed as I understand...
I found some resources on the msdn, but I found it confusing with incomplete info (e.g. MenuAndCommands example).
Can anyone shed some light on how to achieve what I'm after?

I really don't know where to point out so you can get specific examples of what you are trying to achieve. However, in the following resources you will find complete and detailed information about the overall process, and some help to achieve 1. and 2.
VS 2010 Package Development – Chapter 1: Visual Studio Packages
VS 2010 Package Development – Chapter 2: Commands, Menus and Toolbars

Related

Small Basic - When would 'Graduate' be used?

So today I decided to take a look at the Graduate feature in small basic, I discovered that it allows you to convert your small basic code to a format for Visual Studio, Great I thought.
Until when I later tried it, Visual Studio reported that there were over 102 errors with the code, I found that this was because the compiler couldn't understand most of the small basic functions like GraphicsWindow, TextWindow, Mouse, Shapes etc. So, have I done wrong? As Visual Studio is my main programming language I couldn’t wait for the small basic code to be magically converted to work with VS. Some of the code could be manually translated such like TextWindow to Console, but what do you do with code that is specific to Small Basic like GraphicsWindow?
You are using the Graduate feature correctly, and you haven't done anything wrong; the reason you're getting errors is because Visual Studio doesn't seem to automatically import SmallBasicLibrary.dll correctly. The last time I used Graduate (~2 years ago) this wasn't a problem, so I imagine this issue is a result of Visual Studio updates.
Thankfully, this issue is easy to fix. You simply need to import SmallBasicLibrary.dll manually and then add a single line to the top of your Visual Basic code. Note that these instructions are for Visual Studio Community 2013, but I would imagine they're the same for most recent versions.
In Visual Studio, go to Project > [Project Name] Properties.
In the tab that opens, go to References on the side panel. Select SmallBasicLibrary in the list and click Remove.
Click the Add button (next to Remove), then in the window that opens select Browse in the side panel. Now click the Browse button at the bottom of the window.
Find SmallBasicLibrary.dll in your Small Basic installation folder (for me this was C:\Program Files (x86)\Microsoft\Small Basic) and double-click it. When you are taken back to the Reference Manager window, ensure that SmallBasicLibrary.dll has its checkbox checked, then click OK.
Select Application in the side panel and ensure that the targeted version of the .NET framework is 4.5.
Finally, open your Visual Basic code using the Solution Explorer and add this line to the top of it:
Imports Microsoft.SmallBasic.Library
The resulting code should look something like the following:
Imports Microsoft.SmallBasic.Library
Module UntitledModule
Sub Main()
TextWindow.WriteLine("Test")
TextWindow.Pause()
' Your Small Basic code here...
End Sub
End Module
All your build errors should be gone, as the Small Basic commands are now available.
Once you've done this, Graduate is ideal for using VB-exclusive commands or libraries along with your Small Basic code.

Windows Workflow Designer Metadata Editor (vs.net 2010)

Just familiarizing myself with TFS 2010, especially Team Build which now uses Windows Workflow. Have been setting up some custom workflows etc to get used to it and so far so good.
My question is about this blogpost:
http://blogs.msdn.com/b/jpricket/archive/2009/12/23/tfs-2010-custom-process-parameters-part-2-metadata.aspx
The author states "By the way, if you use the Workflow Designer in Visual Studio to edit your build process templates, you will see that we have a simple editor for adding Metadata"
Anyone know where to find the metadata designer? I've tried all the obvious spots (right clicking on the loaded template, menus etc), but can't find it!
I have created a series of blog posts to get familiar with the modification of Team Build. See http://www.ewaldhofman.nl/?tag=/build+2010+customization. To answer your question on the metadata, there is in the Arguments a Metadata argument in which you can specify this. See step 20 in http://www.ewaldhofman.nl/post/2010/05/17/Customize-Team-Build-2010-e28093-Part-6-Use-custom-type-for-an-argument.aspx.
I had the same problem. I couldn't find the Metadata either. After reading Ewald Hofman step 20 for several times I found the solution.
Find in the Workflow argument list (The list where you created your own argument) the argument Metadata. Then click in the property window for the Metadata argument the property "Value" and hit the ellipsis button next to it to open the editor.

Visual Studio - easy way to bring up type definition as source code

Oftentimes I want to bring up a system class in a source view, so that I can browse the properties and methods exposed by the class. Below is the screenshot of what I mean:
Srting from metadata http://img443.imageshack.us/img443/940/stringfrommetadata.png
Usually I do this by selecting the class name and pressing F12 (or right click>Go To Definition). However, if I haven't got it anywhere ready, i have type it up and then do Go To Definition. Most of the time I have to delete what I typed later on.
Is there a way to bring up this view without having to type the class name? The VS2010 Navigate To dialog doesn't support this.
EDIT: When I posted the question I didn't use any Visual Studio plugins. Now that I realised that I have full CodeRush license (thanks to StackOverflow promotion for users with 10K rep) I will accept answers that use CodeRush or Refactor!.
EDIT: At this stage I haven't really got anywhere with trying to answer this question. I am going to leave it open and let the bounty auto-award itself to Rory as he explained what's happening the best. In the meantime(schedule allowing) I will investigate doing this with DXCore as I think it should be possible.
The view you're looking at appears to have been built by some sort of analysis of the IL of the framework. Without knowing the type you intend to look at, no deconstruction can be done. Therefore I feel that, you are unlikely to find exactly what you have said you are looking for.
Allow me to suggest a few alternatives though.
Disclaimer: I work for DevExpress as a CodeRush Community Evangelist.
The Object Browser (Ctrl+Alt+J) This screen will load without attempting to show you any particular type, it will therefore be down to you to find the type in question. However all types are available and full search functionality is provided. once the type you're looking or is found, all members are listed and available.
Update: If you use the (Ctrl+K, Ctrl+R) shortcut to launch the object browser, then it will launch focused on the Search box. This is invaluable.
There are a number of CodeRush features which can prove useful when trying to locate code.
TabToNextReference (Tab) Whilst the caret is positioned within a type, strike the tab key and the next reference to that type will be located. More Details
References ToolWindow (Shift+F12) When activated the References ToolWindow will show you any references to the current type or member. This toolwindow can also be used to navigate said references. The References Toolwindow can be used in both on demand and Live mode. this allows you to have the window update as you navigate your code (via mouse or keyboard) and locate all references of any symbol the caret lands upon.
QuickNav (Ctrl+Shift+Q): This feature is closest in style to VS2010's NavigateTo feature. QuickNav will locate symbols matching whatever you type into it's filter box. This facility also supports Camel Case search. More details
QuickNav is also much more configurable than it's VS counterpart
Finally
Please also keep in mind that CodeRush is build upon the DXCore, a framework which allows users to create their own plugins for use alongside each other and CodeRush.
This framework has been repeatedly been leveraged by the community to add additional functionality. So even if you don't see any thing quite to your needs, consider suggesting something to the community by way of the forums or even contact me directly RoryB at DevExpress dot Com
I'm sure there's something we can do to help you out :)
I was not aware of that new "Navigate To" feature, but I used to use Reflector for this sort of things. The pro version offers some integration with Visual Studio (Right clicking the method and selecting "Open In .NET Reflector"). It will open the reflector window and won't show the code in the VS itself. You can watch the demo that shows this feature and some others.
This is not the best answer that I'd expect but is a good option to know.
There is no way that I know of to do this in Visual Studio 2010. However, you can do this in ReSharper via the 'navigate to' menu. I suggest you try the 30 day trial from them, then if you really do need this then purchase it.
A number of add-ins allow you to browse objects (though usually in an object-browser treeview manner rather than in a "header" file form - I believe Resharper, CodeRush and Visual Assist X all have variations on this theme).
However, one add-in to consider (as it's free) is the VS Productivity Power Tools. It adds a Solution Navigator window that gives a view onto your solution just like Solution Explorer, but (among other enhancements):
can search & filter the files listed, e.g. show only those files that are named Test.
can "expand" any file entry to show the types and members within it.

Visual Studio ‘Go To Definition’ menu option behaviour - Why is it inconsistent between C# and VB projects

When developing in a VS2005+ with C# project and I right click on a framework method/property/type and select ‘Go To Definition’, by default we get a new locked tab with code that has been generated from the framework, labelled appropriately [from metadata].
However when we do the same in a VB.NET project, you get taken to a new tab with the relevant Object Browser view.
This has always struck me as peculiar and was hoping there was a good reason behind it. IMO the object browser is nicer.
Is there a logical reason for the difference in default visual studio behaviour? If so, what is it?
It's a choice each team made based on what they believe their respective customers wanted to see. VB users have a historical attachment to the object browser and many VB features are integrated into it (Go To Def being one of them). C# made a switch in VS2005 to generate metadata on the fly for their version of GoTo def because they believed their customers would like the behavior better.
You can install Resharper for this.
It'll allow you to choose the default behavior when clicking the "go to definition".

Plugin for Visual Studio to Mimic Eclipse's "Open Type" or "Open Resource" Keyboard Access

If you've ever used Eclipse, you've probably noticed the great keyboard shortcuts that let you hit a shortcut key combination, then just type the first few characters of a function, class, filename, etc. It's even smart enough to put open files first in the list.
I'm looking for a similar functionality for Visual Studio 2008. I know there's a findfiles plugin on codeproject, but that one is buggy and a little weird, and doesn't give me access to functions or classes.
Vs11 (maybe 2010 had it too) has the Navigate To... functionality which (on my machine) has the Ctrl+, shortcut.
By the way it understands capitals as camelcase-shortucts (eclipse does so too). For instance type HH to get HtmlHelper.
This isn't exactly the same as Eclipse from your description, but Visual Studio has some similar features out of the box (I've never used Visual Assist X, but it does sound interesting).
The Find ComboBox in the toolbar ends up being a sort of "Visual Studio command line". You can press Ctrl+/ (by default) to set focus there, and Visual Studio will insert an ">" at the beginning of the text (indicating that you want to enter a command instead of search). It even auto-completes as you type, helping you to find commands.
Anyway, to open a file from there, type "open <filename>". It will display any matching files in the drop down as you type (it pulls the list of files from the currently open solution).
To quickly navigate to a function, in the code editor press Ctrl+I to start an incremental search. Then just start typing until you find what you are looking for. Press Escape to cancel the search, or F3 to search again using the same query. As you are typing in the search query, the status bar in the lower left corner will contain what Visual Studio is searching for. Granted, this won't search across multiple files (I've never used Eclipse much, but that sounds like what it does from your description), but hopefully it will help you at least a little bit.
If anyone stumbles upon this thread:
There's a free plugin (created by me) for Visual Studio 2008 that mimics the Eclipse Ctrl+Shift+R Open Resource dialog (note, not the Open Type dialog). It works with any language and/or project type.
You can find it at Visual Studio Gallery.
Some of the neat features are available in Visual Assist X, though not all of them. I've asked on their forums, but they haven't appeared as yet. VAX gets updated regularly on a rough 4 week period for bug fixes and a new feature every couple of months.
If you are looking for an add-in like this to quickly navigate to source files in your project:
try the Visual Studio 2005/2008 add-in SonicFileFinder.
Resharper does this with the Ctrl-N keyword. Unfortunately it doesn't come for free.
Visual Studio doesn't have anything like this feature beyond Find.
Found this thread while searching for Eclipse's Ctrl+Shift+R, and after seeing the Visual Studio Gallery, found the DPack Tools (they are free, and no, I'm not endorsed in any way by them).
But it's exactly what I was searching:
- Alt+U -> File Browser (a la Eclipse Ctrl+Shift+R)
- Alt+M -> Code Browser (Method list in the actual class)
It has more features, but I'm happy with these ones.
I have been using biterScripting along with Visual Studio to do more flexible searching and manipulation.
It can search the entire workspace.
It can search within any project - EVEN IF THAT PROJECT IS NOT LOADED OR EVEN PART OF A WORKSPACE.
It can find things using regular expressions.
AND, ABOVE ALL, it can make bulk changes. For example, want to change the name of a class from CCustomer to CUser, I can do it in just a few command lines - Actually, I have written scripts for things like this I do often. I DON'T HAVE TO CLICK ON EACH INSTANCE AND MANUALLY DO THE CHANGE.
And, it is inexpensive ($0). I downloaded it from http://www.biterscripting.com .
I'm also comming from the Java Development side and was looking for the CTRL+T feature in the Visual Studio. The other answers refer to open file, but since in C# the class name and file name can be different this is not what i was looking for.
With the Class View or the Object Browser you can search for Objects and Classes
[View]->[Class View] or [View]->[Object]

Resources