SOA на основе контракта: разработка бизнес-домена: WCF

Я строю совершенно новую систему с использованием WCF. Я собираюсь использовать подход сначала контракта для сервиса, который должен быть построен на основе сервис-ориентированных концепций. У меня есть сервисная операция, которая возвращает банковские реквизиты пользователя. Учетная запись может быть типа «FixedAccount» или «SavingsAccount». Я разработал услугу следующим образом.

[ServiceContract]
interface IMyService
{
[OperationContract]
AccountSummary AccountsForUser(User user);
}


[DataContract]
class AccountSummary
{
 [DataMember]
 public string AccountNumber {get;set;}

 [DataMember]
 public string AccountType {get;set;}
}

Это очень хорошо.

Теперь мне нужно разработать бизнес-домен для этого сервиса. Я могу придумать два варианта (любой новый подход всегда приветствуется)

1)Подход 1: Придумайте базовый класс BankAccount. Производные от него специализированные классы - «FixedAccount» и «SavingsAccount». У BankAccount будет метод Transfer (строка toAccount). Это становится нашим знакомым и эффективным OOAD. Это включает маппер для отображения между классами домена AccountSummary DTO и FixedAccount / SavingsAccount.

2)Подход 2: Без использования картографического слоя перевода.

Вопросов

1) Предположим, я использую подход 1. Существует ли какая-либо статья / учебное пособие, в котором объясняется, как сопоставить AccountSummary DTO с классами домена FixedAccount / SavingsAccount на основе значения AccountType в DTO (условное сопоставление)?

2) Как мне решить задачу в подходе 2?

ЧТЕНИЕ: -

http://www.soapatterns.org/service_facade.php

Доступ к данным архитектуры SOA

Проектирование услуг и операций в WCF

Данные WCF Контракт и Справочные данные?

Когда логика принадлежит бизнес-объекту / сущности и когда она принадлежит сервису?

Ответы на вопрос(3)

Ваш ответ на вопрос