WCF 作为业务逻辑
Posted
技术标签:
【中文标题】WCF 作为业务逻辑【英文标题】:WCF as Business Logic 【发布时间】:2012-07-15 00:14:21 【问题描述】:我当前的应用程序架构计划是
UI -> 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);
现在这个接口应该对不同的实体有不同的实现,比如产品、类别、客户,但是 wcf 只能有一个服务类...
知道我现在应该做什么吗???
【问题讨论】:
【参考方案1】:简而言之,我会做的(并在某些项目中成功完成)是这样的:
使用 WCF 作为端点创建服务层。该层可以包含静态方法,包含在仅用作“命名空间”的类中,例如“UserService”、“MessagesService”等。 世界“看到”的就是这些类。
在其背后创建您的业务逻辑,使用传统的完整 OO 类
创建您的 DAL;除了 BL 访问它之外,Service Layer 也可以访问它,用于不适合使用成熟业务逻辑的简单操作。
我不会使用泛型作为 WCF 端点,它可以做到,但如果您将服务层视为单一操作的单一方法,您将赢得最终将其变成一种公共的选项API(如果您愿意)。
【讨论】:
有了这个,WCF 将只是充当重定向媒介,或者我们有什么其他优势吗? 只是一个通信层。它的功能非常强大,但我几乎看不到任何优势......以上是关于WCF 作为业务逻辑的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC - 服务层 - 业务层 - 数据层 (EF) - SQL DB :: 数据传输?