Handling commands through menu or toolbar event in .Net is easy: you click on the item and choose the handler for the Click event. If two items have the same purpose (the FileOpen menu item and the Open button for instance), you simply use the same handler.
I used to consider the controls as User Interface, so as "View" in the Model/View/Controller pattern. But in fact, as the name states, the control might be seen as the controller between the 5 following parts:
model, containing the data to present
behavior, managing user input
renderer, to paint the visual
visual state, to store the state the control itself is into
layout, when the control is a container of other controls or simply to make specify client and non client area.
As presented, applications built with the naked object framework had a good feedback from users. Nethertheless, I find the UI pretty simplistic: icons, lists and context menus. There might be other and better ways.
I am having hard time putting in practice the WorkItem or even the MVC/MVP patterns of the Composite Application Block. While starting to read the thesis on the Naked objects, I am wondering if it is not because I am more enclined to the latter approach which emphasis the behavioral completness of the objects...
When the collection had their "Generic" version added, some features were changed:
IsSynchronized and SyncRoot do not exist in the ICollection, when they exist in the ICollection.
IList does not declare a IsFixedSize property.
The List have an instance AsReadOnly method than returns a new ReadOnly version of the list, while ArrayList have a ReadOnly static method to do the same.
ReadOnly, Synchronized and FixedSize version where hidden and available to instanciation only through static method, whereas they are public derived class now.
The framework is getting messier... I am hoping, without really believing, that MicroSoft will attempt to clean this up and make good use of the Obsolete attribute.