В настоящее время я нахожусь на этапе анализа проекта, который мне нужно завершить для курса, так что он не должен просто работать, у него должен быть хороший дизайн класса, хорошая практика ООП и все такое.
Это настольная программа (C # и WPF) с доступом к локальной однофайловой однопользовательской базе данных (SQL Server CE).
В моем домене есть основная таблица, содержащая «документы».Я хочу, чтобы пользователь открыл один документ из базы данных, и он извлечет из базы данных и сохранит в памяти полный график: каждый отдельный объект документа имеет различные коллекции объектов «сын» и «внук».Из памяти в пользовательский интерфейс, где пользователь может свободно манипулировать документом, но он будет сохраняться только тогда, когда пользователь нажимает «Сохранить», например, как документ Word.
Другой вопрос: учитывая природу приложения, лучше всего открыть соединение с базой данных и держать его открытым до тех пор, пока приложение работает, или было бы лучше открывать соединение только тогда, когдаприложение на самом деле сохраняет или читает данные?
Я не вижу, чтобы моя проблема была реализована, просто некоторые предложения по хорошим шаблонам дизайна, относящимся к моему домену (ссылки тоже были бы хорошими).Кроме того, домен довольно прост, поэтому я мог бы реализовать эти шаблоны самостоятельно, не используя каркас OR / M, такой как NHIbernate или Castle (на самом деле я считаю, что NHibernate - это слишком много хлопот для такой простой проблемы), но я бы не сталне против какой-то простой, маленькой и легкой структуры постоянства.