在我的表示层中构造WinForms

在我的表示层中构造WinForms,winforms,architecture,user-interface,layer,Winforms,Architecture,User Interface,Layer,在我们公司,我们正在开发一个应用程序,其中包含大量winforms,这些winforms都是在同一UI层、命名空间和程序集中创建的。是否有合适的方式/设计模式来构建此层 我们的UI层与业务层通信,业务层由business.calculation和business.logistics等多个名称空间组成。这个结构也可以在UI层中使用吗? 在同一个winform项目中创建100多个winforms是不对的 干杯 是的。随着应用程序的增长,良好的结构将有助于保持您的理智。您将面临一些挑战: 识别好的名称

在我们公司,我们正在开发一个应用程序,其中包含大量winforms,这些winforms都是在同一UI层、命名空间和程序集中创建的。是否有合适的方式/设计模式来构建此层

我们的UI层与业务层通信,业务层由business.calculation和business.logistics等多个名称空间组成。这个结构也可以在UI层中使用吗? 在同一个winform项目中创建100多个winforms是不对的


干杯

是的。随着应用程序的增长,良好的结构将有助于保持您的理智。您将面临一些挑战:

识别好的名称空间 查找它们之间的深度,从而形成逻辑构建顺序 在开发人员添加新表单时维护名称空间

例如,您可以考虑将表单分组为命名空间,例如:

business.library.ui-常见的、可重用的ui组件可能会出现在这里

business.calculation.ui—与计算相关的ui,取决于库ui


business.logistics.ui-与物流业务领域相关的ui,它取决于库和计算ui

我发现根据构成整个应用程序的子系统构造名称空间更容易,然后根据用例组织ui的名称空间

好的,谢谢,这正好证实了我的想法。我想知道我是否应该使用一些navigator类来负责显示来自不同名称空间的表单,或者表单应该彼此直接调用。我可以想象,计算命名空间中的表单可以从Logistic命名空间打开窗体,反之亦然,但这会导致没有导航器类的引用问题。如果您有两个程序集引用彼此的程序集中的类,则可以考虑将这些类移动到一个较低级别的程序集中,两者都可以访问。我们有几种这样的表格。