Мы разработали многоуровневое приложение с STE.Уровень пользовательского интерфейса с ASP.NET и ModelViewPresenter, бизнес-уровень, уровень службы WCF и уровень данных с Entity Framework.
Когда я впервые прочитал о STE, в документации говорилось, что они проще, чем использование пользовательских DTO.,Они должны быть «быстрым и простым способом», и что только в действительно больших проектах вы должны использовать рукописные DTO.
Но мы столкнулись с множеством проблем при использовании STE.Одна из основных проблем заключается в том, что если ваши сущности поступают из нескольких сервисных вызовов (например, из основного подробного представления) и, следовательно, из разных контекстов, вы столкнетесь с проблемами при составлении графиков на сервере и попытке их сохранения.Таким образом, наша серверная функция все еще должна вручную проверять, какие данные были изменены, а затем повторно составлять граф объектов на сервере.Много было написано на эту тему, но все еще не легко исправить.
Другая проблема, с которой мы столкнулись, заключалась в том, что STE не будет работать без WCF.Отслеживание изменений активируется при сериализации объектов.Первоначально мы разработали архитектуру, в которой WCF можно было бы отключить, а вызовы служб просто выполнялись (это было требованием для наших модульных тестов, которые выполнялись бы намного быстрее без wcf и были бы проще в настройке).Оказалось, что STE не правильный выбор для этого.
Я также заметил, что разработчики иногда включают много данных в свой запрос и просто отправляют их клиенту, вместо того, чтобы действительно думать о том, какие данные им нужны.
После этого проекта мы 'Мы решили использовать пользовательские DTO с автоматом от сервера к клиенту и использовать шаблон POCO в нашем слое данных в новом проекте.
Так как вы уже заявляете, что ваш проект большой, я бы выбрал пользовательские DTO и сервисные функции, которые специально созданы для одной цели, вместо функций «Обновление (Person))», которые отправляют много данных
Надеюсь, это поможет:)