问题标签 [business-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 回答
1534 浏览

asp.net-mvc - SignalR 和 ASP.NET MVC:业务层集成

我们的应用分为几层,最重要的是:

  • 数据层
  • 业务层
  • 表示层 (ASP.NET MVC 5)

业务层必须通过 SignalR(表示层)向连接的客户端直播一些信息。这样做的最佳做法是什么?

业务层是否应该使用 OWIN 自托管 SignalR 服务器?或者,如果表示层定义了一个由业务层调用以将信息推送到表示层的 Web 服务(它包含信号器逻辑),那么它是否更干净?

有没有更好的想法?

非常感谢列维

0 投票
1 回答
899 浏览

c# - 如何在业务层使用简单的注入器进行存储库

我希望在我的 MVC 层中根本没有存储库。

我的 DAL 项目层中有通用EFRepository的 ,IRepositoryPASContext(从 DbContext 继承)。

我已经在我的 MVC 项目下安装了具有快速启动功能的 Simple Injector,这使我可以进入我想要的存储库的每个控制器的构造函数。

但在我的解决方案中,我也有 BLL 项目,我希望 MVC 层只与 BLL 层对话,因为这是项目架构,将来我想在 BLL 层的类中添加逻辑。

我也不想在我的 BLL 层中创建上下文,但是存储库没有构造函数,它接受 0 个参数,这是我的ProductBLL类:

如何在BLLProduct不创建存储库/上下文的情况下从控制器或单元测试启动类?所以我可以在这里保持我的抽象。

我知道我需要在这里以某种方式使用简单注射器,我只是不知道如何。

0 投票
1 回答
403 浏览

c# - 将业务层对象声明为 asp.net 母版页中的公共属性是一个好的举措吗?

我目前在一个 ASP.Net C# 应用程序中工作,并且我正在使用具有数据集和业务层的 DAL 设计模式。

通常,当我在 C# 代码中请求数据时,我会创建一个业务层对象:

然后我可以通过调用我在 BLLAccount 中声明的函数来使用它: oblAccount.GetAccounts();

这个例程在每个页面上重复,每个事件范围内的每个数据请求都重复。你可以理解这很快就会很烦人,所以我声明了一个页面属性,所以我不必每次都重新创建相同的对象:

这样对象只在我需要它的时候创建,并且可以在每个事件范围内重复使用。这在页面上很有用,但现在我正在创建许多页面,甚至这个解决方案也变得烦人。我首先想到的是我目前正在使用母版页和子页,那么为什么不将页面属性放在母版页上,使用这个小片段在我的 aspx 中引用母版页呢?

并在我的代码中以这种方式引用它:

这很酷而且非常好,但我不确定这对服务器的内存和应用程序的性能有什么影响。如果未使用时间过长,我的页面属性会被清理吗?初始负载会不会太重?在业务层本身上创建一个构造函数更好还是那部分不重要?

0 投票
1 回答
122 浏览

asp.net - 访问业务层缓存中的数据

我正在尝试开发三层架构。

  • 数据访问层:将有连接字符串、执行存储过程、执行选择查询等方法。大多数情况下,这将返回数据集

  • 业务层:可以从数据集中访问数据集并为 Web 表单提供排序和过滤数据。

  • 表示层:将拥有所有网页、用户控件(如果有)。该层只能访问业务层

这对我来说没问题,直到要求仅限于显示记录。但是,当涉及到分页或排序时,每次我都必须绑定新数据,从而导致不必要的数据库命中。为了避免这种情况,我将数据集存储到缓存中并将其转换为数据集对象。是否有其他相同的选择

0 投票
1 回答
197 浏览

c# - 如何使这些方法参数化?

我的业务层中有这样的方法。

在我的数据访问层中,我创建了这样的执行非查询。

在我的数据库连接层中,我已经这样实现了。

我在三个不同的类中有这些方法。我想知道的是如何更改这些方法以使用参数化查询,因为我在这里使用字符串连接而不更改层架构。我怎样才能做到这一点?

0 投票
2 回答
659 浏览

asp.net-mvc - 在 asp.net mvc 中将插入、更新、删除方法放在哪里

我想问在哪里放置插入,使用存储过程更新删除方法。当我为 Dataaccess 和业务逻辑类添加类库时.. 并在我的 mvc 4 项目中引用了这个类库。现在我想知道在 mvc 项目模型或类库 BL 类中放置插入、更新、删除方法的位置

0 投票
1 回答
52 浏览

c# - 我应该开始将物理业务层添加/转换到现有项目吗?

就在最近,我们的应用程序扩展为支持 4 种不同的 UI。

我们将业务逻辑集成到我们的数据层中。

我们没有将 UI 与数据层分开的物理业务层。通常在 UI 中,直接调用数据库。显然,这会导致问题。

我的问题是,我是否应该实现一个物理业务层,并且随着时间的推移,将数据层中的现有逻辑迁移到新的业务层。或者我应该将业务层与数据层保持在同一个 dll 中?

您对在没有业务层的应用程序中添加业务层有何想法?

0 投票
2 回答
324 浏览

entity-framework - 是否应该将应用服务注入到域服务中

我正在使用具有以下层的 Entity Framework 6 开发 WinForms 应用程序:

  • 介绍
  • 应用
  • 领域
  • 基础设施

当用户从 UI 中单击保存按钮时,它会调用应用程序层中的应用程序服务并传入请求。然后,应用程序服务使用该请求调用域服务。域服务调用域模型中的多个实体来对请求中使用的数据执行验证。

域模型中的一个或多个验证需要来自存储库的信息,以确定从表示层接收到的请求中的数据是否符合某些业务规则。

我正在考虑两种选择来解决这个问题。

  1. 让应用程序服务从存储库中检索验证所需的信息,并将这些值传递给域服务,域服务将调用域模型和实体来验证传入的规则和值请求。然后让应用服务在域服务完成验证后保存请求,这将导致将控制权返回给同步等待验证完成的应用服务。如果我这样做,那么域层将没有对存储库的直接或间接(注入)引用。如果我这样做,域服务的单元测试会更容易,因为没有注入任何东西来执行验证。它需要的一切都已经传入。

  2. 在调用域服务以验证请求时,将应用程序服务的实例注入其中。然后,域服务可以使用注入的应用程序服务从存储库中获取信息,其服务合同在域层中定义。一旦所有信息都可用,它会根据需要传递给各种实体以验证规则和值。验证完成后,域服务使用注入的应用程序服务保存请求。当域服务完成并退出时,它会将保存操作的状态返回给一直在等待验证完成的应用程序服务。外部等待的应用程序服务然后可以将保存的结果返回给 UI。

哪种选择或其他行动方案会更好?提前致谢。

0 投票
1 回答
88 浏览

c# - 简单的数据操作:在实体模型或业务层?

我正在开发一个实现传统数据/业务/演示分层方法的 asp.net MVC 应用程序。

我的一个实体模型(代表一个人)包含地址/联系信息,包括“州”字段。我的数据源(我几乎无法控制)以全文形式提供状态值(例如:“California”与“CA”、“Florida”与“FL”等)。

我创建了一个静态帮助器类,我们打算用它来将全文值转换为它们的缩写。

我的问题是,应该在哪里引用这个助手类以及应该在哪里进行转换?

我看到以下选项:

  • 在模型中使用引用此静态类并在 get 上执行转换的访问器。类似于以下内容:
  • 每当使用此实体模型时,在业务层中执行转换

  • 每当显示此值时,在表示层中执行转换

我喜欢在实际模型中执行此操作的简单性(通过 get 访问器),但这闻起来有点像业务逻辑。其他选项意味着我将不得不在许多地方进行转换(重复逻辑、遍历人员列表等)。

谢谢。

0 投票
1 回答
245 浏览

c# - ASP.NET MVC UnitOfWork 和业务服务/层

需要您帮助为我的业务层实施 UnitOfWork。想要将多个不同的业务服务调用包装到一个事务中。假设我使用实体框架作为我的存储库层,并且我有一个额外的业务层用于验证和其他业务规则。在这个例子中非常非常简单。

在我的控制器中:

...添加用户调用已经保存更改,但我想在添加合同后保存更改。那么我可以执行以下操作吗?或者这是某种糟糕的设计?!

创建 UnitOfWork 类:

将我的服务更改为:

然后在我的控制器中我做:

这是一个有效的方法吗?!真的需要你的帮助和想法......

谢谢!!!!