English 中文(简体)
商业物品收藏代表的建筑选择
原标题:Architecture choice about representation of collections in Business Objects

我在我的架构中作出了某些选择,我要求社区进行审查和评论。 我正在小节中打破这一员额,以方便了解情况,然后提出/建议。 我对这个员额很长感到担忧,但需要解释情况。

What am I building

在有申请用户、安全作用、企业经营/行动权利、基于诸如股票接收、股票转让、销售令、销售发票、销售收益、股票审计等若干商业单元和若干报告的情况下,采用典型的商业应用。 申请是WinForm的申请,因为申请内容丰富,而且响应了许多要求,并且必须采用互不关联的方式(有当地服务器),大部分时间。

What have I done

我已经建立了一个框架——对我申请的重复要求毫无帮助,而只是一套图书馆,例如认证、基于作用的授权、数据获取、验证、例外处理、伐木、改变状况跟踪、介绍模式合规以及各组成部分之间合理松散的政变。 无,我没有从rat头书写任何东西,你可以说,我把许多东西合并在一起,例如来自CSLA、Martin Fowler用于介绍模式的某些概念、来自企业图书馆的区块、团结等,以建造一套图书馆,帮助我的开发商迅速生产,而不必研究谷歌对许多技术要求。 我试图使框架保持通用性,以便能够用于典型的商业申请,并尝试采用一些最佳做法,支持将在伙伴关系中使用相同的商业物体。 NET MVC环境。

我目前的结构很好地为我的目标服务,并且在没有很大麻烦的情况下,建立了几个单元(WinForm)。 这一架构也很好地在伙伴关系上建立了一些可使用的原型。 NET MVC有相同的一套商业目标,没有改变单一编码线。

My Dilemma

我使用了“习俗商业物体”,因为这使我更清楚地了解了本组织在我的解决办法范围内的问题范围,并帮助我把我的整个解决办法说成是收集带有数据和行为的物体,而不是有一套关系数据(数据),并单独实施行为(业务逻辑、验证)。 拥有2.0个约束性习惯商业物体用于国际不动产的丰富数据约束性支持是一种缩略语。

现在,在打造我的商业目标时,我仍然处在一个两难境地,那就是在商业目标中代表收集资料。 目前,我正在使用数据表来代表收集工作,而我已经看到了执行习俗收集的许多建议。 例如,在我的愿景中,典型的销售发票目标将包含作为收集的销售发票项目。 从现在的角度来看,我可以认为,每个销售销售发票项目都应有自己的行为及其数据(项目方式、名称、Qty、价格等),但通常在销售发票中管理销售发票项目,由销售发票反对本身处理,例如从收集中添加/删除项目。 此外,我们还可以将销售销售发票项目的商业逻辑/规则,如“Qty不应大于所订购的qty”、“Price应当比销售令的价格高出10%”,等等在销售发票反对中。

有了这种愿景,我觉得大多数商业目标儿童收集工作可以由母公司自己管理,包括增加/取消收集项目的收集以及执行业务逻辑,因此,收集项目只持有数据。

此外,典型的藏书在Grades的ID中,支持数据制的能力对于任何收集都非常重要。 在这种情况下,实施习俗收集也意味着,我还必须为收集工作提供强有力的数据协调支持,这当然很费时。

现在,考虑到育儿行为在母公司实施,而且需要收集儿童资料,我选择数据表代表任何儿童在我的商业目标中进行收集。 在出售发票的上述例子中,我将有发票号码、日期、客户等作为销售发票的属性,但作为数据单的发票。 当然,当我说数据Set时,这并不是一个 van数据集,而是支持商业规则验证的延伸数据Set,也是我框架的同样作用的安全模式,即允许/拒绝任何业务自动用于数据Set的浏览/编码。

这种做法使我的业务目标更容易地进行收集管理,而我的开发商能够迅速提供模块。

Questions

  1. 您是否认为这种做法是合理的?

  2. 你们是否看到这种做法有任何缺点?

  3. 我最近想把类型数据表作为儿童收集工具,以便更容易地在法典中代表,这样我就能够撰写当前的广告。 InvoiceItems (for the DataTable) and/61/7Item.ProductCode or original 项目Qty ,而不是“ProductCode”]。 ToString()或(int)drow[“Qty”)等。 这一选择是否有 de?

感谢您,如果您能回答的话。

问题回答

类型数据集往往在缓慢的方面是一线。

如果您重新使用WinForms,我建议的是System.Component Model.BledList<T>。 这支持更改通知。 WPF的仪器当然应当使用System.Collections.ObjectModel.ObservableCollection<T>。 扩大<代码>Collection<T>,并采用虚拟方法,供您查阅。

您可能需要在收集的物品上实施的另一个接口是< 编码> 指定财产名称/编码>。 (只有你不取代整个行,作为更新的一部分。)





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签