MVP / MVC与winform应用程序的传统n层方法

时间:2009-02-26 07:18:09

标签: winforms model-view-controller n-tier-architecture

我们有一大套应用程序,大多数是C#1.1,但至少有10个主要应用程序在VB6中。我们正在开展一个项目,将VB6应用程序引入.NET 3.5。

所有c#1.1应用程序都是使用传统的n层方法编写的。 UI层实际上没有任何架构/分离。大多数代码只响应事件并从那里开始。我会说,从可维护性的角度来说,这是非常好的,并且很容易遵循代码并加快新应用程序的速度。

由于我们正在移植VB6应用程序,最初的想法是我们应该坚持现有的模式(例如n-Tier)。

我想知道,是否值得打破模式并使用MVP / MVC模式进行VB6应用程序? MVC / MVP winform应用程序是否真的更容易维护?我参与了一个基于MVC的项目,并没有觉得它更容易维护,但这只是一个项目。

那里有哪些经验和建议?

5 个答案:

答案 0 :(得分:4)

老兄,如果有什么东西适合你,你们对此感到满意,而你的团队也会遵守规范。你为什么需要改变?

MVC / MVP听起来不错......那为什么我自己还在为n-Tier工作呢?

我认为在你将资源用于这种新的编程方式的实际开发之前......你应该考虑它是否适用于你的团队。

答案 1 :(得分:3)

如果您要移植VB6应用程序而不是完全重写,我建议您专注于您的Pri 1目标 - 尽快获得.Net世界。这样做对您的组织有很多好处。

一旦你在那里,你可以评估你是否有利于投资重新架构这些应用程序。

如果您正在进行完全重写,我会说采取行动并转向MVP / MVVM模式WPF应用程序。 WPF将为您提供更好的视觉效果。 MVP / MVVM模式将为您提供所有图层的单元可测试性,包括视觉效果。我还假设这些应用程序是相关的,因此您可能实际上可以重用模型和视图。 (虽然,我可能在这里错了)

答案 2 :(得分:1)

它会在UI上移动您仍然可能拥有的一层薄薄的代码。我说很薄,因为根据你的描述,你可能在其他地方有很多代码。 这给你的是能够对薄层代码进行单元测试。

更新1:我不建议在进行升级时重新设计,额外的工作是获得自动化测试(单元/集成/系统)的最佳时间 - 因为你必须是无论如何测试升级工作。一旦您完成了测试,您就可以逐步更改应用程序,并且可以通过测试来支持更改。

答案 3 :(得分:0)

MVC特别不排除n层体系结构。

我们还有ASP.NET 1.1业务应用程序,我觉得这是一个真正的噩梦。当事件处理程序执行他们喜欢的任何操作时,可能会调整其他控件,可能会调用业务逻辑中的某些内容,也可能直接与数据库通信,只是软件可以正常工作。

如果使用正确的MVC,您可以看到数据从数据库流向UI和向后的方式。如果您遇到意外行为,它可以更容易地跟踪错误。

至少,我自己的小项目也是如此。

我将再次提出观点:无论你使用什么样的模式,都要坚持使用清晰的n层体系结构。 2级或3级,只是不要将所有东西都弄成一个大的互联球。

答案 4 :(得分:0)

“改变 - 我们参与的活动是为了暗示进步。” - 迪尔伯特

说真的,只需将开发环境和部署平台升级到.NET 3.51,这本身就是一大步。我建议在重新审核应用程序之前,应该先进行安全审查和代码演练等工作。

MVC和MVVM是优秀的paradimes,特别是在可测试性方面。不要忘记它们,但也许你应该在全面采用之前考虑一个试点项目?