Es difícil de responder a menos que defina lo que es la "manera pura". ¿Estamos hablando de SOA puro o WCF puro?
Los proxies WCF ya son DTO en cierto modo porque no traen ninguna lógica de negocios a través de su contrato de servicio. Crear otra capa de DTO encima de las clases de proxy generadas por WCF parece redundante.
La pregunta más importante que desea responder es "¿cómo SOA es esta solución?". No puede compartir sus entidades POCO a través de los límites del servicio si desea cumplir con SOA. SOA se trata de contratos dispares.
Si va a SOA basado en que pierde mucha funcionalidad porque las clases con las que trabajará su nivel web la mayoría del tiempo serán proxenetas estúpidos. Tendrá que repetir mucha lógica y perderá muchas de las funciones de "metadatos, convenciones sobre la configuración" que ofrece MVC 2.
Si arroja la palabra de moda SOA en la trituradora, lo que debe hacer (http://soafacts.com/), entonces le resultará mucho más fácil compartir la lógica de negocios y la información de metadatos en niveles. Si el único consumidor de su servicio web es usted mismo que este método, es probablemente su mejor opción.
Aquí es donde podría usar los DTO para enviar a través del cable en lugar de sus entidades POCO. El único inconveniente es nuevamente, repetir la lógica, y un montón de código ceremonial de placa de caldera que no hace nada. Realmente depende del tamaño de tu proyecto. Si es pequeño, olvídese de los DTO, pero si tiene 20 desarrolladores que trabajan con 200,000 LoC, los DTO probablemente valgan la pena.
DTO y POCO no son lo mismo. Eche un vistazo a [esta buena publicación] (http://rlacovara.blogspot.com/2009/03/what-is-difference-between-dto-and-poco.html?m=1). Si termina usando DTO, considere usar [EntitiesToDTOs] (http://entitiestodtos.codeplex.com) para generar automáticamente DTO desde su archivo Entity Framework EDMX. – kzfabi