我正在构建一个使用WCF的全新系统。我将使用契约优先方法来构建基于面向服务概念的服务。我有一个服务操作,返回用户的银行帐户详细信息。该帐户可以是“FixedAccount”或“SavingsAccount”类型。我已经设计了如下服务。合同优先SOA:设计业务领域:WCF
[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(string toAccount)。这成为我们熟悉的&有效的OOAD。这涉及用于AccountSummary DTO和FixedAccount/SavingsAccount域类之间映射的映射器。
2)方法2:不使用映射器转换层。
问题
1)假设我使用的方法1.是否有任何文章/教程,说明如何根据在DTO的ACCOUNTTYPE值AccountSummary的DTO映射到FixedAccount/SavingsAccount域类(有条件的映射) ?
2)如何在方法2中完成任务?
阅读: -
什么是你使用ESB或如何您的SOA层实现? – 2012-03-01 01:54:34
@JamesBlack SOA将使用WCF – Lijo 2012-03-01 04:34:15
实现WCF用于Web服务,但仅仅因为站起来的Web服务不会使其成为SOA层。如果您在用户和web服务之间放置消息总线,现在我们有更多面向服务的东西。对于你的问题,我会有两种不同的服务,但让他们去一个共同的控制器。 – 2012-03-01 12:08:28