These days I am working on a project where I am maitaining a body of code that was developd in C#. For some reason that I have not been able to fathom the previous developer used the following paradigm. Certain classes are pure data. They do not have any code other than getter and setter functions. Then there are other managerial classes that actually maipulate these classes. The organization is usually a class named XXXData and another named XXXDataManager.
This I beleive violates the fundamental principles of Object Oriented Programming. I wish these articles are required reading for any developer before he starts belting out code