Самостоятельное отслеживание сущностей больше не рекомендуется. Что такое?

Чтение информации MSDN о EF 5.0 и n-уровневых решениях см. По ссылке. Похоже, что MS не рекомендует STE, и путь POCO/DTO также не рекомендуется, заявляя, что это сложно.

Не все (возможно, не многие?) Приложения подходят для использования служб данных WCF. Так какой путь? Мой сценарий - это текущее, большое серверное (WebServices) приложение со множеством клиентов (только наших), в основном WinForms. Сегодня DataSets используются для отправки данных и отслеживания изменений в базе данных SQL Server.

Сейчас мы начинаем заменять WebServices на WCF, а также изучаем возможности использования Entity Framework. Сначала нам не нужен код или миграция, поскольку у нас уже есть база данных и множество хранимых процедур, которые будут использоваться повторно. Поскольку у нас нет проблем с клиентами, отличными от наших, STE показался мне хорошим выбором, но мы не хотим начинать использовать то, что команда EF явно не рекомендует. POCO/DTO также была альтернативой, не в последнюю очередь для четкого разделения против клиентов. Я знаю, что с CUD нужно проделать еще больше работы, но разве это так сложно, что рекомендуется держаться подальше, тогда я не знаю, хотим ли мы идти по этому пути.

Затем, в соответствии с рекомендацией, мы должны использовать службы данных WCF или веб-API, но это на самом деле не является альтернативой для службы на основе операций, которая должна быть гибкой в ​​отношении протокола / формата и т. Д.

Итак, мой вопрос: что такое лучшая практика сегодня?

1 ответ

Решение

Я думаю, что идея состоит в том, чтобы перейти к более легкому весу pocos/dtos и сохранить любую логику или реализацию с постоянством в вашем DAL. Самостоятельно отслеживающие сущности как бы отбирают часть этой реализации и откармливают ваши сущности. Вы получаете удобство, но теряете гибкость, так как глупые dto могут быть легко переданы с небольшим количеством сюрпризов.

Конечно, обратная сторона заключается в том, что вам нужно больше работать в своем dal для отслеживания контекста, и вам нужно больше работать в своем BLL и UI, чтобы справляться с заполнением / отображением dto.

Лично я предпочитаю гибкость, а не удобство, и, похоже, так и происходит в целом.

Другие вопросы по тегам