Blog

Iterators

The purpose of the iterator is to provide a mean to sequentially access items of a collection, without exposing the internal structure of the collection.

Read more

TPL Data Flow

The TPL DataFlow exposes classes to manipulate data asynchronously. It is based on the Task library and on two the interfaces ISourceBlock<T> and ITargetBlock<T>.

Read more

WebDAV & co

Several RFC are related to the WebDAV protocol. I have been wondering if this should not be an interresting starting point to both a CMS and an activity management server. In a way, an activity management like FlowGroup could simply expose vCard and vCalendar items, the customization consisting in defining business rules on how to aggregation Organizational Units informations to create the vCard, or when to create a vEvent, a vJournal or a vTodo. These would be wrappers around related documents that would keep track of the business data.

Read more

Definition of interface

If inheritence reflects a is-a relationship between a class and its parent, the interface is more a can-be relationship between the class and the code using it.

The interface must be simple but  not simplistic. It must also be unambiguous and favor the ease of implementation. As such, methods overloading must be avoided. Only the most complete method should be declared.

Read more

Control(ler)

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:

  1. model, containing the data to present
  2. behavior, managing user input
  3. renderer, to paint the visual
  4. visual state, to store the state the control itself is into
  5. layout, when the control is a container of other controls or simply to make specify client and non client area.

Read more