问题标签 [service-layer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
750 浏览

.net - Linq2Sql - 你如何延迟加载嵌套列表?

如何在不实际执行查询的情况下延迟加载嵌套列表?使用一个非常基本的示例,假设我有:

然后在我的存储库层中,我有以下方法:

然后在服务层中,我将使用 GetCityBlocksByOwner,在这里我使用扩展方法来获取特定人拥有的城市街区,比如我们只想要 Guido 的街区:

如果我们在存储库中执行 .ToList() ,它将执行查询 - 这将是荒谬的,因为我们不知道我们在那个级别获得了谁的块。所以问题是,我们如何有效地做到这一点?

假设有 50000 个街区所有者,以及大约 1000000 个城市街区,加载所有这些街区不是一种选择。由于嵌套,使用 IQueryables 将不起作用(至少我知道没有极端的黑客攻击)。另外,如果我尝试使用 Rob Conery 的 LazyList 之类的东西,那么我们的 DAL 基本上会泄漏到我们的域模型中,这在未来可能会非常非常糟糕。

那么我该如何正确地做到这一点呢?

  • 这是确定正确上下文的问题吗?如果是这样,我们会在存储层或服务层中这样做吗?
  • 我是否将服务层和存储库层半融合在一起以获得非常具体的服务方法?
  • 还是我完全错过了什么?(对于 Linq2Sql 来说还是比较新的东西,反正它正在被逐步淘汰,所以......)

编辑: 在存储库模式中,我们当前正在映射到我们的域对象,所以它看起来像这样:

为此,我们必须让建筑物获得 .ToList(),除非我们将 CityBlock 对象中的实际字段设置为 IQueryable - 这似乎不对,因为看起来好像有太多的权力授予访问 CityBlock.BuildingsOnBlock 字段的任何人。这个映射到我们的领域对象是我们应该在服务层做的吗?

0 投票
4 回答
318 浏览

c# - 通过服务或直接访问存储库?

允许 ASP.NET MVC 控制器操作直接访问存储库(即使存在用于繁重工作的服务层,例如 LoginService.Authorize() )以检索、添加或更新数据是一个好的编码标准吗?或者一切都应该通过服务,然后从那里到存储库?

0 投票
1 回答
225 浏览

asp.net-mvc - 我的存储库/服务应该有多少责任?

我有以下对象:

人员 <- 联系人 -> 客户人员 <- 客户

我正在使用带有服务层的存储库模式。但已经在这里,作为一个完美主义者,我迷路了!

我还有一个 PersonService、ClientService,我很确定我需要一个 ContactService,它应该调用 personService.Add(person) 和 clientsPersonService.Add(client) - 或者?

工作是添加联系人。联系人将有一个相关的 Person 对象和一个 ClientsPerson 对象。而那个 ClientsPerson 会。有一个客户。

不同的工作应该去哪里?我听说将服务/存储库从一个调用到另一个是不好的。

0 投票
3 回答
6673 浏览

service-layer - 服务层的目的

我认为服务层的目的包括以下内容是否正确?

  • 域模型的细化(即某些功能的移动,如缓存、实例化)
  • 减少与领域模型的依赖关系
  • API 最小化
0 投票
3 回答
1449 浏览

java - 服务层应该是 Spring bean 吗?

服务层可以或应该是 Spring bean 吗?

如果是这样,它应该如何从调用应用程序、服务的消费者那里获得?

因为消费者必须知道存在这样的bean,所以无论如何它必须使用Spring

使用服务方法。

0 投票
2 回答
196 浏览

java - 使用 Spring-MVC 降低 Java Web 应用程序中的部署频率

有没有一种简单的方法可以将“服务层”与 Web 层分开部署,这样我就可以减少每周打包、构建和部署整个 WAR 文件的次数?

我主要使用 Tomcat,但我希望对 Java Web 服务器更通用。

0 投票
2 回答
9203 浏览

asp.net - 服务层和 ASP.NET MVC 2 的用途

为了理解 MVC 2 并试图让我的公司采用它作为未来发展的可行平台,我最近做了很多阅读。在过去的几年里,我完全专注于 ASP.NET,我有一些事情要做。

目前,我了解存储库模式、模型、控制器、数据注释等。但有一件事让我无法完全理解,无法开始研究参考应用程序。

第一个是服务层模式。我在 Stack Overflow 上阅读了很多博客文章和问题,但我仍然不完全理解这种模式的目的。我在 MVCCentral 上观看了 Golf Tracker 应用程序的整个视频系列,还查看了他发布的演示代码,在我看来,服务层只是存储库模式的另一个包装器,根本不执行任何工作。

我还阅读了这篇文章:http ://www.asp.net/Learn/mvc/tutorial-38-cs.aspx它似乎在某种程度上回答了我的问题,但是,如果您使用数据注释来执行验证,这似乎没有必要。

我一直在寻找演示、帖子等,但我似乎找不到任何可以简单解释该模式并为我提供使用它的令人信服的证据的东西。

有人可以给我一个二年级(好吧,也许是五年级)使用这种模式的理由,如果我不这样做我会失去什么,如果我这样做我会得到什么?

0 投票
1 回答
1412 浏览

php - MVC、服务层和文件上传/存储

我正在使用 Zend Framework 的分层架构。

我有 MVC:

控制器 > (DTO) 服务(服务层)> (DO) 存储库 > 持久性

现在我必须处理图片库。上传过程由前端处理,但是哪个部分负责生成拇指?

我是否必须从前面将图片存储到临时文件夹,将临时路径传递给将处理调整大小并将文件移动到存储服务器文件夹的服务?

还是我必须从前面处理图片调整大小/存储过程并仅将图片 URL 传递给服务?

服务层的目的是移动应用程序逻辑并保持控制器精简。但是对于那些情况,我真的不知道谁对什么负责:)

你有什么建议吗?

0 投票
6 回答
21697 浏览

asp.net-mvc - 服务层是否应该返回 MVC 应用程序的视图模型?

假设您有一个 ASP.NET MVC 项目并且正在使用服务层,例如在 asp.net 站点上的此联系人管理器教程中: http ://www.asp.net/mvc/tutorials/iteration-4-make-应用程序松耦合cs

如果您的视图有视图模型,那么服务层是否适合提供每个视图模型?例如,在服务层代码示例中有一个方法

相反,如果您想要一个 IEnumerable,它应该放在服务层中,还是有其他地方是“正确”的地方?

也许更合适的是,如果您为与 ContactController 关联的每个视图都有一个单独的视图模型,那么 ContactManagerService 是否应该有一个单独的方法来返回每个视图模型?如果服务层不合适,应该在哪里初始化视图模型对象以供控制器使用?

0 投票
1 回答
1942 浏览

asp.net-mvc - 服务层和存储库层的职责

在将对象保存到我的持久性存储时,只是想了解服务层和存储库层的职责。

我目前的理解是这样的:

在我的控制器中,我根据用户提交的数据(来自表单)创建了一个“Note”对象。然后用户在“NoteService”(通过依赖注入存在)上调用“Save”。

在“NoteService”的“Save”方法中,我执行我的业务逻辑验证,然后将“Note”对象传递给“NoteRepository”的“Save”方法。

“NoteRepository”的“Save”方法然后检查该对象上是否存在现有主键,如果有,则从数据库中获取该对象并使用传递的“Note”对象更新其属性,然后保存回到数据库。如果没有主键,那么对象只是保存到数据库中,然后使用新创建的主键返回到服务。