标签: service-layer

asp.net mvc3,为什么我们在使用存储库模式时需要服务层

我正在观看"店面入门套件",它使用带有服务层的存储库模式.在视频中,他没有真正解释他为什么使用服务层.好像那些只是额外的.

什么是使用服务层的利弊?

repository-pattern service-layer asp.net-mvc-3

2
推荐指数
1
解决办法
794
查看次数

经理层与服务层

在三层体系结构中,有表示/ Web层,服务层和数据库层。但是,在我最近从事的项目中,我看到了对我来说是新的Manager层。您能否解释一下服务层/类与管理器层/类之间的区别?

还请提出一些用于学习3层体系结构和相关模式的好书。(对于Java / Java EE应用程序)

3-tier java-ee service-layer

2
推荐指数
1
解决办法
4887
查看次数

Facade模式是否违反了SRP?

SRP负责人说:

一个类或模块应该只有一个改变的理由

我有一些Facade类作为我的服务层类.例如SaleService,它提供了一些方法,例如SaveOrder(),CancelOrder(),CreateOrder(),GetAllOrders(),GetAllPlannedOrders(),...

我只是因为他们的概念关系而把它们放在一起.
使用这种方法的类可能有多个改变()的原因,违反了SRP吗?如果是的话,我该如何处理这个问题呢?

design-patterns single-responsibility-principle facade conceptual service-layer

2
推荐指数
1
解决办法
1617
查看次数

DDD:程序应用服务的OOP替代方案是什么?

我最近得到了Scott Miller和Nick Tune的一本关于领域驱动设计的模式,原理和实践.它在C#中有一些很好的例子,所以与我之前读过的其他DDD书籍有点不同.由于C#支持委托和事件,Domain事件实现非常简洁.

但是,有一件事让我担心,正如本书在应用服务一章中所说的那样,它应该是"程序式的,薄的".我知道应用程序层应该很薄,但为什么程序化?我不想写程序代码,或者我不会首先选择DDD.我还发现这个stackoverflow文章还标签Application Services是程序代码:

https://softwareengineering.stackexchange.com/questions/279369/conceptual-mismatch-between-ddd-application-services-and-rest-api

所以你看?应用程序服务是程序式的,而不是OOP.这让我想知道是否可以通过OO接口替换应用程序服务的过程接口来将设计改进为更多OO.本文建议方法对象可以,并且它有效吗?有哪些OO替代程序应用程序服务?谁能详细说明?

http://ayende.com/blog/2145/entities-services-and-what-goes-between-them

c# oop domain-driven-design service-layer application-layer

2
推荐指数
1
解决办法
580
查看次数

向Laravel应用程序添加服务层的效果

我使用Zend Framework进行开发已有多年,现在正在学习Laravel。

在我以前的应用程序中,我通常有一个由控制器调用的服务层。服务层位于映射器和域模型的顶部,负责某些应用程序逻辑,引发事件,某些输入过滤等。

我为什么不应该在Laravel中实现服务层?在到目前为止的示例中,控制器直接与域对象(或更准确地说,是活动记录)一起工作。

如果我的Laravel控制器调用我的服务层,我会失去Laravel的任何优势吗?(据我所知,我仍然可以使用Route / Model绑定)。

作为第二个问题-实施我的服务层的最佳方法是什么?作为服务提供商的集合,也许吗?

service-layer laravel

2
推荐指数
1
解决办法
6131
查看次数

WCF /服务层/存储库层:从服务层返回DTO?从DTO返回的Controller中创建ViewModel

