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

时间:2009-04-25 02:36:30

标签: c# asp.net asp.net-mvc web-services

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

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

6 个答案:

答案 0 :(得分:9)

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

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

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

仅使用WCF,除非您根本没有选择。有一种误解,认为WCF服务不执行SOAP - 他们这样做,并且WCF已经取代了ASMX。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

如果您想使用常规的ASP.NET asmx Web服务,那肯定是可能的。这是一个example from Scott Hanselman,可以满足您的要求,并且可以提供其他一些ASP.NET技术。

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

答案 3 :(得分:1)

我认为这里有几件事。

您确实可以将Web服务添加到MVC应用程序中。您甚至可以考虑将Web服务标识为脚本服务,以便通过javascript更轻松地执行REST操作。根据您的情况,这可能不是必要的。

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

除非您的应用程序非常小,否则我建议您为应用程序的每个逻辑部分创建不同的项目。一个很好的启发点是为每个项目制定一个项目:

  • 域对象
  • 数据访问
  • 网络服务
  • UI(您的ASP.NET MVC应用程序)

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

相关问题