CSLA.NET学习笔记:5层分布式架构

好的逻辑分层构架的好处:

  • 逻辑的组织代码
  • 更好的代码重用
  • 更易于维护
  • 更好的团队开发体验
  • 更高的代码清晰度
合适的物理分层的好处:
  • 性能
  • 可伸缩性
  • 安全性
  • 容错性

1. 界面层

界面技术的种类越来越多,并且每种技术都会带来一些新的相对不兼容的技术,你必须为适应他它们而做一些工作。显然不可能创建一个完全概括出界面概念的编程框架。因此,架构或者框架仅仅支持创建各种界面,而不是自动创建。我们应该专注于简化架构中的其他层,在那里使用的技术更加稳定。

2. 界面控制层

决定用户应该看到什么,对路径的导航,以及如何解释用户输入。

在WPF或者WINDOWS、WEB窗体的应用程序中,这都是窗体后台的代码;在ASP.NET MVC应用程序中,视图和控制器都是界面控制层的组成部分。HTML、JAVASCRIPT以及其他视图生成的内容组成了界面层;最后,业务层是模型。

3. 业务层

业务逻辑层包括所有的业务规则,数据验证、控制、处理以及对应用程序的授权等。微软的MSDN上是这样对其定义的:业务逻辑层组合了验证输入框、登录验证、数据库查询、安全策略以及构成企业完成业务的方法的算法转换。

需要再次强调的是,在实现运行在浏览器或者其他外部客户端的验证逻辑的时候,不能信任客户端的代码。你必须将运行在你的控制之下的业务层中的逻辑视为唯一真正的验证逻辑。

业务逻辑必须存在于与界面代码分离的层中。虽然你可能会选择在你的界面控制代码中复制其中的逻辑,来提供丰富的用户体验,但是业务层必须实现所有的业务逻辑,因为它是唯一的集中控制和可维护的点。

可以将一个逻辑层部署在多个物理层中。

4. 数据访问层

数据访问代码与数据存储和管理层进行交互,来查询、插入、更新和删除信息。数据访问层并不真正管理或存储数据,它只是提供业务逻辑与数据库之间的接口。

数据访问层之所以有其自己的逻辑层,原因和界面和界面控制层分离的原因是一样的。

逻辑上将数据访问层定义为单独的一层会迫使业务逻辑和任何与数据库(或者任何其它数据源)的交互分离开。

数据访问机制通常是作为一系列服务实现的:每个服务都是一个过程,业务逻辑调用它来取得、插入、更新或删除数据。尽管这些服务经常使用对象来构建,但重要的是要知道事实上一个有效的数据访问层的设计本来就是过程化的。试图强迫为关系数据库访问做面向对象的设计往往会导致复杂度的增加或者性能的降低。我想最好的办法是将数据访问实现为一系列的方法,但是将这些方法封装到对象里来保证它们被逻辑地进行组织。

数据访问层的另一个常见的角色是提供面向对象的业务逻辑和数据仓库中的关系型数据之间的映射。好的面向对象模型与好的关系型数据库模型几乎完全不同。对象经常包含来自于多个表的数据,或者甚至来自于多个数据库的数据;或者相反的,模型中的多个对象只代表一个单独的表。从关系型模型的表中取得数据到面向对象模型的过程叫做对象-关系映射 ORM。

5. 数据存储和管理层

这层的关键在于它处理数据物理上的创建、取得、更新和删除,数据存储和管理层在数据库上下文、或者一系列文件中,真正实现这些操作。

CSLA.NET是一个在分布式环境下只通过修改配置文件就可以实现N部署的框架. 它致力于构建丰富,强大而灵活的业务,包含了验证,权限,数据门户等标准化的解决方案,使你的业务对象更加标准和灵活.它提出了移动对象(Mobile Object) 的概念,使业务对象在不同的服务器上物理性的移动.但它并不失灵活性,其数据门户对ADO.NET,LINQ, ADO.NET Entity Framework,Nhibernate等都能够支持.CSLA.NET还支持在业务对象上构建WPF、ASP.NET(Web Forms、AJAX和 MVC)和Windows Forms,WCF service,Windows Workflow,web Services,Silverlight等用户接口.      CSLA.NET开始于2001年,已经有8年时间了.现在已经被使 用在很多项目中.最新发布的3.6版本包括CSLA.NET  for Windows和CSLA.NET for Silverlight两个版本.其中CSLA.NET for Silverlight对Silverlight2.0提供了无缝支持.      CSLA.NET提供核心功能:         完全支持数据绑定(WPF,Silverlight,Windows Form和Web Form)      对象状态追踪(对象是否为新增、修改、标记为删除,等等。)    标准化业务和验证规则处理 在对象和属性级的标准化授权 整合及简化,标准的.NET身份验证模型  撤销(Undo)功能,用来支持实作取消按钮,和复杂分的用户接口(UI)     标准化集成与数据存取或ORM 加强对于业务对象的LINQ查询支持 许多的一般生产力(productivity)功能,可用于很多的企业应用程序方案中 异步数据存取,和异步验证规则   支持的平台有:Microsoft .NET 1.x through 4.5.1Windows Runtime (WinRT for Windows 8.1)Windows Runtime (WinRT for Windows Phone 8.1)Windows Phone 8 (Silverlight)Silverlight 5Android (using the Xamarin tools)iOS (using the Xamarin tools)Linux and OSX (using mono) 标签:.net开发框架
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值