将GUI与数据模型分开是否是一个好主意,比如使用.NET WPF设计GUI应用程序,但所有数据保持&处理是在BPL库中发生的(用Delphi编写)?
答案 0 :(得分:3)
不,这不是一个好主意。
层分离是一个逻辑问题,主要通过命名空间进行管理。如果你采用一个构建良好的WPF应用程序,你会有很多这样的应用程序。 View
,ViewModel
,Model
,Command
和Convertors
可能应该出现在每个重要的应用程序中,因为它们都是应用程序所必需的没有必要将它们分开。
然后将物理分离成不同的组件只是一个包装考虑因素。如果您有多个应用程序并且您认为可以重新使用某些代码,那么它会被拉入另一个物理程序集,但是单独设计它是过度设计的。
考虑具有单元测试套件的应用程序。现在您有两种方法来运行代码。您可以按用户的身份运行应用程序,也可以运行测试运行器并让测试按照设计运行您的代码。这里我们至少有两个组件。当您刚刚使用该应用程序时,不需要测试代码,因此它可以是独立的。但是,应用程序本身不需要只是一个程序集,所以好的做法就是节省自己的努力。
现在我将在这部分前言,我从未试图链接C#和Delphi ,但它只是增加了你将面临的复杂性。你 需要 使用吗?它会让事情变得复杂多了几倍吗?
你问什么是好的做法,我不得不说写一个WPF应用程序就像你可以在其他人从中学到的经验教训一样。为此,请阅读MVVM,并使用其中一个基本库来提供帮助,例如Caliburn.Micro,ReactiveUI或MVVMLight