05 March 2005

Why WSE?

WSE Executive Summary

  • Free. Save your investment on in-house development of WS-specifications framework or 3rd part product, such like GetAccess

  • Current release is guaranteed side-by-side compatible with future releases, thanks .net framwork

  • Message is end2end secured. This is in contrast to transport protocol or wire level security (e.g. HTTPS, SSL). It can be used for many different protocols such as SMTP, FTP, and TCP


  • What has been acheive?
  • Message Integrity
  • it uses XML Digital Signatures.
  • Confidentiality
  • is based on the XML Encryption specification
  • Authentication
  • It uses security token that embeds in SOAP header to identify a caller.

    For demo and more information read this:Web Services Home: Why WSE?

    04 March 2005

    Import/Export VS.Net keybinding shortcut mappings

    Every time a new Visual Studio released there are changes to the key binding or shortcut key mappings. Vs.NET 2005 seemed make sense than its predecessors as it introduces command themes and use chords (e.g. Ctrl+k, ctrl+c) instead of three-key shortcuts (Ctrl+Shift+b), as discussed in JoeN's Blog So why did the C# keybindings change?

    But it just annoying when everytime move to a new developement box, I have to reassign the keybings from Tools(Menu) Customize Keyboard...(button). At the moment I am fine on stealing my beloved box when I moved to new team without being caught by security cameras (there are two in the office known to me :-) ). Would it be great if I can just export the profile and import it to the new IDE? Seen a really straight forward idea, but VS.NET doesn’t offer you such function.

    As I am car-sharing with Jim and he is still fiddling on live release (Friday, 18:30 pm) I am in the mood for a little experiment.

    After a few searches, I found Joel Ross wrote a blog Saving VS.NET Settings on how to do it. The article also covers saving setting for Window Layouts, Toolbar\Menu Configurations, Customized Toolbox Settings and other Add-ins settings. For now saving a copy of keybindings and ReSharper will serve me well.

    Task 1 Export/import custom Keybindings:

  • Create Custom Keybindings: Launch an instnace of VS.NET. Then click Tools(Menu) | Customize | Keyboard...(button on the pop-out property window). This will open the Options window.

  • Assign shortcuts to commands as you wish. I select the Reflector add-in command: Reflector.ManageAddIn.Connect.Diassembler.CSharpCommand and assignit ALT+T,I

  • Save the Keyboard mapping secheme as a new seheme using the "Save as" button. I save it as Jingye keybindings

  • Click OK to close the Option window. Then close the Customize window. Close the VS.NET instance so the setting saved to your personal VS AppData directory

  • Use windows file expolorer to go to your AppDara directory: “\Documents and Settings\%Current User%\Application Data\Microsoft\VisualStudio\7.1\”

  • In this directory you will find a file called: "Jingye keybindings.vsk", it contains the shortcuts just created.

  • Copy and take it to another development machine, still put it in the same directory. If this directory is not existed, create it as “\Documents and Settings\%Current User%\Application Data\Microsoft\VisualStudio\7.1\”

  • Launch an instance of VS.Net on this machine, and select "Jingye keybindings" from Tools(Menu) | Customize | Keyboard...(button)| Keyboard mapping secheme (drop down list)


  • Now the new shortcut [ALT+T] [ALT+I] can be used on the new environment.

    While doing this I notice there are a folder "JetBrains" in the “\Documents and Settings\%Current User%\Application Data\". Guess can move the ReSharper profile I assigned in a similar way.

    Task 2 Export/import ReSharper user profile/options.
  • ReSharper adds a "ReSharper" menu to the VS.NET IDE. You can change the default setting with "Options..." sub-menu. Such like code style, code completion, etc.

  • The user settings is saved to “\Documents and Settings\%Current User%\Application Data\JetBrains\ReSharper\UserSettings.xml" once you close the VS.net instance.

  • The UserSettings.xml contains all configurable settings including code style, intellisense, as well as license key. You can port this file to a different user profile or developement box, but be careful and stay at the right side with the license agreement. Guys work on this deserve every respect of it.


  • I am still waiting for Jim to complete the release... :-(

    01 March 2005

    vs.net developer's toolbox

    I used to love playing PC RPG game such like The Magic Sword & The Chivalrous Youngsters. Player impersonates a Kongfu master and experiences the life of JiangHu(lives of the 'gang ring' and dark society). Typically you start with a junior level and knowing very little about martial art weapon and armour art master. Then you start learning from other masters and pick up some ‘Kongfu Sutra’ and practicing yourself. You will be on assignments, such like escort a convoy through treacherous terrain or to steal a treasure chest from the royal palace etc. In these assignments you will found lots o gem or little secret chest. Pick it up, and some are powerful weapons that require practicing. Some are secret potions that will grant you transit magic power. Inevitably by the time the game ends, you are a grown Kongfu master.

    Similarly, there are VS.Net add-ins tools to the IDE that help us more to be more productive and write better code. I think part of the fun of it is to find the add-ins, install it, evaluate the usefulness, assigned the keyboard shortcuts and being familiar on using them without mouse click. In pair programming, it is just amused to play the trick and see the look on your peer’s face: ‘how do you do that?’ (VS.net 2005 has incorporate many of these add-in features such like TestDriven.net or code refactoring :-) ).

    Order in weight of importance, I feel these tools are must have (some of them are not really VS.NET addins but just powerful tools):


    • Google tool bar, save you many clicks and key stokes to go to it’s home page.


    • nUnit + TestDriven.Net
    • (an very cool nUnit addin to VS.NET that enables inline unit test and debugging without leaving the IDE.

    • ReSharper.
    • Code refactoring and code reformat are the two I used most.

      Sometimes object browser is just not enough. A spycam would be useful:
    • Lutz Roeder's .Net Reflector + Reflector Addins.
    • The one I use most is the Reflector.VisualStudio

    • In a team enviroment CruiseControl.net is the most important tool for code shared check-out and continuous integration(CI).
    • It reads an nAnt script and do whatever commandline tasks it is told. Monitoring code repository, build solution with VS.net (devenv), run all unit test etc. There are also a system tray client appicon (CCtray) sends notifications on build state.

    • nCover should also be considered as part of the nAnt task in your continuous integration(CI)
    • In the dev environment I am working, we have an uber code integration build server and many team and projects are contributing to the same code repository. Our team was quite proud to bring the 'green bar' from 11% to 53%. Alan Dean compares the usefulness of nCover and CoverageEye.net in commandline mode. I haven't tried the CoverageEye.net for the CI.

    • ieHTTPHeader
    • an explorer bar for Internet Explorer that will show you the HTTP Headers IE are sending and receiving. Quite useful at ASP.NET web app debugging.

    • Chris Sells' RegexDesigner.NET A very inspiring regex composer, helps a lot on learning reguar expression.


    • nDoc Your PA for documentation, taking awful longtime to run but works well.
    • The good news is you don't have to run it until next release.

    • Albeit the not very smart name FxCop
    • does help the development team on code review. Sometimes I find it is quite daunting to click the analysis button particularly newbies on .NET. We started with runing it as part of continous integration, then disabling a few rules and endup with running it for code review only.

      Last but not least the
    • Araxis Merge Tool. Similar to windiff just 100 times better. ASCII, binary and recursive comparison on file system. You can specify multiple regex to by-pass trivial things like comment. Last time we use it for code migration on 100+ java packages with more than 800 classes, which coupling with live binaries version identification. It helped a lot.

    I may have missed some but these are the most important tools to me. Once get them running, the next step it to hook them into VS.NET using Add-manager. Then assign keyboard mappings and be familiar with them.

    It won't be long before you call mouse as the WMD (Weapon of Mass Distraction)