我是MVC的新手并学习了这些概念。但作为一个实际的观点,作为一个初学者,几乎没有注意到。
MVC是一种演示模式。但是MVC还包含Controller和Model。这些是业务和数据逻辑。那么它是如何在演示文稿本身中迁移的。我的理解是对的吗?
如果我实现WCF服务/ Web Api的方法将如何?我阅读了文章和论坛的相关内容,但我没有清楚地了解它。
大多数人说web api是最好的组合,只是包含在控制器中。但那么该层如何作为演示和服务层分离?这里的服务层(Web api)专门用于MVC应用程序/ Web UI。一般都没有。
我使用WCF,如服务层作为一个应用程序,业务层和数据层作为类libariries。在这里,我可以在iis中托管服务并从任何地方访问。如何在MVC应用程序中使用此服务?简单地避免使用jquery实现控制器和模型以及简单的使用视图?
请使用WCF和Web API提供正确的apporach ..
答案 0 :(得分:2)
您有几个问题,所以我会尝试回答所有问题。
MVC是一种演示模式。但是MVC还包含Controller和 模型。这些是业务和数据逻辑。那么它是如何迁移的 演示本身。我的理解是对的吗?
controller
是表示层。它应该像协调器一样,不包含任何业务或持久性逻辑。 model
当然可以有业务逻辑,但不能有任何持久性逻辑。持久性与基础架构有关,并不属于您的模型或控制器。
如果我实现WCF服务/ Web Api的方法将如何?我读 文章和论坛的主题,但我没有明确说明
您的服务可以与MVC项目分开,尽管在您的MVC项目中包含您的Web API是可以接受的。就个人而言,我认为它应该是分开的。请记住,您在MVC项目中阅读的有关服务的内容可能是指DDD(域驱动设计)意义上的本地服务或存储库。它的方式不同。
大多数人说网络api是最好的组合,只需包括在内 控制器。但是接下来如何将图层分离为演示文稿 服务层?这里的服务层(Web api)专门用于 仅限MVC应用程序/ Web UI。没有得到一般
WCF或Web API?根据您的需求和技能选择最佳的一个。无论哪种方式,我认为保持服务分离是最好的。同样,不要将DDD服务与自治服务层混淆。
我使用WCF之类的服务层作为一个应用程序和业务层 和数据层作为类libariries。在这里,我可以在iis中托管服务 从任何地方访问。如何在MVC中使用此服务 应用?简单地避免实现控制器和模型 使用jquery视图?
是的,您可以从查看的JQuery代码或控制器中调用该服务,这取决于您的需求。在您的MVC项目中创建一个可以联系您的服务和数据存储的本地服务可能更好。然后,让您的控制器使用此本地服务来满足其数据需求。
答案 1 :(得分:1)
在一个简单的应用程序中,我经常看到一个解决方案中的两个项目,一个用于Web前端的MVC项目和一个用于数据访问的类库,我们可以调用" core"。核心项目包含所有与ORM相关的类和实现接口的服务类,我们称之为处理业务逻辑的IService。
当请求进入MVC控制器时,控制器将调用IService以撤回所需的数据并将该信息传递给视图。在这种方法中,没有任何"模型"在您的MVC文件夹中,但正在使用ORM模型。对于更复杂的页面,您将创建一个MVC模型,以组合从ISservice返回的多个数据,并以对用户有意义的方式呈现它们。
在一个更大的项目中,包含IService的核心项目可能是1-WCF或Web API服务。这为您扩展应用程序提供了更大的灵活性,并允许您的网页直接向数据层发出ajax调用。
在这种情况下,当一个请求进入控制器时,它仍会调用IService,但该服务实际上是一个WCF或Web API服务。