posts tagged with work

Beschikbaar voor Silverlight projecten

By Fons Sonnemans, 7-12-2009

Op dit moment ben ik als Silverlight ontwikkelaar op zoek naar een project. Bent u op zoek naar een ervaren silverlight specialist/architect neem dan contact met mij op. Zie ook mijn CV voor extra infromatie over mij.

Tags: Work

Extending my .NET Freelance Network

By Fons Sonnemans, 24-3-2006

Sorry Dutch only.

Vanwege mijn brede expertise en de aantrekkende markt krijg ik de laatste tijd veel leuke opdrachten in Nederland en België aangeboden waarop ik regelmatig nee op moet verkopen. Daarbij wordt mij meestal ook gevraagd of ik in mijn netwerk nog andere .NET freelancers ken. Daarom heb ik een netwerk opgezet zodat ik potentiële opdrachtgevers kan doorverwijzen naar een collega.

Via deze blog nodig ik .NET freelancers uit zich gratis en vrijblijvend bij mij aan te melden. Mijn netwerk is alleen voor Microsoft specialisten, hierbij gaat het dus om:

  • Software Architecten
  • Team en Projectleiders
  • Coaches
  • Trainers
  • Ontwerpers
  • Programmeurs (C#, VB.NET, ASP.NET, SQL, XML)
  • DBA’s
  • Web-designers
  • (unit)testers

Aanmelden kan heel eenvoudig via een e-mailtje naar

Tags: Work


By Fons Sonnemans, 19-2-2006

I have just received mail from Pearson VUE informing me that have passed the Beta Exam 70-528 TS: Microsoft .NET Framework 2.0 - Web-Based Client Development (called 71-528 while it's in Beta). I also received a free Voucher for a next exam, thanks guys.

On Friday I will try the Beta Exam 70-551 UPGRADE: MCAD Skills to MCPD Web Developer by Using the Microsoft .NET Framework. One week later I will try the Beta Exam70-552 UPGRADE: MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework . Wish me luck.

Tags: CSharp, Framework

What is an architect?

By Fons Sonnemans, 29-9-2005

I just saw the great Sparkle video on Channel9. On of the most funny part was the question 'What is an Architect?'. The anwer from John Gossman was 'It is a fancy title for a programmer' or in other words 'You are old'. I hope you enjoy the movie, I did. I can't wait to play with it.

Tags: Work

Microsoft has put my 'Dual List' .NET Magazine article online!

By Fons Sonnemans, 9-4-2005

Microsoft has put my Visueel programmeren met .NET: Dual List Control article online. It is published in the .NET Magazine #8 and it is free for Dutch developers.
They didn't publish the sourcecode (yet) but you can download it from my own site. The aricle is in Dutch. You can find an (old) English version of this article here. An even more advanced implementation that also supports Drag & Drop can be found here.


By Fons Sonnemans, 10-2-2005

For a long time I thought that I only had to set the Cursor.Current to a WaitCursor before a long running operation, the .NET runtime would reset it back to the Default cursor. Turns out that this is only true when the mouse is moved. Bummer.

// Cursor.Current are automatically reset to Default when the
// mouse is moved and the application is idle!
Cursor.Current = Cursors.WaitCursor;

The solution for this problem is very easy. I created a helper class called WaitCursor which set the Cursor.Current and restores it to the original value when it it disposed.

public sealed class WaitCursor : IDisposable {                
    private Cursor _prev;

    public WaitCursor() {
        _prev = Cursor.Current;
        Cursor.Current = Cursors.WaitCursor;

    public void Dispose() {
        Cursor.Current = _prev;

I create the instance of the WairCursor class inside a using statement. This will automatically call the Dispose() method when it goes out of scope.

using (new WaitCursor()) {
    // long running operation, for example:

Afterwards I did some searching around on the web. Turns out I'm not the first to come up with this solution. Charlie Poole already posted it a few years ago. Another bummer.


By Fons Sonnemans, 11-1-2005

Microsoft has invented a new name Micro-ISV, which are software companies that are comprised of only one person. So, I'm a Micro-ISV. Planning to launch my product this year. I hope to succeed.

Tags: Work

Dispose Modal WinForm Dialogs

By Fons Sonnemans, 12-12-2004

There is a difference in disposing Modal and Non-Modal forms. In a training I gave last week I noticed that even experienced developers didn't know that Modal Dialogs don't dispose automatically, Non-Modal do.

private void buttonShowNonModalForm(object sender, System.EventArgs e) {
    new TestForm().Show();

private void buttonShowModalDialog(object sender, System.EventArgs e) {
    new Form2().ShowDialog();

The solution to this problem is very simple by creating the Form instance within a using block. This will dispose the Form when it is closed.

private void buttonShowModalDialog(object sender, System.EventArgs e) {
    using (TestForm f = new TestForm()) {

An alternative solution uses a try/finnaly. Personally I prefer the previous, it is easier to read and write.

private void buttonShowModalDialog(object sender, System.EventArgs e) {
    TestForm f = null;
    try {
        f = new TestForm();
    } finally {
        if (f != null) {

The following solution isn't correct. You might think it is, but it isn't. The Dispose will not be executed when an Exception is thrown from within the ShowDialog().

private void buttonShowModalDialog(object sender, System.EventArgs e) {
    TestForm f = new TestForm();

Best CV ever!

By Fons Sonnemans, 13-11-2004
Today a friend of my pointed me to the best CV ever. Have a look.
Tags: Work

DualList Drag & Drop Component

By Fons Sonnemans, 16-9-2004


I have written an article two years ago with the title 'WinForm DualList Component'. In this article I mentioned the desire to extend the DualList component with Drag & Drop support. Finally it's done. Not by extending the original DualList component but by creating an new DualListDragDrop component (reason: cohesion).

Programming Drag & Drop (D&D) between listboxes is quite difficult. It requires at least 60 lines of code for every two listboxes. Therefore not many application support D&D. This component eliminates need of writing the code. You only have to set properties on it. Making it easy to support D&D in your applications.

DualListDragDrop Component

The DualListDragDrop component is a component which can be dropped in the 'component tray' of a windows Form. You therefore first have to add it to the Toolbox of Visual Studio.NET. This can easily be done by dragging   ReflectionITWinFormComponents.dll assembly from an normal Windows Explorer and dropping it on the Toolbox. All controls and components from the assembly will be added to the Toolbox. You can create an separate Tab for it if you want.

For each D&D direction you must add DualListDragDrop component to you Form. In this example three. For each component you have to set the '(Name)', 'ListBoxFrom' and 'ListBoxTo' properties.


You can use the DualListDragDrop component to reorder the position of the items in a ListBox by selecting the same 'From' and 'To' ListBox.

Action property

You can choose from three values for the Action property: Move, Copy and MoveAndCopy. The MoveAndCopy will normally move an item. You can copy the item by pressing the Ctrlkey while initiating the D&D operation.

DropIndicator property

The DropIndicator can be set to 'True' which means you will get a red dotted line indicating where the item will be placed when you drop the item. It supports scrolling the listbox up and down when you move your mouse over the first or last visible item. The item will be added to the bottom of the list when the property is set to 'False'. The color of the line can be selected using the IndicatorColor property.


The DualList and DualListDragDrop components are easy solutions for difficult features. It takes care of all logic needed to move and or copy items from one listbox to another. Use them in your own applications, they are free.

Hopefully this article will encourage more people to make use of the component architecture in their own applications.

Any suggestions and feedback for improving this article is most welcome. Send your suggestions and feedback to

License Information

The ReflectionITWinFormComponents assembly is free for use in commercial or private applications. However, you may only redistribute this in its compiled form (modified or unmodified), you may not redistribute the source or modified source. When using it, please include the line "ReflectionITWinFormComponents - Copyright Reflection IT -" reference in either the about or in the documentation. This will help me out and allow me to continue to provide you with free controls.

All postings/content on this blog are provided "AS IS" with no warranties, and confer no rights. All entries in this blog are my opinion and don't necessarily reflect the opinion of my employer or sponsors. The content on this site is licensed under a Creative Commons Attribution By license.