Cor Ligthert said:
Validating (verification),
Propertybrowser
Binding (I never did it without a property so I am not sure about that one)
Is that enough to answer "why"?
Consider the advantage of de-coupling your data access layer from your
user interface layer. The data access layer is the workhorse doing the heavy
lifting of your application, whereas the UI is simply a few forms and controls
to access and display the data. The advantage to de-coupling allows you to
swap out either part, without effecting the other. You can change from an
SQL based database to XML files, if that suits the need better, and the UI
would not see a difference, or, you can change the UI to a web application
without have to visit the data access code.
Now, what does a class have in common with that situation?
You can consider all the public properties and methods in a class as its
'user interface' with the code in the module the 'access layer'. IOW,
using properties in a class de-couples the interface from the implementation
which means you can make alterations to either, without forcing a major
impact on the other part. Doing so means less work during maintenance and
upgrades, besides the advantages you listed.
LFS