繁体   English   中英

asp.net MVC应用程序也可以具有Web服务吗?

[英]Can an asp.net mvc application also have a web service?

我有一个asp.net mvc应用程序,现在我需要添加一个Web服务来配合它。 最好的解决方案是什么? 只需创建一个新的Web服务项目并将其添加到我的解决方案中,然后使用其他URL将其部署到同一Web服务器上? 我只希望它成为mvc应用程序的一部分,因为我在其中拥有所有的数据库代码。

任何建议,将不胜感激。 谢谢。

没有理由不添加Web服务项目。

您声明所有数据库代码都在MVC项目中。 我强烈建议您从那里将其删除到一个单独的类库项目中。 Web服务和MVC应用程序都将使用该第三个项目。

我也强烈建议您不要将ASMX Web服务用于任何新开发。

除非您别无选择,否则仅使用WCF。 有一个误解,认为WCF服务不执行SOAP,而是执行SOAP,而WCF已经取代了ASMX。

Web服务可能意味着基于肥皂的Web服务或RESTful Web服务。 我想不出任何原因,为什么您不能简单地将asmx文件添加到项目中并开展业务。 那是基于肥皂的路线。 如果您想变得非常酷,则可以从控制器操作简单地返回xml,并直接在MVC框架上实现RESTful解决方案。

如果您想使用常规的ASP.NET asmx Web服务,那肯定是可能的。 这是Scott Hanselman的一个示例,它确实满足您的要求,并且充分利用了其他一些ASP.NET技术。

您所要做的就是File-> New Item-> Web Service,它应该像Mvc项目中的常规ASP.NET应用程序一样工作。

我认为这里有两件事。

您确实可以将Web服务添加到MVC应用程序。 您甚至可以考虑将网络服务识别为脚本服务,以使类似REST的操作更易于通过JavaScript执行。 由于您的情况,这可能是不必要的。

我认为关于底层架构还有一个更强烈的问题。 如果将Web服务与mvc应用程序一起放置,因为您的数据库代码已经存在...应该吗? 现在是将数据层抽象一些的好时机。 但是,如果您要处理的是一个相对较小的项目,并且不需要灵活性,那么可以肯定地添加一个Web服务。我想它真正可以归结为满足您应用程序的真正需求。

MVC建立在asp.net框架上。 您应该能够在同一项目中包含Web服务。 我还没有完成,但是我知道您可以在同一项目中将asp.net表单应用程序与MVC应用程序结合在一起。 Web服务也应如此。

除非您的应用程序很小,否则我建议您为应用程序的每个逻辑部分创建不同的项目。 一个不错的凝视点是针对以下每个项目都有一个项目:

  • 域对象
  • 资料存取
  • 网页服务
  • UI(您的ASP.NET MVC应用)

这提供了与您的体系结构相对应的清晰分隔,并支持重用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM