It's all just dialogs and data.
Presentation: it seems so simple. Just toss up some dialogs, some buttons, a few list boxes and scroll bars, and it'll be obvious to the user what's going on, right? Take the users' input, scrub it, send it back to the server, and we're done.
For many developers, building the user interface is quite possibly the most fun part of the job. Part of the reason lies in the fact that the user interface, unlike much of the rest of the system, is a visible, tangible, measurable indicator of progress. This morning, I had an empty window—this afternoon, I have a screen that a user can interact with (even though it does nothing under the hood). The user interface is also one of the few parts ...