欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
CSLA.NET
来自开放百科 - 灰狐
(版本间的差异)
小 (→指南) |
小 (→书籍) |
||
第97行: | 第97行: | ||
==书籍== | ==书籍== | ||
− | *[http://product.china-pub.com/196389 《C# 企业应用开发艺术:CSLA.NET 框架开发实战》] | + | *[http://product.china-pub.com/196389 《C# 企业应用开发艺术:CSLA.NET 框架开发实战》] (ps: 本条目的一些内容取自本书) |
==图集== | ==图集== |
2016年8月26日 (五) 16:07的版本
CSLA .NET 是一个开源(MIT)的企业应用开发框架,CSLA 是 Component-based, Scalable, Logical Architecture 的缩写。
CSLA .NET是一个.NET软件开发框架,可以帮助开发者为Windows、Web、面向服务和工作流等应用构建强大和可维护的业务逻辑层。
目录 |
功能
- 完全支持数据绑定(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 这个值指定代码当前是否正在数据门户的客户端或服务端执行
指南
项目
书籍
- 《C# 企业应用开发艺术:CSLA.NET 框架开发实战》 (ps: 本条目的一些内容取自本书)
图集
链接
分享您的观点