Umieszczenie DTO / POCO w projekcie trójwarstwowym

Byłem w trakcie przepisywania zaplecza strony internetowej i przenosiłem ją w stronę trójwarstwowej architektury.

Moim zamiarem jest to tak skonstruować:

Web site <--> WCF Service (1) <--> Business Layer (2) <--> Data Layer (3)

Moim problemem jest umieszczenie DTO w tej strukturze. Będę musiał użyć DTO, aby przenieść dane między warstwą biznesową a usługą WCF oraz z usługi WCF do używanej strony internetowej.

Podczas moich badań tutaj przeczytałem kilka świetnych dyskusji, choć zostawiłem trochę podrapania po głowie:

Davide Piras zdobywa świetne punktyten post a gdybym miał zastosować ten projekt, zadeklarowałbym interfejsy dla POCO w oddzielnym projekcie. Zostałyby one następnie zaimplementowane przez poziomy (1) i (2). Chociaż lubię korzystać z interfejsów, wydaje mi się, że robię więcej dla siebie, deklarując POCO w (1) i (2), a następnie kopiując ich dane tam iz powrotem, używając czegoś takiego jak AutoMapper.

Ten post używa systemu, w którym tworzony jest projekt obiektów biznesowych, do którego odwołują się wszystkie warstwy. Wydaje się, że jest to prostsze niż inne rozwiązanie i wydaje się prowadzić do rozwiązania, które byłoby

Web site <--> WCF Service (1) <--> Business Layer (2) <--> Data Layer (3)

<pre><code>^ ^ ^ | | | [ -- Business Objects Referenced here --] </code></pre>

Moje pytanie brzmi: czy istnieje zapach kodu z udostępniania obiektów biznesowych w trzech warstwach rozwiązania, czy też dwie metody, które wymieniłem powyżej, są tylko dwoma różnymi sposobami na złamanie tego samego orzecha?

questionAnswers(2)

yourAnswerToTheQuestion