Первым и, пожалуй, самым сложным и важным шагом является выбор или создание базового компонента.
Обратите внимание, что компоненты, работающие с данными, не должны быть наследниками конкретного класса. Практически на их иерархию не накладывается никаких ограничений.