问题标签 [business-objects]
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.
javascript - 将业务对象序列化为 JSON
我正在尝试将我的业务对象序列化为 JSON 以供 Javascript 应用程序使用。问题是我试图保持我的业务对象“纯粹”,因为他们不知道数据访问或持久性。在我看来,用 toJSON() 函数“稀释”我的对象会违背这个目标。另一方面,使用外部对象来序列化我的业务对象是行不通的,因为我将所有实例变量都保密。
我是否以完全错误的方式接近这个?
data-access-layer - 从业务对象中抽象出数据访问层
将数据访问代码与业务对象分离并不是什么新鲜事,但我一直在寻找实现某些目标的“最佳方式”。
我有以下课程:
橙色 - 这是我的业务对象。
OrangeList - 这是一个橘子列表。
用户将通过调用 OrangeList.Fetch(someCriteria) 从数据存储中获取 Orange 对象。因此,OrangeList 必须具有对数据访问层的引用 - 所以它具有属性:IDataProvider MyDataProvider。
这对我有用,但问题是我们不能单独获取一个橙色 - 我们总是必须通过 OrangeList。
Orange 和 OrangeList 中的任何一个或两者都必须来自一些持有 DataProvider 的公共对象。
这是一个问题,还是我的方法一开始就离题了?
任何提示/指针表示赞赏,谢谢。
编辑:根据下面的讨论,我检查了存储库模式。
但是对于我的项目,我认为将存储库与 DAL 进一步分开是个好主意。
所以....存储库是我获取橘子和保存橘子的方式,但仍然不知道如何。我将它委托给 IDataProvider,它可能是图中列出的一些。
澄清一下 - Orange 不知道如何获取/更新自己,对吧?这是一个纯粹的业务对象——这就是重点吗?
替代文字 http://img22.imageshack.us/img22/2460/repositorya.jpg
如果你想知道,我的“LegacyDataProvider”是为了支持一个旧系统,它访问一个基于文件的数据库(FoxPro,eek)——但这让我可以把它包装起来,让它远离我的新代码。
在 .NET 程序集构造方面,为了防止循环引用,看起来我将拥有一个 Repository.DLL [OrangeRepo]、一个 DataProviderInterface.DLL [IDataProvider] 和一个 BusinessObjects.dll [Orange]。都好?
那我有没有关于存储库的想法?
business-objects - 用户对象对话框 - 不打开(业务对象)
在业务对象中,当我在 Universe 的查询面板中单击“用户对象”图标时,不会打开“用户对象”对话框,但是,我检查了其他 Universe,会打开用户对象对话框。
我不确定 Designer 中的 Universe 参数究竟是什么在 Business Objects 中启用了此功能。有人可以帮助我吗?
business-objects - 如何列出 webi 报告中使用的 BO XIR2 Universe 对象?
如何使用适用于 XIR2 的 Business Objects SDK 从 webi 报告中列出 Universe 对象?
没有sdk有没有自动化的方法?
使用 SDK,我已经能够遍历 webi 报表和 Universe 集合,但看不到检索查询对象或报表查询的本机方式。
business-objects - 业务对象 - 无效数据提供者
我正在创建一个包含六个数据提供者的 BO 报告。由于某些原因,报表管理器中出现了一个幽灵数据提供者,它与另一个数据提供者同名,但其中没有对象。
我无法编辑/删除这个数据提供者(幽灵),因为它没有出现在数据管理器中。
任何建议,删除此数据提供者(幽灵)
.net - 如何将“GUI”层保留在“业务逻辑”层之外?
我目前有一个项目是“业务对象”项目,我们的目标是在 GUI 和业务对象之间有一个明确的分离。但是,我的项目引用了System.Windows.Forms,这对每个人来说都是一个很大的危险信号,即我的项目设计不佳。
我的问题是我正在使用名为“Active Query Builder”的第 3 方控件。它实际上是 GUI 中的“控件”,System.Windows.Forms.Control;但它永远不会显示在任何地方,添加到任何 Form 的 Controls 集合中。它提供了业务对象的大部分核心功能。
无论如何,如果没有对 System.Windows.Forms 的引用 - 我不能使用第 3 方控件并且 BO 被严重破坏了。但有人告诉我,我不能引用 System.Windows.Forms,因为这是不好的编码习惯。
我完全不知道该怎么做。
具有更多设计模式类型经验的人可以提供解决方案吗?
asp.net - ASP.NET 中的业务/域对象
只是试图收集有关通过 ASP.NET (2.0+) UI/Presentation 层操作业务/域对象的方法/无效方法的想法。特别是在 ASP.NET 代码直接与业务层对话的经典 ASP.NET LOB 应用程序情况下。我经常遇到这种类型的设计,想知道什么是理想的解决方案(即实现特定的模式),以及在没有实现“模式”的情况下不需要完全重写的最佳实用解决方案是什么。
这是一个示例场景。
作为特定业务/域对象的“编辑/新建”页面的单个 ASP.NET 页面,让我们以“人员”为例。我们想在此页面中编辑姓名和地址信息。当用户进行编辑或输入数据时,在某些情况下表单应该回发以刷新自身。例如,在编辑地址时,他们选择“国家”。之后,州/地区下拉菜单将启用并刷新所选国家/地区的相关信息。这本质上是业务逻辑(根据某些依赖字段限制可用选择),并且此逻辑由业务层处理(请记住,这只是一个示例,
理想情况下,此逻辑仅存储在业务/域对象中(即在 ASP.NET 代码中没有重复的逻辑)。为了实现这一点,我相信业务/域对象需要重新初始化,并根据每个回发的当前 UI 值设置它的状态。
例如:
我见过的其他选项是将业务对象存储在 SessionState 中,而不是在每次页面加载备份时从存储库(也称为数据库)加载它。
想法?
business-objects - 业务对象 - 用于将对象添加到查询面板的条件部分的快捷键
在业务对象中,是否有任何快捷键可以将对象添加到查询面板的条件部分?
.net - 基础商务舱:不好吗?
我想创建我的基础业务类,例如 EntityBase,以具有一些常见的行为,例如实现用于跟踪对象更改的接口(IsNew、IsDirty)和 INotifyPropertyChanges 接口。
但是很多人说拥有一个基础业务类并从中派生所有业务对象是个坏主意。通常他们说在实体类中有表示代码是不好的。但我认为这只是一个理论。实践中有什么不好?他们说:自己试试。通常没有更多的争论。
那你们怎么看?是好还是坏?如果不好,为什么?请尝试做一个实际的人,而不是理论的人。
c# - 使用 Reflection.Emit 和 xsd 文件从数据库表生成类会遇到什么陷阱?
我正在玩类生成(表的一个类 - 继承等。暂时不考虑......)。所以我从这里无耻地复制了 Reflection.Emit 代码。将其重新设计为在给定数据库中的每个表中生成,并在项目的 bin 文件夹中使用以下批处理调用创建文件: for /f "tokens=*" %%i in ('dir *.xsd /b') do " C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\xsd.exe" -c -l:c# -n:BusinessObjects %i
到现在为止还挺好。这个想法是每次新的数据库版本到来时重新生成类并将它们复制到“真实项目”中(我不需要任何运行时生成)并且也想享受 Intellisense。这种方法可能会出现什么陷阱、困难和问题,对那些描述松散的需求有什么更好的建议吗?!
这是创建程序集的控制台应用程序的生成代码: