欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/Agda, C++/Erlang/Lisp
CSLA.NET
来自开放百科 - 灰狐
(版本间的差异)
小 (→链接) |
小 (→链接) |
||
(未显示1个用户的13个中间版本) | |||
第1行: | 第1行: | ||
− | CSLA .NET 是一个开源(MIT)的企业应用开发框架,CSLA 是 Component-based, Scalable, Logical Architecture 的缩写。 | + | CSLA.NET 是一个开源(MIT)的企业应用开发框架,CSLA 是 Component-based, Scalable, Logical Architecture 的缩写。 |
− | CSLA .NET是一个[[.NET]]软件开发框架,可以帮助开发者为Windows、Web、面向服务和工作流等应用构建强大和可维护的业务逻辑层。 | + | CSLA.NET是一个[[.NET]]软件开发框架,可以帮助开发者为Windows、Web、面向服务和工作流等应用构建强大和可维护的业务逻辑层。 |
[[image:csla.net.png|right]] | [[image:csla.net.png|right]] | ||
+ | |||
+ | ==简介== | ||
+ | CSLA.NET 是一款开源的(MIT)企业开发框架,用于构建你的商业逻辑和应用。 | ||
+ | |||
+ | ==功能== | ||
+ | *完全支持数据绑定(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 这个值指定代码当前是否正在数据门户的客户端或服务端执行 | ||
+ | |||
==指南== | ==指南== | ||
+ | |||
+ | ==项目== | ||
+ | |||
+ | ==用户== | ||
+ | [https://github.com/MarimerLLC/csla/blob/master/docs/Testimonials-and-Usage.md CSLA .NET is used] | ||
+ | * Aaron Rents (running in 1200+ stores in the US and Canada) | ||
==书籍== | ==书籍== | ||
− | *[http://product.china-pub.com/196389 《C# 企业应用开发艺术:CSLA.NET 框架开发实战》] | + | *[http://product.china-pub.com/196389 《C# 企业应用开发艺术:CSLA.NET 框架开发实战》] (ps: 本条目的一些内容取自本书) |
==图集== | ==图集== | ||
第16行: | 第114行: | ||
*[http://www.cslanet.com/ CSLA .NET官网] | *[http://www.cslanet.com/ CSLA .NET官网] | ||
*[https://github.com/MarimerLLC/csla CSLA .NET @ GitHub] | *[https://github.com/MarimerLLC/csla CSLA .NET @ GitHub] | ||
+ | *[http://www.lhotka.net/weblog/ Rockford Lhotka Blog] | ||
+ | *[http://www.lhotka.net/weblog/ASimpleFlowForUsingGitAndPullRequests.aspx A simple flow for using git and pull requests] | ||
[[category:.NET]] | [[category:.NET]] |
2019年8月31日 (六) 13:01的最后版本
CSLA.NET 是一个开源(MIT)的企业应用开发框架,CSLA 是 Component-based, Scalable, Logical Architecture 的缩写。
CSLA.NET是一个.NET软件开发框架,可以帮助开发者为Windows、Web、面向服务和工作流等应用构建强大和可维护的业务逻辑层。
目录 |
[编辑] 简介
CSLA.NET 是一款开源的(MIT)企业开发框架,用于构建你的商业逻辑和应用。
[编辑] 功能
- 完全支持数据绑定(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 这个值指定代码当前是否正在数据门户的客户端或服务端执行
[编辑] 指南
[编辑] 项目
[编辑] 用户
- Aaron Rents (running in 1200+ stores in the US and Canada)
[编辑] 书籍
- 《C# 企业应用开发艺术:CSLA.NET 框架开发实战》 (ps: 本条目的一些内容取自本书)
[编辑] 图集
[编辑] 链接
分享您的观点