Я заметил, что несколько приложений WCF предпочитают "разрывать" свои объекты друг от друга; то есть проект может иметь сборку DataObjects, которая содержит DataContracts/Members в дополнение к содержательной библиотеке классов, которая выполняет бизнес-логику.
Это лишний уровень абстракции? Есть ли какое-либо присущее зло, связанное с прохождением и помечением существующих библиотек классов с данными DataContract?
Кроме того, как в стороне, как вы обрабатываете условия ошибки? Исправлены ли исключения из службы (InvalidOperation, ArgumentException и т.д.) Или обычно существует уровень вокруг этого?