创建直接与服务层通信(执行 CRUD 操作、验证等)的“黑盒”用户控件是否被认为是糟糕的设计?
通过“黑匣子”,我的意思是他们独立于托管的页面检索/保留数据(使用 IoC 注入服务)。每个 UC 都可以放在一个页面上,它就可以工作。请注意,任何这些 UC 中都没有嵌入任何业务逻辑(这些都在域层中)。
这种方法是由两个因素驱动的:
- 我们的应用程序有许多页面,它们本质上是同一视图上的变体(布局略有不同)。
此外,我们的 UI 设计师喜欢允许打开页面的离散部分进行编辑。单击 此处以尝试说明此概念。
无论如何,感觉就像赋予 UC 渲染和持久化自身的能力/责任将消除相当多的代码重复。
如果这种方法确实被认为是“讨厌的”,请随意建议一种更吸引人的替代方法(也许是 MVP?)在可预见的未来我会坚持使用 WebForms。
谢谢!