.NET 的标准业务逻辑数据类
Posted
技术标签:
【中文标题】.NET 的标准业务逻辑数据类【英文标题】:Standard business logic data classes for .NET 【发布时间】:2011-01-10 06:35:21 【问题描述】:有许多“原始”样板类型的数据类可能出现在许多不同的程序中。
但是,我从未见过一个类或库集认识到需要将所有这些东西与它们所需的通用逻辑(例如验证)结合起来。
示例类([] 括号对应于假设库中的类):
地址(街道、邮政编码、城市、州/地区/省、国家/地区) 人员(姓名、联系信息([电话]/[电子邮件]/等)、[地址]、SSN/TIN、[信用卡]) 电话(号码、国家代码等) 信用卡(类型、号码、到期时间、ccv)**
而且我相信有人可以想出很多其他的。
我已经开发了自己的电话/地址/个人/信用卡类,我在项目中使用,完成了验证和逻辑。
但是,我只能验证基于美国的信息。理想情况下,我的电话号码类将继承自基础 Phone 类,因为我实际上将号码分为 NPA、NXX 和 Station,并完全使用 NANP 标准对其进行验证。
网络中是否有一组库,其中包含经过适当验证的此类样板数据类的全面集合?
它是否包括对全球数据集或仅美国数据的验证?
对于 CreditCard 的**,它是否能够满足 PCI 数据安全标准?
我知道很多人可能已经用许多不同的语言编写了很多次这些类,但是是否有任何 .NET 库可以满足这些需求?
我更喜欢开源/免费,但我会考虑付费的 3rd 方库集。
【问题讨论】:
+1 表示问题。每次我必须编写一个新的Address
课程时,我发现自己在想,为什么?你会认为这种事情甚至会有一个“行业标准”。
没错,如果我有时间,我会为此目的创建一个库集。我只是不能保证我能够满足范围。
【参考方案1】:
在开始一个项目时,为各种对象的典型实现提供一个模式可能会很方便,但是实际的实现会是特定的,需要特定的行为和验证要求。这可能就是 ORM 或业务对象框架生成工具需要输入模式来创建类的原因。
如果存在一个标准的类框架,即开源,您会发现此架构会非常庞大且不断增长,这会使应用程序难以保持更新。该类的每个类和属性都需要大量文档以及它们的使用方式等,但这可能是主观的。一个可以选择他们想要什么以及应该如何验证的模式,用于 ORM/业务对象生成框架可能是个好主意,并且确信它们当前不存在。
您可以查看具有类似功能的特定现有开源项目并从中获得灵感吗?
【讨论】:
【参考方案2】:CSLA.NET 可能会提供接近 yoju 正在寻找的东西。它可能比您所要求的更进一步,但它具有任何框架的一些最全面的文档(即从 APress 出版的书籍)。它也是免费的。
特别是 CSLA.ValidationRules 命名空间以及 CommonRules 和 CustomRules 类专注于数据验证。
【讨论】:
哇,绝对是构建业务逻辑的绝佳框架。我可以看到它以一种非常有趣的方式实现了我在过去从事的几个项目中看到的许多功能。但是,我更倾向于使用具有广泛应用范围的“常用类”库/框架,就像我提到的示例一样。以上是关于.NET 的标准业务逻辑数据类的主要内容,如果未能解决你的问题,请参考以下文章
如何在.net core mvc中使用ModelState包装类分离业务逻辑层