Обычный — наворачиваете все из библиотк,
согласно заданию.
Компонентный — создаете компоненты из которых можно легко сконструировать,
ваше задание,
плюс- легко менять, добавлять новое.
Второе чуть дольше делается начально,
и побольше кода,
но в результате, из-за хорошей структуры кода,
и легкой поддержки его изменения, — получается выигрыш.
Это толстый клиент- "все в нем".
А тонкий- когда вы генерите содержание где-либо,
каждый раз= то что надо для данной ситаии -по запросу,
и улиент видит только сгенеренное.