使用MVC的服务最佳实践

本文关键字:最佳 服务 MVC 使用 | 更新日期: 2023-09-27 17:50:51

我是新的MVC和学习的概念。但作为一个实践者来看,作为一个初学者,有点困惑。

MVC是一个表示模式。但是MVC也包含控制器和模型。这些是业务逻辑和数据逻辑。所以它是如何混入演示本身的。我的理解对吗?

如果我实现WCF服务/Web Api的方法将是什么?我读了关于这个的文章和论坛的帖子,但是我没有弄清楚。

大多数人说web api是最好的组合,只需包含在控制器中。但是这个层是如何作为表示层和服务层分开的呢?这里的服务层(Web api)是专门针对MVC应用程序/Web UI的。没有得到一般。

我使用WCF,如服务层作为一个应用程序,业务层和数据层作为类库。在这里,我可以在iis中托管服务并从任何地方访问。如何在MVC应用程序中使用此服务?简单地避免实现控制器和模型和简单使用视图与jquery?

请给出正确的方法与WCF和Web API.

使用MVC的服务最佳实践

你有好几个问题,我尽量一一回答。

MVC是一个表示模式。但MVC也包含控制器和模型。这些是业务逻辑和数据逻辑。所以它是如何混入报告本身。我的理解对吗?

controller为表示层。它实际上应该像一个协调器,而不包含任何业务或持久化逻辑。model当然可以有业务逻辑,但不能有任何持久化逻辑。持久性与基础设施相关,不属于你的模型或控制器。

如果我实现WCF服务/Web Api的方法将是什么?我读关于这个的文章和论坛的帖子,但我没有弄清楚

你的服务可以与MVC项目分开,尽管在MVC项目中包含你的Web API是可以接受的。就我个人而言,我认为这应该是分开的。请记住,您所读到的关于MVC项目中的服务的内容可能是指DDD(域驱动设计)意义上的本地服务或存储库。这是完全不同的。

大多数人说web api是最好的组合,只要包含在控制器。然后是如何将图层分离为显示层和服务层?这里的服务层(Web api)是专门用于MVC应用程序/web UI。没有得到一般

WCF还是Web API?根据你的需求和技能选择最好的。不管怎样,我认为最好把服务分开。同样,不要将DDD服务与自治服务层混淆。

我使用WCF像服务层作为一个应用程序和业务层和数据层作为类库。在这里,我可以在iis中托管服务从任何地方访问。这个服务是如何在MVC中使用的应用程序?简单地避免实现控制器和模型和简单使用jquery的视图?

是的,你可以从视图的JQuery代码或控制器调用服务,这取决于你的需要。最好在MVC项目中创建一个本地服务,以便与服务和数据存储联系。然后,让您的控制器使用此本地服务来满足其数据需求。

在一个简单的应用程序中,我经常看到一个解决方案中的两个项目,一个用于web前端的MVC项目和一个用于数据访问的类库,我们称之为"核心"。核心项目包含所有与ORM相关的类和一个实现接口的服务类,我们称之为IService,它处理业务逻辑。

当请求进入MVC控制器时,控制器将调用IService来拉回它需要的数据并将该信息传递给视图。在这种方法中,MVC文件夹中没有任何"模型",但正在使用ORM模型。对于更复杂的页面,您将创建一个MVC模型,以组合从ISservice返回的几段数据,并以一种对用户有意义的方式呈现它们。

在较大的项目中,包含IService的核心项目可能是1-多个WCF或Web API服务。这给了你更大的灵活性来扩展应用程序,并允许你的网页直接对数据层进行ajax调用。

在这种情况下,当请求进入控制器时,它仍然会调用IService,但该服务实际上是一个WCF或Web API服务。