使我的C#源代码UI大部分独立的基本技术是什么?
例如,我想为Winforms桌面应用程序编写我的源代码,我将能够插入到asp.net Web应用程序或WPF应用程序中进行非常小的更改。即无论UI技术如何,我都可以使用相同的源代码,以使其面向未来。
我知道CSLA framework可以做到这一点。
但如果我不使用CSLA(学习新框架需要一些时间,而且目前我没有那么多时间花在它上面),应该注意哪些方面来实现这种能否使用我的C#代码?
你能举个例子吗?我已经在我的应用程序中使用了Business Objects和分层技术。但即便如此,我已经看到它需要大量编码才能将我的代码插入到新的UI技术中。请不要向我提供任何肤浅的答案。
答案 0 :(得分:10)
执行UI独立编码的最佳方法是从演示文稿中分离逻辑。看看MVC pattern.
这更多是与您的设计相关的纪律问题,而不是框架问题。框架不能强迫您正确设计。如果你正确地设计应用程序,它可以让你更容易,但总是有办法解决它。
答案 1 :(得分:4)
要使您的代码与UI无关,请将不依赖于UI的逻辑放入单独的图层或程序集中。将逻辑与表达分开。这就是所有模式,如MVC,MVP和MVVM。它是如此根本的软件结构,它应该根植于你;如果不是,那就这样吧。
将逻辑与演示分开。学习它。住它。爱它。
编辑:
你能举个例子吗?我已经在我的应用程序中使用了BO和分层技术。但即便如此,我已经看到它需要大量编码才能将我的代码插入到新的UI技术中。请不要向我提供任何肤浅的答案。
我看到你已经编辑过。请允许我详细说明:
无法摆脱依赖于UI的某些逻辑。 UI不是shell;他们仍然有逻辑和功能。但该功能应仅针对用户交互。显示数据。收集资料。如果您的偏好位于该方向,则可以使用精美的图形技巧和动画。
其余的转到业务层, 的东西可以重复使用。如果您正确分层,则可以避免每次为新的UI框架编写程序时都必须重写核心功能。
但你还是要重写UI的东西。
答案 2 :(得分:3)
如果您正在构建多层应用程序,那么您的业务逻辑,数据访问等应该已经分成完全独立于UI的类。将这些库重新用于不同的目标平台 - 桌面与网络等 - 应该是从新应用程序引用现有库的简单问题。
这是软件开发的基本规则。尽管像MVC等模式和框架更严格地强制执行,但最终由您来正确设计应用程序。这类任务不需要学习新技术 - 只需要常识和一点点经验。
答案 3 :(得分:2)
查看Martin Fowler关于此主题的优秀文章。
答案 4 :(得分:0)
在MSDN杂志上查看MVVM(Model-View-ViewModel)的解释。 MVVM广泛用于WPF应用程序开发。