小编cod*_*dey的帖子

N层架构

我遇到的情况是我必须从头开始设计和实现一个系统.我对架构有一些疑问,我希望你的评论和想法.

关于项目的快速信息:它是一个以数据为中心的Web应用程序.

该应用程序将构建在带有MS SQL SERVER 2008数据库的Microsoft .NET Framework 4.0上.

需求:

  1. 丰富的UI和强大
  2. 多设备支持(每个浏览器和每个设备)
  3. 松散耦合

下面是我构建的架构图:

在此输入图像描述

建筑简报

  1. 表示层:HTML5/ASP.NET MVC + JQuery(第一版中支持多设备的Web应用程序)
  2. 分布式服务:WCF(XML/JSON/JSONP)
  3. 域层(业务层):所有业务逻辑
  4. 数据持久性(DAL层):具有数据库第一种方法的实体框架4.0.使用T4模板生成并分离出POCO实体
  5. 基础结构层:包含常见的库,如POCO实体,异常处理,日志记录等

我的担忧:

  1. 由于应用程序要松散耦合,因此将来如果业务需求增长,可以轻松插入新模块而不会影响架构.所以我想到使用Repository模式以及IoC和DI(可以是Unity/Ninject/Sprint.NET或任何其他)
  2. 支持XML和JSON的WCF
  3. 分布式服务层,用于放置IoC和DI
  4. 使用Enterprise Library 5.0进行异常处理和日志记录

寻找有价值的意见和建议.如果我做错了什么,请把我指向正确的方向.

wcf entity-framework inversion-of-control n-layer

6
推荐指数
2
解决办法
4543
查看次数

使用WCF WebApi的异步REST服务

我想知道开发人员对WCF WebApi服务的看法是什么.

在N层应用程序中,我们可以拥有多层服务.我们可以使用服务来消耗外部服务的数据.在那种情况下,使用WCF 4.0创建异步休息服务是值得的.

public interface IService
{
   [OperationContractAttribute(AsyncPattern = true)]
   IAsyncResult BeginGetStock(string code, AsyncCallback callback, object asyncState);
    //Note: There is no OperationContractAttribute for the end method.
    string EndGetStock(IAsyncResult result); 
}
Run Code Online (Sandbox Code Playgroud)

但随着WCF WebApi的发布,这种方法仍然需要吗?创建异步服务?

如何在IIS/WAS /自托管中托管它们

期待建议和评论.

wcf wcf-hosting wcf-rest wcf-web-api

3
推荐指数
1
解决办法
2042
查看次数