我想对我目前的设计提供一些帮助.我有一个WCF服务,WCF服务背后是一个服务层(http://martinfowler.com/eaaCatalog/serviceLayer.html)和存储库层.

因此,客户端调用WCF服务层,WCF服务层(充当服务层)调用存储库层.

存储库层返回表示数据库的MODELS(Poco).那么服务层我认为我需要将POCOS转换为DTO以通过线路传输?或者我应该把这些作为POCO?

一旦我在服务层上有我的给定对象,我就将其返回给客户端(ASP.NET MVC),其控制器负责将从WCF服务返回的对象映射到VIEWMODEL.

我想知道我这样做是正确的,即WCF服务后面的服务层和存储库层?

并且控制器负责从WCF服务返回的实际模型创建ViewModel.

此外,我想知道是否真的有必要转换从存储库将返回到WTO服务返回的DTO准备好的REAL模型.

任何帮助真的很感激

asp.net-mvc wcf controller repository-pattern service-layer

1
推荐指数
1
解决办法
1878
查看次数

服务和服务层

快一点.服务层和服务层之间有什么区别?我无法在互联网上找到一个好的答案

c# design-patterns service-layer

1
推荐指数
1
解决办法
745
查看次数

服务层是否充当DAL的外观?

我正在阅读有关服务层和存储库的信息.现在我想知道服务层是否必须包装dal.我正在使用存储库和MVP模式进行大量工作.演示者现在拥有业务逻辑.但是我想的越多,它就不是将业务逻辑放在演示者和数据访问层中的逻辑场所.所以这就是服务层的用武之地.

但是,演示者现在是否与服务层进行了对话?是否"允许"演示者可以访问存储库?或者一切都应该通过服务层?在后一种情况下,服务层只是一个中间人:

MyFooService:

public List<Foo> GetAllFoo()
{
   var listFoo = new FooRepository().GetAll().TiList();

   return listFoo;
}
Run Code Online (Sandbox Code Playgroud)

主持人:

public List<Foo> GetAllFoo()
{
   var listFoo = new MyFooService().GetAllFoo();

   return listFoo;
} 
Run Code Online (Sandbox Code Playgroud)

是好的方法吗?或者"允许"演示者直接调用存储库?

c# oop repository service-layer

1
推荐指数
1
解决办法
1424
查看次数

ASP.NET MVC和服务层依赖注入

我有一些构造函数的问题,controller并且service被调用controller.

这是我的服务:

// model state dictionary for validation
private ModelStateDictionary _modelState;

// initialize UnitOfWork
private IUnitOfWork _unitOfWork;

public TownService(ModelStateDictionary modelState, IUnitOfWork unitOfWork)
{
    _modelState = modelState;
    _unitOfWork = unitOfWork;
}
Run Code Online (Sandbox Code Playgroud)

现在在我的控制器中我想创建新服务,传递控制器this.ModelState但不想添加UnitOfWork内部控制器.

像这样的东西:

private ITownService _townService;

public TownController()
{
    _townService = new TownService(this.ModelState, null);
}
Run Code Online (Sandbox Code Playgroud)

所以考虑的一切UnitOfWork都是在服务内部完成的.控制器只是传递它自己modelState,服务是创建新的服务UnitOfWork.

这可能也是好方法吗?我怎样才能做到这一点?或者我应该new UnitOfWork在控制器中添加而不是null参数?

因为我想尽可能地分离Core,DAL,Web,以便一切都发挥作用,并且在控制器和服务中添加UnitOfWork似乎是不好的方式......

谢谢.

.net asp.net-mvc dependency-injection unit-of-work service-layer

1
推荐指数
1
解决办法
2329
查看次数

具有干净架构和 AutoMapper 的 asp.net core - 将 DTO 通过服务层传递到控制器

我构建了一个具有干净架构的 asp.net core Web api,我的层是:

  • 网络应用程序接口
  • 服务层
  • 领域层
  • 数据层

在我的 Web API 中,我从外部 Exchange Web 服务加载数据。我想为我的客户提供我自己的 Web API。

为此,我在数据层实现了一个存储库,该存储库从外部 Web 服务获取数据作为 Class 的对象Appointment

在服务层,我使用 AutoMapper 将对象映射到我自己的类EventDTO

现在我不知道从 Web API 控制器访问这些数据的最佳实践是什么。

在我看来,当遵循干净的架构原则时,我必须EventDTOEventEntity. 但是当我这样做时,我有两个 100% 相同的对象,因为没有逻辑,EventEntity并且我做了两次相同的映射。那没有意义?!?

但是当我将直接传递EventDTO给控制器​​时,它会打破干净架构的原则吗?

事件控制器.cs

namespace Example.API.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class EventController : ControllerBase
    {
        private readonly IEventService eventService;

        public EventController (IEventService eventService)
        {
            this.eventService = eventService ?? throw new ArgumentNullException(nameof(eventService));
        }

        [HttpGet]
        public async Task<IActionResult> …
Run Code Online (Sandbox Code Playgroud)

dto automapper service-layer clean-architecture asp.net-core-webapi

1
推荐指数
1
解决办法
5460
查看次数