I have been developing software for many years. Starting out in C, moving into C++ and then C# and the .NET Framework. I have worked as a web developer, web designer and a software developer for everything from device drivers to full enterprise applications.

I am also the secretary and co-founder of the charity Namaste – Children’s Homes Nepal.

Namaste - Children's Homes Nepal Logo


BA (Cantab.) in Natural Sciences (Chemistry, Physics & Mathematics) – University of Cambridge


I am a Microsoft Certified Professional, my MCP certifications are below:


MCSE – Business Intelligence


MCSA – SQL Server 2012

MCPD – Enterprise Application Developer 3.5
MCPD – Silverlight Developer 4
MCPD – Web Developer 4
MCPD – Windows Developer 4
MCPD – Windows Developer 3.5

MCTS – .NET Framework 3.5 ADO .NET Applications
MCTS – .NET Framework 3.5 ASP .NET Applications
MCTS – .NET Framework 3.5 Windows Communication Foundation Applications
MCTS – .NET Framework 3.5 Windows Forms Applications
MCTS – .NET Framework 3.5 Windows Presentation Foundation Applications
MCTS – .NET Framework 4 Data Access
MCTS – .NET Framework 4 Service Communication Applications
MCTS – .NET Framework 4 Web Applications
MCTS – .NET Framework 4 Windows Applications
MCTS – Windows Mobile 6.5 Application Development

CodeProject MVP

I am a CodeProject Most Valued Professional, a link to my CodeProject articles index is below:



August 2011 - Agile Project Management Course (Best Practices Academy)


  1. Hi
    I am abdessamie a software engineer
    I was looking on how to make a wizard for code generation as an add_in for VS , and i ve found your article that is very intersting about the subject http://www.codeproject.com/Articles/365680/Extending-Visual-Studio-Part-3-Item-Templates

    the topic is clear and understood but i keep a question on how can i control where the generated files will be put, can i have the possibility to specify in which projet i will put the first generated file and where to put the second and so on

    Thank you very much

    • Hi,

      For an item template, you have very little control over where the file is put unfortunately. Also, in terms of choosing which project each file goes in, this is tricky too, because by the time the insert new item command is invoked, you are essentially in the context of one project.

      Why don’t you explain a bit more about what it is you are trying to do, maybe it’ll be clearer to me how this can be achieved. If you’re looking to do something really custom, you may need to go down the route of creating an addin that runs code to generate files, and then programmatically adds them to projects.

  2. Hi,

    I have install problems, I have vs2008, trying to install switch and get errors.

    Can send it to you?


    • Hi,

      Run the Server Manager in Administrator mode, go to ‘Diagnostics’ and make sure logging is enabled. Now, at the moment, the Sever Manager doesn’t support previewing what an icon overlay will look like – so you must test you server by registering it.

      If you register the server and still don’t get overlays – check the windows event log – are you getting SharpShell events? Any errors? If there are no errors, you probably have too many icon handlers registered already (windows only supports a few), so back up the icon handlers key and delete all it’s children. The icon handlers key is:


      Let me know if this helps :)

  3. Hi,

    i read your Article to SharpShell and i think its a good Project, but i never got, any of your samples on codeproject running. I tried to ‘Shell-Extend’ a Context-Menu and i tried to apply an overlay Icon. Nothing works. I’m Sure the Error is on my side… Would you please help me?

    Windows 7 64-bit (i think thats the Problem) 8GB Ram, Intel Core i7, Visual Studio 2012

    I need to get 2 Menu Items and 3 Overlay Icons, depending on my Database Entries.

    Greetings and thanks for all your effort.

    • Hi – send me over one of your projects, I’ve got SharpShell working fine on W8 64 bit. Run the server manager in administrator mode and enable logging via the diagnostics menu – register your debug assemblies as the servers and check the event log :)

  4. Hi , my friend , I have sent you an email (your email in gmail).
    Please reply my email.

  5. Hello, I was blown away by your tutorial on the invader game but for the star field tutorial, is there any possiblity of limiting the drawing of the star to a specific sized div instead of the entire screen? like the game container only. Thank you!

  6. I read your article on the invader and I was wondering if it is possible at all to have the starfield to only draw and show up within the game container instead of the whole screen.

  7. Hi there,

    I’ve just read your article on codeproject about creating a starfield and it’s exactly what I’m looking for. Basically for a Uni assignment we have to create a website for a game set in space. But being a complete beginner to Javascript I have a few questions.

    How could I change the stars’ orientation to horizontal?

    I was planning on having a background image for the website consisting of a couple of planets (stationary graphics) and this starfield. Could I omit the black background so that the stars are moving across my background image? And is there any way to make sure they don’t float in front of the planet graphics?

    Any advice would be greatly appreciated!

    - Dan

    • Hi Dan,

      Thanks for the comments, here’s some tips for what you need:

      1. To change the star orientation, take a look at the Starfield.prototype.update function. This is the one that is called every cycle to move the position of the stars, from that you should be able to work out how the position is changed and how to adapt it from horizontal to vertical.
      2. For a background image, have a think about whether a background image is actually what you need – if you need the planets to be in front of the stars then you might find it’s easier to simple have the pictures of the planets on a div as a png with a transparent background, then put the starfield behind that! Otherwise you’ll have to greatly complicate the starfield code to do some kind of masking, which you can actually avoid.

      Hope that helps and good luck!

  8. Was just working on shell extension stuff, and while I haven’t used sharpshell directly in my project, I’ve learnt an awful lot from the well written and commented code! I don’t have a question.. Just commenting to say awesome work, and thanks :)

Leave a Reply

Your email address will not be published. Required fields are marked *