.net - 有人有 CSLA 的实际经验吗?
我从 vb5 开始就一直在使用 CSLA,当时它更多的是模式集合而不是框架。随着 .NET 的引入,CSLA 变成了一个成熟的框架,伴随着巨大的学习曲线。但是,CSLA 解决了所有业务开发人员在某些时候倾向于自己编写的许多事情(取决于项目范围):验证逻辑、身份验证逻辑、撤消功能、脏逻辑等。所有这些你都可以从装在一个不错的框架中。
正如其他人所说,作为一个框架,它迫使开发人员以类似的方式编写业务逻辑。它还迫使您为业务逻辑提供一定程度的抽象,这样不使用诸如 MVC、MVP、MVVM 之类的 UI 框架就变得不那么重要了。
事实上,我认为今天(在微软世界)如此大肆宣传这些 UI 模式的原因是人们长期以来一直在做一些令人难以置信的错误(即,在你的 UI 中使用 DataGrids,洒你的业务逻辑无处不在。tisk tisk)。从一开始就正确设计中间层(业务逻辑),您可以在任何 UI 中重用中间层。Win Form, ASP.NET/MVC, WCF 服务, WPF, Silverlight**, Windows 服务, ....
但除此之外,对我来说巨大的回报是它内置的扩展能力。CSLA 使用可通过您的配置文件配置的代理模式。这允许您的业务对象在服务器之间进行远程调用,而无需编写任何代码。向您的系统添加更多用户?没问题,将您的 CSLA 业务对象部署到新的应用程序服务器,更改配置文件条目,然后 BAM!满足即时可扩展性需求。
将此与使用 DTO 进行比较,将您的业务逻辑存储在客户端(无论可能是什么客户端),并且必须将您自己的每个 CRUD 方法编写为服务方法。哎呀!!!不是说这是一个坏方法,但我不想这样做。不是当有一个框架可以为我做这件事时。
我将重申其他人所说的 CSLA 不是 ORM。CSLA 强制您为业务对象提供数据。他们不在乎您从哪里获取数据。您可以使用 ORM 为您的业务对象提供数据。您还可以使用原始 ADO.NET、其他服务(RESTFUl、SOAP)、excel 电子表格,我可以继续使用。
至于您对 TDD 的支持,我也从未尝试将这种方法与 CSLA 一起使用。我采用了使用类和序列图对中间层(ala 业务对象)建模的方法,通常允许用例、屏幕和/或流程设计来决定。也许有点老派,但 UML 在我的设计和开发工作中一直为我提供了很好的服务。我已经成功地设计和开发了今天仍在使用的非常大且可扩展的应用程序。在 WCF RIA 成熟之前,我将继续使用 CSLA。
** 有一些解决方法
OFFICE2010各版本区别《王者荣耀》澜多少钱 新英雄澜点劵及金币价格说明