Game Development Reference
The DataGrid view is great because we do not have to put in much code to get it up
and running. The downside is a little bit of a performance hit compared to the
other views because of an insane number of reflection calls when the row count
gets fairly high. It's all about the right tool for the job!
A number of problems arise when an application contains a variety of presenta-
tion layer code, business logic, and data access code. These applications are often
difficult to maintain and extend because of all the dependencies between different
components. Usually any change, even the smallest one, breaks compilation and
calls for a bit of refactoring to get the application back together. Tightly coupled
architectures make it difficult to reuse components, often resulting in copy-paste
solutions or other ungodly hacks. The Model-View-Controller design pattern is
widely used for desktop application development, and I guarantee that you will see
a significant improvement in the overall maintainability and extensibility of your
application if you consider this wonderful paradigm. It will make your application
and components much more reusable, provide you with a decoupling of your
business logic and presentation layer, and cleanly support extensibility mechanisms
such as plugins and integrated scripting.
Integrated scripting is not necessary for many applications, especially small throw-
away tools, but for large applications where you anticipate a fair amount of content
to be created, you should definitely consider implementing some form of automa-
tion support to reduce the time spent on performing tedious and repetitive tasks.
Doing so can save a significant amount of time, money, and patience.