将WPF移植到ASP MVC?

时间:2014-02-25 16:57:21

标签: wpf asp.net-mvc

我们正在开发一个将在ASP MVC上安装桌面WPF应用程序和Web-face的应用程序。我的主要问题是,让工作尽可能少重复的方法是什么。

我的理想是使用MVC模式开发WPF应用程序,这样我们就可以将控制器从WPF应用程序复制/粘贴到ASP并仅在View部分上工作。那可能吗?

我已经研究过并发现,对于这类任务,我也可以坚持使用XBAP,但就我们研究而言,很多人在启动它们时遇到了问题。 Silverlight也不是一种可行的方式:(

有什么想法吗?

谢谢你的时间!

3 个答案:

答案 0 :(得分:3)

不,您无法将内容从Windows应用程序“复制/粘贴”到Web应用程序。和不。 “复制/粘贴”不是最佳的重用方式。

你是以完全错误的方式解决这个问题。

Reusability背后的主要思想是使应用程序组件和层解耦,以便将它们移植到不同的应用程序甚至不同的平台。

您无法在Web和Windows应用程序之间共享 Presentation 代码(无论每个方面的底层UI框架如何),只是因为基于HTML的Web UI 无状态本质上和Windows应用程序通常以有状态方式开发。

您需要做的是在WPF端使用MVVM(而不是MVC),以保持应用程序逻辑,最重要的是业务逻辑完全脱离UI。

这样,在任何其他平台上重用的机会就会大得多。您的所有共享业务逻辑和应用程序逻辑都将存在于 UI无关的层中,这些层并不真正“关注”前端。

答案 1 :(得分:1)

不可能。 WPF和ASP.NET MVC具有完全不同的视图。

只有您可以重复使用的是您的后端API。您可以将相同的API类注入MVC​​控制器,而不是像使用WPF一样将API类注入ViewModel中。

答案 2 :(得分:1)

我建议忘记重用大量客户端代码的想法。

我建议的是构建一个3层体系结构,这样您就可以在ASP.Net MVC和WPF应用程序中重用所有服务层(业务服务和DAL)。您仍然需要在每个应用程序中编写许多特定代码。

如果您的主要目标是通过Internet部署WPF应用程序,那么XBAP就是您的选择。或Silverlight,因为它是一种成熟的技术,可以支持多年。