IRONSOFTWAREHOME

应用逻辑规划——深入了解Tim Corey的方法

C#应用程序从开始到完成 第5课 - 逻辑规划

Tim Corey

17m 14s

在他的 C# 应用程序从开始到完成系列中,Tim Corey 解释说,构建应用程序不仅仅是编写代码。 真正的挑战在于规划应用程序的逻辑——应用程序的不同部分将如何交互、沟通和在屏幕以及组件间移动数据。 在第5课 - 逻辑规划中,Tim 专注于逻辑规划,强调这是您决定应用程序整体行为的阶段。

他提醒我们,到目前为止,课程已经涵盖了范围界定需求、构建整体结构、设计数据后端和绘制前端。 现在,Tim 说,下一步是通过逻辑连接所有内容。

Tim 澄清说,这节课还不会进入代码。 相反,他希望覆盖全球的想法、整体的大局,以及应用程序背后的整体逻辑。 他鼓励在纸上写下笔记并画出箭头,绘制出每个表单和按钮应如何表现,这类似于在专业开发环境中绘制业务流程的方式。 这种规划在进入编码之前帮助应用程序逻辑变得清晰。

为什么逻辑规划很重要

Tim 首先说明,连接表单是应用程序逻辑的主要部分。 一旦表单正确连接,剩下的任务通常较小。 他解释说,逻辑规划过程帮助您理解应用程序必须支持的功能、流程和控件。

Tim 说,如果他在纸上进行这项工作,他会写下每个组件应该做什么并在它们之间画箭头。 尽管课程是在屏幕上进行的,他计划走过每个表单并解释每个部分背后的逻辑。

创建锦标赛表单逻辑

Tim 从创建锦标赛表单开始,这是简单的表单之一。 他解释了每个按钮背后的逻辑以及它们应如何协同工作。

创建新团队按钮

Tim 解释说,创建新团队按钮会打开创建团队表单。 在团队创建后,新表单关闭,并将创建的团队数据返回到创建锦标赛表单。 团队应出现在团队/球员列表框中,这是通过创建一个可以从创建团队表单调用的方法来实现的。

Tim还介绍了使用接口进行此类通信的概念,解释了接口允许表单在不直接相互了解的情况下进行交互。 这是一个经典的示例,展示了业务逻辑和软件架构如何协同工作,以维持组件间的质量、完整性和清晰的交互。

添加团队按钮

Tim解释说,添加团队按钮很简单。 它检查哪个项目在下拉列表中被选中,将该团队添加到锦标赛列表中,从下拉列表中移除它,然后刷新两个列表。 此逻辑确保用户的选择正确反映在UI和基础数据中。

创建奖品按钮

Tim解释说,创建奖品按钮的行为类似于创建新团队按钮。 它打开创建奖品表单,等待奖品被创建,然后将该奖品添加到奖品列表框中。 逻辑是相同的,但类和数据类型是不同的。

删除所选按钮

Tim解释说,删除按钮将移除列表框中的所选项目。 在团队的情况下,逻辑还将删除的团队返回到下拉列表中,确保用户以后可以再次添加。 这种类型的实时更新提高了用户体验并帮助在UI中保持正确数据。

创建锦标赛按钮

Tim解释说,这是一个大按钮,因为它触发了最多的逻辑。 点击时,它必须验证所有信息:

  • 锦标赛名称不能为空

  • 参赛费用不能为负数

  • 至少需要有两个团队存在

验证后,Tim解释了下一个主要步骤:创建赛程。 锦标赛赛程逻辑确定锦标赛中应有多少团队以及需要多少轮空。 Tim引用了他在伴随文件中书写的计算公式。 例如,如果锦标赛有10个团队,锦标赛必须从16个团队开始,这意味着第一轮需要6个轮空。

Tim还指出,逻辑需要随机化第一轮的顺序。 一旦一切完成,表单就完成,应用程序可以继续前进。

创建团队表单逻辑

Tim继续讲解创建团队表单,并解释其按钮背后的逻辑。

添加成员按钮

Tim说这个按钮将现有成员从下拉列表中添加到团队列表框中。 然后从下拉列表中移除该成员并刷新两个列表。 Tim强调这一逻辑与添加团队按钮类似。

创建成员按钮

Tim解释说,创建成员按钮接受四个输入字段,创建一个新的团队成员,将他们添加到列表框中,并清除这些字段。 这是应用程序逻辑中常见任务的典型示例,其中用户输入必须被处理并反映在UI中。

创建团队按钮

Tim说创建团队按钮必须验证团队,然后将创建的团队发送回调用者。 他指出表单缺少删除玩家按钮,应该添加以匹配其他表单并提供一致的用户体验。 Tim解释说,一致的UI行为对用户的熟悉和舒适感很重要。

创建奖品表单逻辑

Tim描述创建奖品表单较为简单。 它有四个文本框和一个按钮。

当点击创建奖品按钮时,它会:

  • 验证奖品信息

  • 将数据返回给调用表单

  • 关闭表单

Tim解释说,此表单实质上与创建团队相同,但组件更少。

锦标赛仪表盘逻辑

Tim解释说锦标赛仪表盘表单很简单,但却是必要的。

它列出现有的锦标赛。 加载锦标赛按钮打开所选锦标赛的锦标赛查看表,创建锦标赛按钮打开创建锦标赛表单。

Tim指出,当锦标赛创建时,应该将其添加到下拉列表中,使用户能够立即加载它。 这段逻辑是应用程序中数据访问和实时更新的基础示例。

锦标赛查看器逻辑

Tim描述了锦标赛查看器是最复杂的表单,因为它包含最多的逻辑。

锦标赛名称

Tim解释说,当表单加载时,锦标赛名称会更新。 表单接收一个锦标赛对象并显示其名称。

回合下拉列表

Tim解释说,这个下拉列表是计算得出的,而不是从数据库加载的。 它查看回合列表并确定有多少回合存在。如果锦标赛有四个回合,下拉列表必须显示第1回合到第4回合。

仅显示未完成的复选框

Tim说,如果复选框被勾选(默认),比赛排列列表框将过滤只显示未比赛的游戏。 如果未勾选,则显示所有比赛。

比赛结果部分

Tim解释说,选择比赛会更新右侧部分的团队名称和比分。 比分按钮允许用户更新比分并结束比赛。

触发下一个回合

Tim解释说,当一轮中最后一个未比赛的比赛被计分时,下一轮应该开始。 如果是最终冠军赛,锦标赛结束并授予奖品。 Tim还提到,系统在安排比赛和结果可用时会发送电子邮件给参与者。

比分编辑规则

Tim询问比分在设置后是否可以更新。 他得出的结论是可以的,但仅限于当前回合仍在进行中。如果在下一回合开始后更改比分,可能会导致重大问题,因为团队可能会比赛错误的对手。

因此,Tim表示比分按钮需要逻辑以确保比分只能在当前回合中更改。

接下来是什么?

Tim承认仍需计划一些逻辑,比如:

  • 数据访问和存储

  • 处理不同的数据源

  • 电子邮件逻辑

  • 触发比赛

他说这些在代码中更好地计划,因此团队将在开始编码时处理它们。 这是软件开发中业务完整性的一个例子——不是过度计划,而是在实施过程中构建和调整。

结论:编码前计划

Tim在视频中总结说道,规划阶段已经完成:

  • 数据设计已经完成

  • 已绘制UI布局

  • 各个表单背后的逻辑已规划

下一步是将其转化为代码。 在下一课中,Tim将创建类库并开始将数据设计实施到实际应用中。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户