Asp.net mvc 这种架构(MVC、Webservices和Winform)有什么问题吗

Asp.net mvc 这种架构(MVC、Webservices和Winform)有什么问题吗,asp.net-mvc,web-services,architecture,Asp.net Mvc,Web Services,Architecture,我有一个大型的vb6/sql数据库应用程序,其中有数百个表、类和表单,我想将它们迁移到c,包括web、phonegap和winform客户端。我想集中很多数据库和业务逻辑,因为我更喜欢ASP.Net MVC作为我的web UI平台,所以我考虑以下几点: MVC Web项目包括: 用于Web UI的MVC Web控制器和视图 MVC控制器为phonegap应用程序和丰富的html页面提供JSON对象 向MVC控制器提供BLL服务的服务类 DAL类提供持久性和POCO对象,供服务/BLL类使用 向W

我有一个大型的vb6/sql数据库应用程序,其中有数百个表、类和表单,我想将它们迁移到c,包括web、phonegap和winform客户端。我想集中很多数据库和业务逻辑,因为我更喜欢ASP.Net MVC作为我的web UI平台,所以我考虑以下几点:

MVC Web项目包括:

用于Web UI的MVC Web控制器和视图 MVC控制器为phonegap应用程序和丰富的html页面提供JSON对象 向MVC控制器提供BLL服务的服务类 DAL类提供持久性和POCO对象,供服务/BLL类使用 向Winform应用程序公开服务类的Web服务。它们将接受并返回POCO对象 Winform应用程序的所有数据都将严重依赖Web服务。由于我有数百个数据库表,webservices将把这些数据作为POCO对象(一些嵌套的POCO对象列表)返回给客户机。我担心1 WSDL将是巨大的,并且随着应用程序的增长和公开的类的数量的增加,它将变得难以控制。2通过Web服务返回POCO对象可能不会很好地执行。我习惯于直接从winform UI调用SQL server,因此通过Web服务的前景似乎会成为瓶颈,因为所有内容都会序列化并通过IIS

顺便说一句,我知道服务层在逻辑上与MVCUI层是分开的,但我已经将它们结合起来,以简化部署。如果它解决了任何问题,我也会考虑WCF,但据我所知,它增加了不必要的复杂性。


这些担忧是否合理?您还有其他建议吗?

您如何构建WinForms使用的服务?根据设置方式,您可能需要重新考虑WCF。您可以将BLL放入WCF服务中。然后您的MVC应用程序、WinForms和PhoneGap应用程序都可以使用WCF服务,这意味着您的所有业务逻辑都有一个单一的位置。只要您没有处理庞大的POCO,并且正在进行异步调用,那么使用服务的WinForms应用程序就不应该有任何重大性能问题

WCF在这里可能非常好,因为它能够根据您将要连接的客户端轻松地公开不同的端点。例如,MVC和WinForms应用程序可以使用二进制接口,而PhoneGap应用程序可以利用REST端点

如果你担心你的服务变得太大,你也可以考虑把它分解成多个服务,每个服务都在数据库的某些部分上运行,或者在你的BLL中已经存在的其他逻辑分离。

我还想知道为什么WinForms应用程序在这一点上是必要的。在网站上有你不能做的事情吗?你看过WPF或Silverlight吗?这两种服务都能很自然地工作