Могу дать такие советы, как вижу это я.
Разделить приложение на три уровня:
1) Presentation - уровень представления, при помощи которого пользователь взаимодействует с приложением;
2) Business Logic - слой бизнес-логики;
3) Persistence - слой где хранятся данные, но обычно это реляционная БД.
Если это настольное приложение, то слой Presentation разбей на три компонента согласно паттерну MVP (Model-View-Presenter), если это классическое веб-приложение, то паттерну MVC (Model-View-Controller).
Слой бизнес-логики реализуй согласно паттерну Transaction Script, ну либо паттерну Модель предметной области, где для начала будет анемичная модель (anemic model), которая полностью совпадает со схемой БД, а логику храни в сервисах. Далее когда наберешься скиллов, то можешь пробовать из анемичной модели предметной области сделать богатую (rich model), для этого можешь обратить внимание на методологию DDD (Domain-Driven-Design).
Ну и слой хранения, тут пока тупо через средства ORM...
Ну примерно так, ничего нового и волшебного тут нету.