问题标签 [csla]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
4376 浏览

.net - 你如何测试你的业务对象?

我想为我的软件开发项目使用 Visual Studio 中的 Microsoft 测试框架实现自动化测试。我创建了一些测试,总而言之,它非常易于使用。

测试业务对象有哪些更好的实践,更具体地说,是读取和写入数据库的那些。

最好从开发数据库中设置一个单独的测试数据库,从中测试用户界面,然后针对该数据库进行测试?基本上只是用垃圾数据填充它。

在自己的心态之后接受某种类型的清理是否更好,这意味着,如果我正在测试 AddUser 方法,我是否要添加用户,检查我的测试,然后删除用户?

您是否在单个测试方法中测试每个 CRUD 方法?

最后,如何验证字符串大小是否正确、开始日期小于结束日期、CustomerId 是正确的 Customer 等各个业务规则。

我意识到这是一个相当广泛的问题......只是寻找一些方向......采取婴儿步骤。

更多信息...

很多很好的答案!我不确定我是否能够建立一个模拟数据库。我使用 CSLA 作为我的对象的框架。需要进行一些认真的重构才能使用模拟对象进行测试。我要调查一下。虽然,在某些时候,我确实想测试数据库交互......当使用模拟数据库时,您将在哪里/何时实际测试数据库通信?

另一个问题......是否最好让每种测试方法不依赖于其他测试?

0 投票
4 回答
4671 浏览

c# - 使用 CSLA 在 C# .NET 中禁用文本框

我试图在我的一个 UserControls 中禁用一些用于显示数据(而不是编辑)的文本框。但是,由于某种原因,我无法正确禁用文本框。

我已将“在 readWriteAuthorization 上应用授权”设置为 true,并且文本框已数据绑定到正确的属性。

我还在CanWriteProperty我的对象中添加了以下几行:

我无法弄清楚我在这里做错了什么。我最近在其他 UserControls 中实现了几乎相同的东西,没有任何问题......

我在 C# .NET (Visual Studio 2008) 中使用 Windows 窗体

编辑:代码片段和属性取自我的客户对象。日期代表客户账户的开立、最后更改和关闭。它们根本不应该被编辑,实际上在旧的解决方案中它们由 textLabels 表示,但是我们现在想要使用文本框并使属性的 CanWriteProperty 为 false。

我意识到这些信息可能有点稀缺,但我正在寻找我在这个过程中可能忘记的东西。

编辑:我们也在使用CSLA,我想(我对这件事很陌生)这与我们为什么要这样做有关。

编辑(解决方案):CurrentItemChanged正如您在下面的回答中看到的那样,问题是我没有像我应该的那样设置事件。

0 投票
1 回答
2621 浏览

c# - 动态 LINQ 和 CSLA BusinessListBase

我遇到了一个让我快要死的问题。我的一个 CSLA 对象(假设是 Parent)有很多孩子(我们称他们为 Children - Child 的列表)。Parent 是可编辑的根 (BusinessBase),Child 是可编辑的子列表 (BusinessListBase),Child 是可编辑的子。

我想做的是这样做: Parent x = Parent.GetParent(id); IQueryable y = Parent.MyChildren.OrderBy("Age DESC");

理论上,y 应该填充按年龄降序排列的孩子集合(假设“年龄”是 Child 对象的属性)。

但是,我得到的是 y.Count() = 0。虽然如果我执行 Parent.MyChildren.Count() 则没有 0。这是动态 LINQ 或 CSLA 中的错误吗?这(错误)不会发生在我的只读列表中。

帮助!乔

0 投票
1 回答
1403 浏览

csla - CSLA 3.6 - 在配置文件中找不到数据库名称

我正在使用 CSLA 3.6

我不断收到错误:

DataPortal.Fetch 失败(在配置文件 (AdventureWorksLT) 中找不到数据库名称)

我的 Dataportal_Fetch 代码如下所示:

我的 Database.vb 文件如下所示:

我的 App.Config 文件包含以下内容(由于stackoverflow,用 ( 和 ) 替换 < 和 > 字符:

我错过了什么?

谢谢!

0 投票
2 回答
805 浏览

mono - 有人有在 Mono 下使用 CSLA 的经验吗?

我非常尊重 Mono 和 CSLA。我想在非 Microsoft 操作系统上使用 CSLA。我接受 Mono 总是落后于 Microsoft 两步的事实,但 Mono 支持足够多的 .Net 框架来促进各种有趣的应用程序。我也意识到 Mono 不支持许多 3.0 .Net 附加功能,例如 WPF(尽管它必须在很小程度上才能使 Moonlight 起作用)。对于我目前的需求,WPF 支持并不重要,WCF 也不重要。我衷心感谢 Rocky 在 CSLA 中实施并继续维护的所有繁琐的数据绑定支持。对于许多应用程序,这是我看到 CSLA 增加实质性价值的地方。我意识到 CSLA 带来了许多其他功能,但对我来说数据绑定非常重要。我怀疑 Mono 下 CSLA 的主要兼容性问题集中在 Mono 没有实现所有 .Net 数据绑定细微差别(尤其是 DataGrids)和序列化格式差异。我对如何解决这些感知到的问题有一些想法,但我很想听听任何已经走在这条路上的人的意见。

编辑:对于它的价值,我确实在很久以前在 CSLA 论坛上发布了这个确切的问题。CSLA 社区和 Rocky 可以快速回答问题。然而,这个问题从未得到任何答案。我相信原因很简单:Rocky 长期以来一直只专注于 MS 技术。这一点我不怪他。Rocky 对 CSLA 进行了大量投资。他是仁慈的独裁者。我很感谢他让 CSLA 开源。我怀疑他有足够的问题来跟上微软世界每隔几年发生的主要 API 流失。Linux/Mac OS 可能不在他的关注范围内。它可能不应该是......目前无论如何。大多数 Linux 或 Mac OS 人员甚至从未听说过 CSLA。

您可以随时 fork 源、剥离、增强等以使其与 Mono 一起使用。如果您这样做,您将不会有 CSLA 社区在您身后(至少目前如此)。出于这个原因,我放弃了这种努力。

更新: Rocky 现在似乎对 Mono 很感兴趣。查看CSLA 路线图

0 投票
4 回答
2793 浏览

asp.net-mvc - Asp.Net MVC + CSLA + DDD 可能吗

前几天我被要求审查一个基于 ASP.NET MVC + CSLA + DDD(域驱动设计)的系统。该系统的第一个版本基于 ASP.NET MVC + CSLA。第二个版本基于那个加上添加的 DDD。原因是因为......好吧,我不知道是什么。当我查看两种不同架构的图表时,很明显第二个版本非常复杂。CSLA 对象基本上使用域对象。当你看到这样的东西时,你就知道它已经闻起来了,但是如果没有 A) 对所有主题的极端了解或 B) 长时间使用它,很难证明为什么有人不应该这样做。对于这个主题,我没有这些,但我知道如果我从头开始构建它,我就不会这样做,也不会

那么,亲爱的读者,在这种情况下你会怎么做呢?我的想法是,如果你想使用 CSLA、MVC 和 DDD,那么你就站出来选择一个或另一个(CSLA 或 DDD)。如果你没有厨房里的厨师太多。

如果您对此事有意见,请提供一些见解。

0 投票
4 回答
1369 浏览

.net - CSLA.Net V3.6/NHibernate V2.10;如何克服对虚拟属性的需求

使用 CSLA.net,所有域类都需要从包含非虚拟属性的 Businessbase 继承。

在使用 NHibernate 时,我们需要实现延迟加载的虚拟属性。

一起使用 CSLA/NHibernate 的一些选项似乎是:

  • 在 NHibernate 中关闭延迟加载并在域类中实现延迟加载代码(尽管这看起来不太灵活)
  • 在 NHibernate 中保留延迟加载,但使用 DTO 类映射到数据库,然后将数据传输到 CSLA 域类

可能还有哪些其他选择?任何指向正确方向的指针都将不胜感激。

我想上述问题确实适用于将 NHibernate 与任何框架一起使用。

0 投票
2 回答
483 浏览

csla - 谁能指出我在网络上实时运行的 CSLA 应用程序?

谁能指出我在网络上实时运行的 CSLA.Net 应用程序?

0 投票
1 回答
855 浏览

silverlight - 如何在 Silverlight/CSLA 中创建延迟加载和缓存的集合

我正在为使用 CSLA 编写的现有桌面应用程序创建 Silverlight 前端。我遇到的一件事是转换如下类:

代码中充满了“SomeCollection.GetSomeCollection()” 这在 silverlight 方面不起作用,因为所有 DataPortal 访问都是异步的,因此您必须从以下内容开始:

当数据准备好时,回调处理程序被调用。我当然可以缓存这个结果,但与此同时,任何 SomeCollection.GetSomeCollection() 调用都会失败。

我已经尝试阻塞直到异步调用完成,但到目前为止我还没有运气。这不是一个很好的解决方案,但我不知道如果在加载数据之前调用 SomeCollection.GetSomeCollection() 还能做什么。我能想到的唯一其他选择是允许 SomeCollection.GetSomeCollection() 返回 null,然后以某种方式将所有调用者转换为处理 null 返回值

有什么想法吗?

(我是 Silverlight 和 Csla 的超级新手,所以我可能会以完全错误的方式解决这个问题)

0 投票
3 回答
3728 浏览

c# - 是否有任何有价值的 CSLA 替代品?

我的公司有兴趣将大型商业应用程序移植到 .NET。我们计划开发桌面版本和 Silverlight 版本。我主要研究了 CSLA 框架(得到了 rocky 的书,已经读到一半了),发现它有点过度设计,数据层方面似乎也没有那么完美。

是否有任何其他框架声称可以做 CSLA 正​​在做的事情?我不是在谈论 ORM 工具(例如 L2S、EF、NHibernate。)我对支持业务规则的框架、简单的 n 层架构、对象是域驱动而不是数据库驱动、业务对象的安全性等感兴趣...

我知道我可以找到可以完成一些所需工作的小型框架(想到企业应用程序块),但我正在寻找一个包含所有内容的框架。