C#将'旧'WinForms转换为Web应用程序,还是在新平台上重写?

时间:2012-10-12 10:19:56

标签: c# wpf winforms silverlight

我正在开发WinForms应用程序。到目前为止,我已经完成了大约50%的比例。

无论如何我可以将其转换为Web应用程序而无需重写整个GUI吗?

如果有非,我应该在什么平台上使用(重写我的项目)以便轻松拥有Web和Windows UI?

过去3年中这个主题有什么新内容吗?

我当然知道WPF和Silverlight非常相似,但我不确定这是解决方案。

1 个答案:

答案 0 :(得分:4)

这取决于您构建架构的方式。 WPF和Silverlight可互换的主要原因是因为它们倾向于使用MVVM模式和架构(也像PRISM这样的东西)

  

http://msdn.microsoft.com/en-us/library/ff921075(v=pandp.20).aspx

理论上,如果您遵循这种模式,您可以随时放下前面,并使用完全不同的东西进行设计。这被称为:

  

让您的UI松散耦合。

如果您想将前端显示切换到Web应用程序,您显然必须更改UI层以使用HTML,理论上如果您已为应用程序提供了合适的体系结构,那么您的业务逻辑应该能够保持不变,但是如果你有很多逻辑与多个Windows Forms相关联,我担心你会遇到漫长而痛苦的迁移过程,并伴随着许多错误。

将您的应用想象成一个房子 - 您有房子的主要基础(保温材料,砖块等),您可能需要不时更改以使结构更新,但基本的基础通常会保持不变。然而,你可以根据自己的意愿装饰房子,而不会影响基本面(对于一个糟糕的比喻感到抱歉)。

希望这有所帮助。

编辑:

我刚刚注意到你想知道一个项目使用的最佳架构,我个人认为我会使用PRISM,WPF和MVVM - 你可以Build WPF and Silverlight Applications with a Single Code Base Using Prism