CSLA.NET

来自开放百科 - 灰狐
跳转到: 导航, 搜索

CSLA.NET 是一个开源(MIT)的企业应用开发框架,CSLA 是 Component-based, Scalable, Logical Architecture 的缩写。

CSLA.NET是一个.NET软件开发框架,可以帮助开发者为Windows、Web、面向服务和工作流等应用构建强大和可维护的业务逻辑层。

Csla.net.png

目录

功能

  • 完全支持数据绑定(WPF,Silverlight,Windows Form和Web Form);
  • 对象状态追踪(对象是否为新增、修改、标记为删除等等);
  • 标准化业务和验证规则处理;
  • 在对象和属性层级的标准化授权;
  • 整合及简化、标准的.NET身份验证模型;
  • 撤销(Undo)功能,用来支持实作取消按钮,和复杂分层的用户接口(UI);
  • 标准化集成与数据存取层或ORM;
  • 加强对于业务对象的LINQ查询支持;
  • 许多的一般生产力(productivity)功能,可用于很多的企业应用解决方案中;
  • 异步数据存取,和异步验证规则。

好处

使用CSLA.NET能够获得的好处:

  • 智能数据:业务数据和与之关联的业务逻辑被封装在对象中,这样开发者永远不会使用原始的、不受保护的数据,所有的业务逻辑被集中在一起,从而易于维护。
  • 简单的对象创建过程:开发者使用标准的.NET面向对象的编程技术来创建业务对象。
  • 灵活的物理配置:数据访问代码可以在本地或者在应用服务器上运行,而不需要改变业务代码。
  • 对象持久化:清晰地定义包含所有数据访问代码的方法。
  • 优化的数据访问:如果对象的数据已经被改变了,那么对象只会保持它自身。我们很容易就可以在多种事务技术中选择一种,来平衡性能和功能。
  • 可选的多级撤销功能:我们能够很容易地支持复杂的WPF或者Windows窗体界面,还支持高性能的Web界面。
  • 业务规则管理:会减少需要实现业务规则和验证规则的代码。
  • 授权规则管理:会减少实现对每个属性授权所需的代码。
  • 简单的用户界面创建:完全支持WPF、Windows窗体和Web窗体的数据绑定,在创建复杂的用户界面时能够尽量减少代码。
  • 对Web服务的支持:开发者能够迅速地为应用程序创建Web服务接口,以便于其它应用程序能够直接使用应用程序的功能。
  • 自定义身份验证:易于我们在Windows集成安全措施和CSLA.NET自定义安全措施之间做出选择。也易于自定义CSLA.NET的自定义安全措施,方便使用已存在的安全数据库。不论在哪种情况下,都会使用标准的.NET安全对象,提供访问用户安全信息的标准方式。

命名空间

CSLA.NET框架的命名空间:

  • Csla 包含了业务开发者使用的最一般的类型
  • Csla.Core 包含了为框架提供核心功能的类型,不期望被业务开发者使用
  • Csla.Data 包含了用于数据访问操作的可选类型,通常被业务开发者、Web用户界面和Web服务开发者使用
  • Csla.DataPortalClient 包含的类型支持客户端DataPortal行为,在创建自定义数据门户代理时使用
  • Csla.Linq 包含的类型实现LINQ to CSLA功能,不期望被业务开发者使用
  • Csla.Properties 包含了Visual Studio为Csla项目生成的代码,不期望被业务开发者使用
  • Csla.Reflection 包含的类型抽象和提升对反射的使用,不期望被业务开发者使用
  • Csla.Security 包含支持授权的类型,在创建自定义安全主体对象时使用
  • Csla.Serialization 包含的代码抽象了对.NET的BinaryFormatter或NetDataContractSerializer串行化技术的使用
  • Csla.Server 包含的类型支持服务器端数据门户行为,不期望被业务开发者使用
  • Csla.Server.Hosts 包含的类型支持服务器端数据门户宿主,在创建自定义数据门户宿主时使用
  • Csla.Validation 包含的类型支持验证和业务规则的类型,通常在创建规则方法时使用
  • Csla.Web 包含CslaDataSource控件,由Web用户界面开发者使用
  • Csla.Web.Design 包含支持CslaDataSource控件的类型,不期望被业务开发者使用
  • Csla.WebServiceHost 包含了Web服务数据门户宿主,不期望被业务开发者使用
  • Csla.Windows 包含的控件帮助Windows窗体数据绑定,被Windows用户界面开发者使用
  • Csla.Worflow 包含的类型帮助使用Windows工作流基础(WF),被工作流开发者使用
  • Csla.Wpf 包含的控件帮助WPF数据绑定,由WPF用户界面开发者使用

为业务开发者所适宜哦难过的主要的基类位于Csla命名空间zi自身,它们是:

  • Csla.BusinessBase<T>
  • Csla.BusinessListBase<T, C>
  • Csla.ReadOnlyBase<T>
  • Csla.ReadOnlyLIstBase<T, C>
  • Csla.NameValueListBase<K, V>
  • Csla.CommanBase

Csla命名空间中主要的类:

  • ApplicationContext 该类用于访问重要的应用程序上下文信息,被框架、业务类以及用户界面代码使用
  • BusinessBase 可编辑根对象、子对象以及可切换对象继承的基类
  • BusinessListBase 可编辑根和子列表对象继承的基类
  • CommandBase 命令对象继承的基类
  • CriteriaBase 自定义条件对象继承的基类
  • DataPortal 该类向客户端公布数据门户功能
  • EditableRootListBase 动态列表对象继承的基类
  • NameValueListBase 名称/值列表对象继承的基类
  • PropertyInfo 该类为每个业务对象属性定义元数据
  • ReadOnlyBase 只读根和子对象继承的基类
  • ReadOnlyListBase 只读根和子列表对象继承的基类
  • SingleCriteria 该类为任何对象提供单值条件
  • SmartDate 该类型扩展了DateTime,添加了空日期的概念以及其他特性
  • Utilities 该类型包含其他类使用的使用工具方法

上下文

ApplicationContext类位于应用程序的中心位置,从这里可以访问应用程序的上下文信息。

以下是通过ApplicationContext提供的上下文信息:

  • GlobalContext 上下文数据的集合,它会从客户端流向服务端,然后从服务器流回客户端,两端上的变化会跨网络传送
  • ClientContext 上下文数据的集合,它会从客户端流向服务端,在服务端上的变化不会带回给客户端
  • LocalContext 上下文数据的结合,它只存在于当前位置(客户端或者服务端)
  • User 当前.NET安全(主体)对象,我们可以安全地访问这个值,而与运行时(ASP.NET,WPF等)无关
  • AuthenticationType 来自于CslaAuthentication配置值的身份验证设置
  • DataPortalProxy 数据门户代理提供程序设置,来自于CslaDataPortalProxy配置值
  • DataPortalUrl 针对远程代理的数据门户URL值,来自于CslaDataPortalUrl配置值
  • IsInRoleProvider IsInRole提供程序类别名,来自于CslaIsInRoleProvider配置值
  • AutoCloneOnUpdate 这个设置表示对象是否在更新之前通过本地数据门户被复制,这个设置来自于CslaAutoCloneOnUpdate配置值
  • SerializationFormatter 序列化提供程序类型名,来自于CslaSerializationFormatter配置值
  • PropertyChangedMode 这个设置指定PropertyChanged事件应该如何被引发(对于Windows窗体或WPF是不同的),该设置来自于CslaPropertyChangedMode配置值
  • ExecutionLocation 这个值指定代码当前是否正在数据门户的客户端或服务端执行

指南

项目

书籍

图集

链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