我正在编写一个正在发展并变得非常广泛的Windows窗体应用程序。
最初我认为一个单独的图形组件项目,一个用于业务逻辑,一个用于数据访问,这是最好的方法。
随着应用程序越来越大,我开始认为更模块化的方法会更清晰......例如包含用户控件,业务逻辑和每个“类别”数据的数据访问的项目。
例如......与产品相关的DAL对象以及单个项目中的关联业务对象和用户控件。这应该最终解决方案中的大量项目,每个项目都是自包含的。
然而,由于数据经常被链接(产品表与供应商表和订单表和零件清单表等相关联),这可能会导致更多复杂化。因此,很难完全抽象每个类别。
在线有数百种软件架构文章,但并不是很多,它们可以帮助您将该架构转换为解决方案,项目和代码。
有人能指出我正确的方向吗?
答案 0 :(得分:5)
我会将UI,数据和业务层保存在不同的项目中。这基本上减少了紧耦合的可能性 - 例如,数据层直接被UI代码等使用。现在,如果你希望将它垂直划分,那么你可以做到这一点,即产品将有三个项目UI,Business&达尔等。这里可以有多个注意事项:
就交叉类别参考而言,它们是无法避免的,但它们必须通过充分记录和完整的方式完成。设计合同。例如,Orders UI可以调用Products BL来获取产品列表(请注意,许多其他UI组件将使用相同的方法来实现类似的功能)。
答案 1 :(得分:2)
VinayC正在接受它,这里有一些额外的东西可以增加他的答案(在评论中太难)。