Csla.Net架构学习总结

一、Csla.Net简介

1CSLA.NET概述

CSLA.NET是一个在分布式计算环境下利用面向对象思想创建业务对象的一个框架。现在已经发布了4.2.0(alpha 1)版本,包括对应支持.NET 4.0  Silverlight 4  WinPhone7  mono  MonoTouch MonoDroid不同的平台。CSLA.NET是一个强大的,久经考验的框架,它支持在分布式应用程序中面向对象业务层对象的创建.它帮助你压缩你的业务逻辑在一个富业务领域对象中,并且支持你的业务对象有强大的特性,例如数据绑定,业务逻辑,验证和权限.该框架涵盖在一个非常宽松的软件授权(开源),以及有一个充满活力,有帮助且友好的社群团体。     CSLA.NET致力于构建丰富,强大而灵活的业务层(Business Layer)此业务层是由业务领域对象(Business Domain Object)所组成的,封装了商业规则(计算、算法处理、验证和授权)。这些对象应该根据应用程序领域的业务使用案例来设计。 

2、CSLA.NET使用价值说明及技术风险评估意见

架构、设计和开发极具可扩展性和可维护性的面向对象商业应用CSLA.NET承诺的一个具有概括性的愿景。

(1)CSLA.NET使用价值:

无论使用何种平台,CSLA.NET被设计来做两件事情。首先,用来支持建构一个以丰富的商务领域对象为基础的强大业务层。第二,启用以称为移动对象(Mobile Object)概念为中心的分布式应用程序架构。为了能支持建构丰富的领域对象,CSLA.NET包含提供通常所需功能的子系统,包括        

 完全支持数据绑定(WPFSilverlightWindows FormWeb Form)     

 对象状态追踪(对象是否为新增、修改、标记为删除,等等。)   

 标准化业务和验证规则处理

 在对象和属性层级的标准化授权

 整合及简化,标准的.NET身份验证模型 

 撤销(Undo)功能,用来支持实作取消按钮,和复杂分层的用户接口(UI)    

 标准化集成与数据存取层或ORM

 加强对于业务对象的LINQ查询支持

 许多的一般生产力(productivity)功能,可用于很多的企业应用程序方案中

 

二、做在开发中使用CSLA.NET  for Windows 的细节

CSLA.NET  for Windows .Net 使用环境中其实是以类库的方式集成到解决方案中的,3.8的版本为例,下载源码编译后生成的类库文件是Csla.dll。在引用Csla.dll时需要一并引用System.Windows.Interactivity.dll,也就是Csla.dll依赖于System.Windows.Interactivity.dll类库。在Winform和 WebformWPF等客户端界面的开发中可以从Csla.dll引入Csla控件。

Csla重要名词及重要的基类

业务领域对象: 即Business Domain Object 是封装了商业规则(计算、算法处理、验证和授权)对象。 Csla.BusinessBase<T>, Csla.BusinessListBase<T,C>,Csla.ReadOnlyBase<T>,  Csla.ReadOnlyListBase<T,C> 这四个基类就是大多数业务对象都要继承的主要类。

Csla的数据门户: Csla框架的数据门户将通过通道适配器模式和消息路由模式合并起来,提供了对服务器上所有数据访问操作的一个简单明了的入口点。实际上,数据门户完全隐藏了服务器的参与,这就使得应用程序能在不改变代码的情况下,在两层和三层物理部署之间自由切换。 业务开发人员使用Csla.DataPortal类来创建、提取、更新和刷新所有的业务对象数据。数据门户机制使移动对象得以实现,并提供了对分布式事务支持这样的服务器端资源的访问。

客户端DataPortal 它是数据门户基础架构的主要入口。它被实现为一个static类,任何它所暴露的public方法都可以无须创建一个DataPortal对象而被业务对象代码调用。它提供的方法包括Create()Fetch()Update()Delete()Execute() 客户端DataPortal在接收到调用之后,读取和操作客户端配置设置的代码。这些设置控制着“服务器端”数据门户组件会进行在服务器上还是运行在客户机本地。

客户端代理类在客户端DataPortal读取客户端配置来决定合适的网络传输之后,由客户端代理类处理每种网络技术的细节。代理类的种类有:远程调用、Web Services和企业服务。同时,用户本事可以自己编写自己的TCP套接字协议;每个客户端代理都有一个相应的服务器端宿主类。 客户端DataPortal简单地创建一个合适的客户端代理的实例,然后把请求委托给这个代理对象。这个代理对象负责搭建一个到服务器端宿主对象的网络连接,并且在网络上委托该请求。如果服务器端发生一个异常,那么完整的异常细节会被传回客户端。

消息对象在客户端DataPortal调用服务器端数据门户的时候,有几种类型的信息要被从客户端传送到服务器端。 服务器端数据门户:实现了消息路由设计模式。它接受来自客户端的请求,并把这些请求发送到合适的处理者。对于CreateFetchDelete操作,服务器端的数据门户需要你的业务对象的类型信息,通常是由查询条件对象来提供的。对于更新和执行操作,业务对象本身会被传送给服务器端数据门户。

通道适配器:   允许应用程序能在两层和三层模型之间进行切换,以及能在不同的网络协议之间进行切换,为N层应用程序提供了极大的灵活性。

消息路由:    服务器实现了拥有单一的入口点来暴露有限数量的方法。这使得服务器的API非常清晰和简洁,将修改服务器API的需要降低到了最低。(同时,它也约束了框架应付复杂数据要求的能力。)在本框架中,消息路由的功能是由Csla.Server.DataPortal来实现的。同时,它也是通道适配器模式的终点。

三、Csla.Net测试项目实例

详见源代码。

你可能感兴趣的:(.net)