如何实现UI独立应用程序?

use*_*312 3 c# model-view-controller design-patterns

使C#源代码UI的大部分内容独立的基本技术是什么?

例如,我想为Winforms桌面应用程序编写我的源代码,我将能够插入到asp.net Web应用程序或WPF应用程序中进行非常小的更改.也就是说,无论UI技术如何,我都可以使用相同的源代码,以使其面向未来.

我知道CSLA框架可以做到这一点.

但是,如果我不使用CSLA(学习一个新的框架需要一些时间,而且目前我没有那么多时间花在它上面),应该注意什么点来实现我的这种能力. C#代码?

能给我举个例子?我已经在我的应用程序中使用了Business Objects和分层技术.但即便如此,我已经看到它需要大量编码才能将我的代码插入到新的UI技术中.

请不要向我提供任何肤浅的答案.

mon*_*ksy 10

进行独立于UI的编码的最佳方法是从表示中分离逻辑.看看MVC模式.

对于您的设计而言,这更多是一个学科问题,而不是框架问题.框架不能强迫您正确设计.如果您正确地设计应用程序,它可以使您更容易,但总是有办法执行它.

  • 在模型视图控制器模式中,实体(在您的情况下是db阴影类)是模型.该模型仅负责数据的内容.控制器只能实现模型和视图之间正在进行的逻辑.该视图仅负责显示接口并发送已请求操作的消息.控制器处理操作请求并执行所需的操作. (2认同)

Ran*_*pho 5

要使您的代码 UI 独立,请将不依赖于 UI 的逻辑放入单独的层或程序集中。将逻辑与演示分开。这是 MVC、MVP 和 MVVM 等所有模式所遵循的。它是软件结构的一个基本部分,您应该根深蒂固;如果不是,就这样吧。

将逻辑与演示分开。学习它。活下去。爱它。

编辑:

你能给我一个例子吗?我已经在我的应用程序中使用了 BO 和分层技术。但即便如此,我也看到需要大量编码才能将我的代码插入到新的 UI 技术中。

请不要给我任何肤浅的答案。

我看到你已经编辑了。请允许我详细说明:

无法摆脱某些依赖于 UI 的逻辑。UI 不是外壳;它们仍然具有逻辑和功能。但该功能应该只面向用户交互。显示数据。收集资料。花哨的图形技巧和动画,如果您的偏好在于那个方向。

剩下的交给业务层,这些东西可以重用。如果您正确分层,则可以避免每次为新 UI 框架编写程序时都必须重写核心功能。

但是你仍然需要重写 UI 的东西。