С чего начать разработку приложения для работы с БД?
======================================================

 Доброго времени суток!  

Взялся за разработку первого более-менее серьёзного приложения. Связано оно будет в основном с добавлением\изменением\отображением данных из БД. Сама база на MySQL.  

Подскажите, с чего начать проектирование приложения? Какие модели существую и где можно почитать об этом на понятном языке?  

Уже что-то слышал про Hibernate на Java, а также варианта для C# - NHibernate. Но также пишут, что ORM-системы являются "плохими и перегруженными"... Но и не хочется мешать вместе SQL язык и ЯП.   

Из-за неимения опыта не могу трезво судить что хорошо, а что плохо. Помогите разобраться! 

> Но также пишут, что ORM-системы являются "плохими и перегруженными"..

 На заборе х*й написано. Любая ORM лучше ситуации, когда на каждый чих пишется sql запрос.  
  

А начинать надо с архитектуры, если есть опыт, или хотя бы с модели данных. 

 Приложение использующее БД начинается с проектирования структуры БД - как по мне это самая сложная часть, тут нужно думать не мало и учитывать много тонкостей. 

 С получения технического задания. Если эта задача на вас, то с определения целей, терминов, процессов и написания этого задания. 

 Разобраться в сущностях предметной области - с чем мы имеем дело. Какие у них, у сущностей, есть свойства, какие из них для нас важны, а какие нет. Как эти сущности связаны друг с другом. Концептуальная модель предметной области, по-хорошему оформляется графической схемой с пояснениями. Потом разобрать по возможности все варианты использования - кто будет использовать, зачем, какая информация должна быть получена и какие изменения в данных должны произойти . Use cases называется. Потом уже исходя из этого всё остальное, что здесь сказано.   

Если этот этап пропустить, то за день до сдачи запросто можно обнаружить, что имеющаяся структура БД в принципе не позволяет решить ту задачу, которая для заказчика важнее всего, и что структуру данных надо переделывать, а весь написанный под нее код - переписывать с нуля.