Работа с данными для модульного приложения - PullRequest
0 голосов
/ 12 сентября 2011

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

Каков наилучший способ отделить этот слой?Объекты данных представляют то, что отображается на экране для новой записи.

Ответы [ 2 ]

1 голос
/ 14 сентября 2011

Похоже, я в одной лодке с тобой. Если у вас ORM (например, EF) и какая-то инфраструктура бизнес-объектов (RIA Services, DevForce), то вы в значительной степени «привязаны» к наличию 1 сборки на каждом конце (клиент / сервер)

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

Я хотел бы создать только один проект данных (это даже не модуль в Prism) и ссылаться на него из всех модулей. В моем случае я ссылаюсь на него из основного проекта и устанавливаю «CopyLocal = true», чтобы MEF знал об этих объектах, а я ссылаюсь на него из других модулей и устанавливаю «CopyLocal = false».

1 голос
/ 12 сентября 2011

Обычно вы создаете сборку домена для своего приложения (myproject. Infrastructure), которая содержит все общие классы. На эту сборку ссылаются все проекты. При таком подходе ваши модули не ссылаются друг на друга напрямую. (см. также справочную реализацию Prism Stocktrader)

...