Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在分层Asp.net mvc应用程序中的何处添加外部WCF服务?_C#_Asp.net_Model View Controller_Architecture - Fatal编程技术网

C# 在分层Asp.net mvc应用程序中的何处添加外部WCF服务?

C# 在分层Asp.net mvc应用程序中的何处添加外部WCF服务?,c#,asp.net,model-view-controller,architecture,C#,Asp.net,Model View Controller,Architecture,我计划在web应用程序中使用以下体系结构(洋葱) 应用核心–POCO App.Data–使用实体框架的存储库 应用程序服务–业务逻辑层 Web–Asp.net MVC 5控制器和视图 此外,还需要使用外部WCF服务,该服务接受来自视图/表单的数据并生成响应。 现在,这些外部WCF服务应该包括在哪一层?它们应该是App.Service层的一部分,还是从App.Web控制器使用它们 这些服务是做什么的?若他们正在执行业务级逻辑,那个么是服务层。如果他们更关心显示数据,那么您可能希望他们在web中

我计划在web应用程序中使用以下体系结构(洋葱)

  • 应用核心–POCO
  • App.Data–使用实体框架的存储库
  • 应用程序服务–业务逻辑层
  • Web–Asp.net MVC 5控制器和视图
此外,还需要使用外部WCF服务,该服务接受来自视图/表单的数据并生成响应。
现在,这些外部WCF服务应该包括在哪一层?它们应该是App.Service层的一部分,还是从App.Web控制器使用它们

这些服务是做什么的?若他们正在执行业务级逻辑,那个么是服务层。如果他们更关心显示数据,那么您可能希望他们在web中显示。BizTalk编排将作为WCF服务公开。视图向这些服务提供数据,然后将这些数据写入数据库。它们执行业务逻辑。视图模型是根据这些服务所需的数据创建的。其想法是将UI和WCF服务分开,以支持测试,而不是fat控制器。另外,随着项目的进展,我看到将添加更多的WCF服务。@chris crush代码:如果WCF服务正在执行业务级逻辑,那么它应该驻留在App.service中,这很好。但为什么你认为这项服务会驻留在App.Web上,而它更关心的是显示数据?App.Service应该是正常的位置,你不认为吗?@Riyaz:你把那些WCf服务放在哪里了?@Tony让代码井然有序只是一条经验法则。通常有三层模型:数据层、业务(也称为服务)层和gui。gui应该关注显示、业务与业务逻辑以及数据与数据存储逻辑。通过这种方式,您可以将业务逻辑与其他前端(无论是网页还是web服务)重用,您没有特定于网页的代码干扰web服务代码。这些服务做什么?若他们正在执行业务级逻辑,那个么是服务层。如果他们更关心显示数据,那么您可能希望他们在web中显示。BizTalk编排将作为WCF服务公开。视图向这些服务提供数据,然后将这些数据写入数据库。它们执行业务逻辑。视图模型是根据这些服务所需的数据创建的。其想法是将UI和WCF服务分开,以支持测试,而不是fat控制器。另外,随着项目的进展,我看到将添加更多的WCF服务。@chris crush代码:如果WCF服务正在执行业务级逻辑,那么它应该驻留在App.service中,这很好。但为什么你认为这项服务会驻留在App.Web上,而它更关心的是显示数据?App.Service应该是正常的位置,你不认为吗?@Riyaz:你把那些WCf服务放在哪里了?@Tony让代码井然有序只是一条经验法则。通常有三层模型:数据层、业务(也称为服务)层和gui。gui应该关注显示、业务与业务逻辑以及数据与数据存储逻辑。通过这种方式,您可以将业务逻辑与其他前端(无论是web页面还是web服务)重用,您没有特定于该页面的代码干扰web服务代码。