WCF三层架构:
服务接口层(Service interface layer):该层将包括服务契约和操作契约,用于定义将在服务边界公开的服务接口。 数据契约也被定义为将数据传入和传出服务。 如果预计会在服务之外抛出任何异常,那么也将在此层定义Fault契约。
业务逻辑层(Business logic layer):该层将实际业务逻辑应用于服务操作。 它将检查每个操作的前提条件,执行业务活动,并将任何必要的结果返回到服务的接口层。
数据访问层(Data access layer):该层将负责访问底层数据库所需的所有任务。 它将使用特定的数据适配器来查询和更新数据库。 该层将处理与数据库,事务处理和并发控制的连接。 服务接口层和业务逻辑层都不需要担心这些问题。
为了最大程度地实现互操作性并与SOA原则保持一致,您不应跨服务边界传递任何特定于.NET的类型(如DataSet或Exceptions),因为您的服务可能由Windows以外的其他操作系统调用,而这些操作系统可能无法理解。 NET特定类型。 你应该坚持只有原始属性的相当简单的数据结构对象。 您可以传递具有嵌套复杂类型的对象,例如“Customer with a order collection”。 但是,您不应该假设消费者能够支持面向对象的构造,例如可互操作Web服务的继承或基类。