使用验证块在 C# 中编写灵活业务验证的 16 个步骤






4.36/5 (68投票s)
使用验证块在 C# 中编写灵活业务验证的 16 个步骤
已更新,包含其他应用程序块的链接
目录
引言
验证是任何软件项目中最重要的部分之一。构建灵活的业务验证是每个人的梦想。与其从头开始编写框架来实现这些功能,不如使用 Microsoft 的验证块,这使得这项工作变得轻而易举。在本文中,我们将讨论验证应用程序块如何帮助我们使用验证应用程序块构建灵活的验证。使用验证块将我们的业务验证付诸实践,只需简单的十六个步骤即可完成。
其他应用程序块
客户端验证:- VAB 的一个缺点是它只进行服务器端验证。本文介绍了如何利用 VAB 进行客户端验证。客户端验证
动态验证:- 本文解释了如何根据场景构建动态验证。动态验证
策略应用程序块:- 本文介绍了如何使用策略应用程序块实现即插即用机制。策略应用程序块
日志记录应用程序块:- 本文介绍了使用日志记录应用程序块的 5 个基本步骤。
日志记录应用程序块
数据应用程序:- 本文介绍了实现数据应用程序块所需的四个步骤。
数据应用程序块
异常应用程序块:- 此应用程序讨论了我们如何使用异常应用程序块从项目中记录异常。异常应用程序块
Unity 应用程序块:- 此应用程序讨论了 DI 和 IOC 中的 Unity 应用程序块。
Unity 应用程序块
UIP 块:- 本文介绍了使用 Microsoft UIP 块为 Windows 和 Web 构建可重用的导航和工作流。UIP 块
问题所在
没有业务可以在没有验证的情况下运行。软件旨在使业务自动化,因此验证构成了任何软件的核心方面。正如以下图所示,.NET 中几乎 80% 的项目都实现了验证。
图:- 已实现的验证
上图显示了如何为简单的客户类实现业务验证。我们有两个属性:客户代码和客户姓名。这两个属性都是必填的。因此,我们创建了一个名为“ClsCustomer”的类,其中包含两个用于客户代码和客户姓名的 get/set 属性。如果在属性的 set 中发现客户代码为空,我们会引发错误。我们对客户名称使用了相同的方法。
现在,我们可以在 ASPX UI 中使用该类,如图“消耗的业务对象”所示。我们创建了对象,设置了属性,并在出现错误的情况下,使用 try catch 异常块捕获该错误并将其显示在标签中。
图:- 消耗的业务对象
这种实现可以在一定程度上说得过去,因为我们将业务验证放在了类中,并将 UI 与任何业务验证更改分离开来。
让我们列出上述方法相关的常见问题:-
耦合的验证:- 如果验证规则发生变化,我们需要重新编译整个类。由于实体和验证层在一个类中耦合,因此验证的更改会导致整个类的编译。因此,我们的第一个目标应该是将此验证逻辑与实体类解耦。当我们说实体类时,我们指的是“ClsCustomer”类。
图:- 耦合的验证
图:- 将验证与实体类解耦
无需编译:- 验证是易变的实体。它们会不时变化。如果我们可以在不编译的情况下更改验证约束,将有助于提高系统的可维护性。
一次性验证和结果:- 第二个问题是验证在每个属性的 set 中执行,并且错误会逐个显示。如果我们能一次性验证所有验证并一次性显示所有错误,那将是最好的。
所有这些都可以通过使用 Microsoft 验证应用程序块来实现。
解决方案:- 验证应用程序块
步骤 1:- 从此处下载 Enterprise library 4.0。
步骤 2:- 安装后,您应该会在程序 – Microsoft patterns and practices 中找到它。
在我们深入了解验证应用程序块的工作原理之前。我们将首先从根本上了解验证应用程序块如何将验证与实体类解耦。验证应用程序块位于实体类和验证之间。验证存储在配置文件中,例如 web.config 或 app.config,具体取决于它是 Web 应用程序还是 Windows 应用程序。因此,验证块从配置文件中读取规则并将其应用于实体类。我们可以使用 Microsoft Blocks 提供的企业配置屏幕来维护这些验证。
图:- 将验证与实体类解耦
现在我们已经了解了验证块的工作原理。我们将通过一个实际的例子来理解这个概念。
步骤 3:- 安装完块后,单击 Enterprise library configuration UI 在配置文件中定义验证
图:- 加载企业配置屏幕
步骤 4:- 单击打开并浏览到您的 web.config 文件,然后单击打开按钮。
图:- 打开 web.config 文件
步骤 5:- 打开 web.config 文件后,您应该会看到一个类似图“添加验证块”的树形结构。右键单击主树,将验证应用程序块添加到您的 web.config 文件中。
图:- 添加验证应用程序块
步骤 6:- 添加验证应用程序块后,您应该会看到一个验证应用程序块节点。右键单击节点,选择新建,然后单击类型菜单。
图:- 添加程序集类型
步骤 7:- 单击类型菜单后,您将看到一个如图“加载程序集”所示的对话框。
图:- 加载程序集
步骤 8:- 单击加载程序集并浏览到您想要应用验证的程序集 DLL。
图:- 浏览程序集
步骤 9:- 选择程序集中的类,如图所示的“选择类”。
图:- 选择类
步骤 10:- 加载程序集后,您应该会看到一个名为“MyRules”的新节点,如图“选择成员”所示。右键单击“MyRules”?新建并选择成员。
图:- 选择成员
步骤 11:- 单击选择成员菜单后,您将弹出如图“选择属性”所示的属性选择框。在客户类中,我们有两个属性要应用验证:客户姓名和客户代码。因此,我们将选择这两个属性并单击确定。
图:- 选择属性
步骤 12:- 选择属性后,您可以在 UI 中看到这两个属性。要应用验证,请右键单击,例如客户代码属性。您现在将看到可以在属性上应用的所有验证的列表。本教程不会详细介绍所有验证。如果您对此感兴趣,可以在http://msdn.microsoft.com/en-us/library/cc309336.aspx 上阅读更多内容。对于当前场景,我们将选择范围验证器。
图:- 选择范围验证器
步骤 13:- 选择范围验证器后,您将看到以下范围验证器的属性框。在此特定场景中,我们需要这两个属性,即客户代码和客户姓名都不能为空。因此,在下限中,我们将输入 1,表示至少需要一个字符。在下限类型中,我们选择了包含,这意味着下限检查是强制性的。在消息模板中,输入您希望在出现问题时显示的错误消息。
图:- 范围验证器属性
步骤 14:- 在默认规则中,选择您刚刚创建的规则。如果没有任何验证,验证将不会触发。
图:- 选择规则
完成后,只需保存所有内容,然后查看您的 web.config 文件,该文件现在已修改为带有验证标签。您将看到 XML 格式的客户姓名和客户代码的验证,都在 `
图:- 带有验证标签的 Web.config
步骤 15:- 好的,我们完成了将验证放入 web.config 文件的工作。现在是时候编写代码来读取配置文件并将其应用于我们的实体类了。因此,第一件事是引用我们程序集引用中的验证应用程序块,并在我们的 clsCustomer 类中包含命名空间。
图:- 引用验证应用程序块
图:- 导入验证命名空间
步骤 16:- 添加完命名空间后,就可以触发验证了。以下代码段显示了验证应用程序块如何使用 web.config 文件触发验证。第一步是创建客户对象并设置属性。第二步,我们指示验证静态类来验证对象。验证静态类返回验证结果。这些验证结果就是验证失败时的错误。在最后一步,我们循环遍历验证结果以显示错误。
图:- 验证代码
好的,现在我们完成了,是时候看看实际效果了。您可以在 UI 中看到,我们只设置了空的属性,它就向我显示了集合中的两个业务验证错误。
图:- 正在进行的验证
验证的另一个问题是它只进行服务器端验证。您可以阅读我的教程,了解如何使用 ApplicationBlock.aspx 中的验证引擎生成客户端验证器。
进一步阅读,请观看下面的面试准备视频和分步视频系列。