2012-07-04 2 views
1

Мы начинаем работу над новым корпоративным приложением и в настоящее время рассматриваем технологический стек.Использование EntityFramework по границам в корпоративных системах

Это будет .Net/SQL Server, как это все мы знаем.

Приложение будет иметь разные пользовательские интерфейсы для разных платформ, например Web, Desktop WPF, Mobile, из-за этого мы рассматривали создание служб WCF для размещения нашей бизнес-логики данных, чтобы каждый пользовательский интерфейс мог просто вызвать одну и ту же логику ,

Мы также хотели бы использовать Entity Framework Code Сначала, но в прошлом, когда мы это пробовали, EntityFramework никогда не была такой замечательной, когда вы начинаете передавать объекты через границы, например, отслеживание изменений теряется, и вам нужно начинать ручную работу как обновлять объекты и проверять, какие дочерние сущности также были изменены.

Были ли эти проблемы решены в новых версиях WCF/EntityFramework? Есть ли примеры или шаблоны, на которые мы могли бы обратить внимание, чтобы облегчить этот процесс? Или следует избегать EntityFramework в этом сценарии?

+0

Зачем вам передавать активную сущность через границы границ домена? –

+0

Возможно, я смотрю на это неправильно, но если я хочу, чтобы данные отображали объект Book из базы данных и использовали его в своем веб-приложении, я бы назвал GetBook из службы WCF, чтобы вернуть мою сущность, внести изменения в WebApp затем вызовите SaveBook в службе WCF, проходящей в модифицированном объекте книги. – Gavin

+1

Похоже, вы просто хотите, чтобы ваша служба WCF выступала в качестве прокси-сервера для базы данных, если это так, то почему у вас вообще есть сервис? Если вы выполняете больше логики, чем просто в вашей службе (например, разрешения и проверки), вы, вероятно, не хотите напрямую обращаться к методу сохранения сущности, вам лучше назвать метод UpdateTitle. Я также не согласен с моделями, пересекающими границы 2-го уровня, поскольку он создает очень тугое соединение, если вы добавили столбец IsDeleted, вы хотите, чтобы это распространялось на все другие системы? –

ответ

0

Были ли эти проблемы решены в более поздних версиях WCF/EntityFramework? Есть ли какие-либо примеры или шаблоны, которые мы могли бы посмотреть , чтобы облегчить этот процесс? Или нам следует избегать EntityFramework в этом сценарии ?

Нет, они не имеют. Если вы не используете EF, и вы будете напрямую использовать WCF и SQL, как ваш WCF узнает, какие данные изменились на клиенте? Да, вам придется реализовать механизм либо путем передачи некоторой дополнительной информации в данных, либо путем проверки текущего состояния в базе данных. Такой же подход необходим для EF, если вы не переместите это обнаружение изменений на клиента.

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

 Смежные вопросы

  • Нет связанных вопросов^_^