asp.net vs asp.net mvc 用于转换 WPF 应用程序

asp.net vs asp.net mvc for a converting a WPF application

我们今年发布了一个 WPF 客户端服务器应用程序。它在服务器机器上有一个客户端(带有几个 dll)和服务器(带有我们大部分逻辑的多个 dll)。服务器端使用Entity Framework,它们之间的服务是TCP/IP Windows通信基础(WCF)。

客户端将 MS Prism 与 Mef 用于 MVVM。 UI 有许多用于存储、保存数据的数据网格。

对于 WPF,我们有: XAMl -> 视图模型 -> 服务接口 -> 服务器端代码 -> DB

对于 ASP.NET ,我们希望按原样使用服务接口以后的层。 所以,基本上我们需要: 网站-> 客户端服务接口上的数据处理逻辑-> 服务器端代码-> DB

单元可测试性不是一个非常重要的问题,因为我们的单元测试覆盖率在服务器端看起来不错(覆盖率达到 85%)。

我阅读了 ASP.NET MVC 并找到了一些教程,这些教程谈到了在 MVC 框架上构建整个应用程序。

在我们的案例中,我们已经构建了一半以上的应用程序,只需要具有相同数据的客户端 Web UI。

我的问题是:我们应该选择 ASP.NET Web 表单还是 MVC?
Web 表单具有可以使用的原生控件,例如 GridView。 MVC 不提供很多本机控件支持。 MVC 涵盖了整个 Web 应用程序的完整堆栈。我们只需要客户端 UI 网站。

周围的人都推荐了 MVC,因为它是新的并且看起来像是前进的方向,但我想知道考虑到我们的要求(只需要客户端)是否会过大。 MVC 会迫使我们甚至在服务器端重新设计整个层吗? aSP.NET 网络表单不会这样做吗?我们希望能够使用 WCF 而不是像 webapi 这样的任何其他 http 框架。

我知道这个问题已经被解决了,但这里有一些具体要求。我还阅读了有关将 WPF 应用程序移植到 Web 的内容,但可能不会成功,因为我们在 Web 和 WPF 中可能有一些不同的功能。

使用过 MVC 和 Web 窗体后,我强烈建议使用 MVC。在我看来,Web Forms 是一个过时的难题,不适合扩展或单元测试(我知道你说过这不是一个大问题)。

是的,Webforms 有像 gridviews 这样的本地控件,但您不会错过太多。这些对于非常简单的事情很有用,但是一旦您将一些复杂性添加到表格数据中,您就会很吃力。我想说的是,您可以完成这些内置控件提供的相同功能,但使用简单的表格或只是普通的旧 div(当然还有一些 css)具有更大的灵活性。

我还应该注意到,MVC 和 Web 表单都可以在 WCF 中正常工作。如果您使用的是 MVC,则不必使用 WebApi。

最后,我认为没有一种简单的方法可以仅提供 "the client" 您尝试使用 Microsoft 技术完成的部分内容。如果我正确理解你的问题,你有一个桌面应用程序,现在你想提供一个基于 Web 的等价物 UI。您将不得不使用 webforms 或 MVC 创建一个站点来实现这一点。但是,您将能够重用您的 Web 服务,因此您不必重写太多业务逻辑。

你有点混淆了。由于您已经拥有 WCF(SOAP) 后端服务,因此您将只编写 UIClient,技术方面的问题。您甚至可以在 Java 中完成。

由于您重写了桌面客户端,作为一个新的 Web 客户端,您必须从头开始,因此应该使用 ASP.MVC。你可以找到很多可以告诉你原因的论坛。

Web API is used, only if you want to create REST services in MVC. But you can build them also in WCF 如果你真的需要它们。

ASP.NET 的唯一好理由是,如果您的开发人员已经了解它,那么您可以节省一些钱。