Monday, May 24, 2010
I've been trying to figure out how some stuff work in .NET. And I found out that the tool I need is a reflector. Basically it allows you to disassembly a dll and see what's inside it. Don't expect too much, but it's great to know what is going on. Here is a tool that I decided to use Red gate reflector. Enjoy, it's free to use it!
Wednesday, May 5, 2010
Somehow I was unable to find this information on the web. Here is how to do it for those of you who don't like to use wizards.
You need following files:
Keep dll, pdb, and xml file in a one folder. Place Foo.addin file into "Visual Studio 2010\Addins" folder. Edit Foo.addin file to show a path to Foo.dll. Run Visual Studio. Plug-in should appear in an Add-in Manager. If you delete a Foo.dll file Visual Studio will rename a Foo.addin file to something different, so be prepared to rename is manually. And of course if a plug-in appears in an Add-in Manager, you can use it by selecting it.
List of features that I do not enjoy.
I can not see a way to write a visual studio plugin in F#
Even if you set a binding for a key binding command it want reset all the bey bindings that are associated with the shorcut. For some shorcuts it seems to work, for others it does not. For example if I set a shorcut for a Edit.CharRight to Ctr+F it works, but if I set a shorcut for Edit.CharLeft it doesn't (after hitting Ctr+B visual studio waits for a second character, because there are some keybindings that use Ctr+B in a combination). Microsoft if I want to set Ctr+B to Edit.CharLeft it means that I know what I want, and I want to get rid of all the key bindings associated with Ctr+B + something.
I created some plugin for emacs key binding. Unfortunatelly The API for assigning multi key strokes, like Ctr+Shift+F is not working!
And, here is a good place to find a list of snippets for vs2010
Why there isn't anything for methods? Anybody?
Finally got some power to have a look at a new visual studio. First thing that shot me was a lack of a support for Emacs key bindings. Crap, I had to map all major things by myself, but w/o mapping this tool wouldn't be useful for me. It was pretty sad for me, cause I had a great hope that Microsoft is going to fix some issues with key bindings with a new release of VS. Namely all key bindings seem to work only in a code window. If you go to a Command Window or to a Solution Explorer or F# Interactive, nothing seems to work correctly. And what's even more annoying is a fact that there are key binding commands inside VS2010 (like Edit.EmacsLineUp, Edit.EmacsCharRight), but if you use them, they don't work. None of the Edit.Emacs... command seems to work. And yes I am aware that Microsoft said that they didn't have a time to implement key bindings for Emacs and Brief in VS2010, but they are working on it, but why show commands that do not work if you use them? Some of the Emacs commands seem to have an implementation in a non Emacs scheme like:
Edit.EmacsLineUp => Edit.LineUp
Edit.EmacsLineStart => Edit.LineStart
Edit.EmacsCharLeft => Edit.CharLeft
. I hope that I will have strength to write a plug-in for Emacs key bindings, so I won't have to change it manually each time I see VS2010.
I was also unable to change the look and feel of this tool to only show a code window. Yes I am aware of a full screen option, but it is not enough. I removed from the view 'Standard' and 'Text Editor' and all the views that hide on the left right and bottom sides of the screen. Still it is not enough. Am I missing something or there is no way to hide tabs (or better remove them), and hide a menu on a top. I really like a crude look and feel, less things, less things to distract, and also it force you to remember shortcuts, how-to go to a class w/o clicking, how-to manage a database view w/o clicking, and so on. So Microsoft, please make it useful, one day;)
Why there is no intellisense for an F# Interactive? Are you expecting me to know all the methods for all libraries? I can do it if I code only in a one programming language, but if you write on you daily bases in more than 20 you really don't remember if it was writeln() or WriteLine() or writeline() or wl() or println(). Anyway, I am glad to see an interactive shell, it helps me a lot to test some things, even if they are written in a different language then the project that I write.