Какой хороший пример домена для презентации NHibernate? - PullRequest
3 голосов
/ 31 августа 2009

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

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

Текущие идеи:

  • Блог -использован, нет явных наследственных отношений?
  • Аукционный сайт - используется в NHibernate в действии - потребуется переписать DAL для использования хранимых процедур через ADO для демонстрации преобразования
  • Интернет-магазин

Есть идеи?

Ответы [ 6 ]

3 голосов
/ 07 сентября 2009

Northwind вполне подойдет.

Для идей, как показать конверсию - я бы рекомендовал вам взглянуть на Sh # rpArchitecture
(они используют Northwind в качестве примера).

Только не забывайте, что пример приложения является второстепенным - сосредоточьтесь больше на выделении ключевых функций NHibernate.

3 голосов
/ 02 сентября 2009

Как насчет приложения адресной книги компании? People имеют очевидные свойства, а ContactLists является коллекцией People. People есть Addresses. Вызов ContactList явно невозможен; однако отправка сообщений человеку и отправка на ContactList должны иметь такой же открытый API для SmtpClient.

Этот пример позволяет проиллюстрировать:

  • базовое отображение (т. Е. FirstName и т. Д.)
  • составное сопоставление (представьте, что вы хотите представить столбцы First, Middle, Last и Nickname в классе Name)
  • Has-One (или Много, в зависимости от ваших требований) (т.е. Person -> Address)
  • Многие ко многим (то есть ContactList <-> Person)
  • наследование (с использованием абстрактного базового класса)
2 голосов
/ 02 сентября 2009

Вы можете взглянуть на это: http://code.google.com/p/ndddsample/, который является примером проектирования на основе домена в c # и использует NHibernate

1 голос
/ 09 сентября 2009

I second @ ddc0660, и вот потенциальный фрагмент такого дизайна с помощью «Образца точки контакта» из книги: « Построение объектных приложений, которые работают ».

1 голос
/ 02 сентября 2009

Идеей, которая могла бы продемонстрировать некоторые функции наследования, был бы любой сайт / магазин, предлагающий продукты с различными «пакетами» и функциями, связанными с различными версиями. Прекрасным примером может служить автомобильный сайт, на котором вы можете перечислить детали различных моделей автомобилей и различные функции, которыми они обладают.

У вас, очевидно, будет свой базовый класс транспортных средств, но вы можете начать строить его на разных типах транспортных средств (автомобиль, грузовик, внедорожник и т. Д.), А затем - на автомобиле (купе, седан, грузовик). > половина кабины, королевская кабина и т. д.)

1 голос
/ 02 сентября 2009

Я бы проголосовал за интернет-магазин - разные товары с данными, счетами, тележками, пользователями, адресами - думаю, вы поняли идею.

Вы можете сделать его настолько большим и маленьким, насколько пожелаете. Я думаю, что все это понимают. Нечто подобное было моим первым проектом NHibernate - и я думаю, что это было хорошее начало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...