gpt4 book ai didi

c# - 我应该如何构建数据驱动的 Win 表单解决方案?

转载 作者:太空狗 更新时间:2023-10-29 21:30:52 24 4
gpt4 key购买 nike

我正在编写一个 Windows 窗体应用程序,该应用程序正在发展并变得相当广泛。

最初我认为最好的方法是分别为图形组件和一个业务逻辑项目以及一个数据访问项目。

随着应用程序变得越来越大,我开始认为更加模块化的方法会更简洁……例如包含每个“类别”数据的用户控件、业务逻辑和数据访问的项目。

例如...与产品相关的 DAL 对象以及单个项目中关联的业务对象和用户控件。这最终会在解决方案中包含更多的项目,每个项目都是独立的。

然而,这可能会导致更多的复杂性,因为数据经常链接(产品表与供应商表、订单表和零件 list 表等链接),因此很难完全抽象每个类别。

网上有数百篇软件架构文章,但能帮助您将该架构转化为解决方案、项目和代码的文章并不多。

谁能指出我正确的方向?

最佳答案

我会将 UI、数据和业务层保留在不同的项目中。这实质上减少了紧耦合的机会——例如,UI 代码直接使用数据层等。现在,如果你想垂直划分它,那么你也可以这样做,即产品将有三个项目 UI、Business & Dal 和很快。这里可能有多种考虑因素:

  1. 为什么要垂直分离 - 您是否看到可能的独立重用?如果否,则避免划分。
  2. 如果你必须划分那么你可以选择划分,比如从管理的角度只划分 UI 层,因为它可能有很多代码
  3. 或者你可以划分所有层,但粗粒度。例如,Products 及其子项。

就跨类别引用而言,它们无法避免,但必须通过记录良好且设计良好的契约(Contract)来完成。例如,Orders UI 可能会调用 Products BL 来获取产品列表(请注意,许多其他 UI 组件将使用相同的方法来实现类似的功能)。

关于c# - 我应该如何构建数据驱动的 Win 表单解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3492678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com