WCF作为业务逻辑

时间:2012-07-16 06:52:13

标签: c# wcf n-tier-architecture business-logic-layer

我的应用程序的当前架构计划是

用户界面 - > WCF Bal - >通用Dal - >实体模型

我已经创建了泛型Dal方法和相关实体,并且将从业务逻辑处理要执行的特定操作。

我正在尝试在wcf上创建一个业务逻辑,而且之前我们曾经为单独的实体做单独的类,所以从WCF上下文混淆了如何去做?

我最初想过创建一个具有通用实现的接口,比如

 public interface IBalService<TEntity> where TEntity:class 
{
    [OperationContract]
    IDictionary<int, string> Populatelist();

    [OperationContract]
    IEnumerable<TEntity> Viewall();

    [OperationContract]
    void Insert(TEntity obj);

    [OperationContract]
    void Update(TEntity obj);

    [OperationContract]
    void Delete(TEntity obj);
}

现在这个界面对于不同的实体应该有不同的实现,比如Product,Category,Customer但是wcf只能有一个Service类......

知道我现在应该做什么???

1 个答案:

答案 0 :(得分:2)

简而言之,我会做的(并在一些项目中成功完成)是:

  • 使用WCF作为端点创建服务层。该层可以包含静态方法,这些方法包含在仅用作“命名空间”的类中,例如“UserService”,“MessagesService”等。 世界“看到”的只是这些类。

  • 使用传统的完整OO类

  • 在其背后创建您的业务逻辑
  • 创建您的DAL;除了访问BL之外,服务层还可以访问它,以便进行简单的操作,而这些操作并不能证明使用完整的业务逻辑。

我不会将泛型用作WCF端点,它可以完成,但如果您将服务层视为单一操作方法,您将赢得最终将其变为某种公共选项的选项API(如果您愿意)。