问题标签 [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.
asp.net-mvc - SignalR 和 ASP.NET MVC:业务层集成
我们的应用分为几层,最重要的是:
- 数据层
- 业务层
- 表示层 (ASP.NET MVC 5)
业务层必须通过 SignalR(表示层)向连接的客户端直播一些信息。这样做的最佳做法是什么?
业务层是否应该使用 OWIN 自托管 SignalR 服务器?或者,如果表示层定义了一个由业务层调用以将信息推送到表示层的 Web 服务(它包含信号器逻辑),那么它是否更干净?
有没有更好的想法?
非常感谢列维
c# - 如何在业务层使用简单的注入器进行存储库
我希望在我的 MVC 层中根本没有存储库。
我的 DAL 项目层中有通用EFRepository
的 ,IRepository
和PASContext
(从 DbContext 继承)。
我已经在我的 MVC 项目下安装了具有快速启动功能的 Simple Injector,这使我可以进入我想要的存储库的每个控制器的构造函数。
但在我的解决方案中,我也有 BLL 项目,我希望 MVC 层只与 BLL 层对话,因为这是项目架构,将来我想在 BLL 层的类中添加逻辑。
我也不想在我的 BLL 层中创建上下文,但是存储库没有构造函数,它接受 0 个参数,这是我的ProductBLL
类:
如何在BLLProduct
不创建存储库/上下文的情况下从控制器或单元测试启动类?所以我可以在这里保持我的抽象。
我知道我需要在这里以某种方式使用简单注射器,我只是不知道如何。
c# - 将业务层对象声明为 asp.net 母版页中的公共属性是一个好的举措吗?
我目前在一个 ASP.Net C# 应用程序中工作,并且我正在使用具有数据集和业务层的 DAL 设计模式。
通常,当我在 C# 代码中请求数据时,我会创建一个业务层对象:
然后我可以通过调用我在 BLLAccount 中声明的函数来使用它: oblAccount.GetAccounts();
这个例程在每个页面上重复,每个事件范围内的每个数据请求都重复。你可以理解这很快就会很烦人,所以我声明了一个页面属性,所以我不必每次都重新创建相同的对象:
这样对象只在我需要它的时候创建,并且可以在每个事件范围内重复使用。这在页面上很有用,但现在我正在创建许多页面,甚至这个解决方案也变得烦人。我首先想到的是我目前正在使用母版页和子页,那么为什么不将页面属性放在母版页上,使用这个小片段在我的 aspx 中引用母版页呢?
并在我的代码中以这种方式引用它:
这很酷而且非常好,但我不确定这对服务器的内存和应用程序的性能有什么影响。如果未使用时间过长,我的页面属性会被清理吗?初始负载会不会太重?在业务层本身上创建一个构造函数更好还是那部分不重要?
asp.net - 访问业务层缓存中的数据
我正在尝试开发三层架构。
数据访问层:将有连接字符串、执行存储过程、执行选择查询等方法。大多数情况下,这将返回数据集
业务层:可以从数据集中访问数据集并为 Web 表单提供排序和过滤数据。
表示层:将拥有所有网页、用户控件(如果有)。该层只能访问业务层
这对我来说没问题,直到要求仅限于显示记录。但是,当涉及到分页或排序时,每次我都必须绑定新数据,从而导致不必要的数据库命中。为了避免这种情况,我将数据集存储到缓存中并将其转换为数据集对象。是否有其他相同的选择
c# - 如何使这些方法参数化?
我的业务层中有这样的方法。
在我的数据访问层中,我创建了这样的执行非查询。
在我的数据库连接层中,我已经这样实现了。
我在三个不同的类中有这些方法。我想知道的是如何更改这些方法以使用参数化查询,因为我在这里使用字符串连接而不更改层架构。我怎样才能做到这一点?
asp.net-mvc - 在 asp.net mvc 中将插入、更新、删除方法放在哪里
我想问在哪里放置插入,使用存储过程更新删除方法。当我为 Dataaccess 和业务逻辑类添加类库时.. 并在我的 mvc 4 项目中引用了这个类库。现在我想知道在 mvc 项目模型或类库 BL 类中放置插入、更新、删除方法的位置
c# - 我应该开始将物理业务层添加/转换到现有项目吗?
就在最近,我们的应用程序扩展为支持 4 种不同的 UI。
我们将业务逻辑集成到我们的数据层中。
我们没有将 UI 与数据层分开的物理业务层。通常在 UI 中,直接调用数据库。显然,这会导致问题。
我的问题是,我是否应该实现一个物理业务层,并且随着时间的推移,将数据层中的现有逻辑迁移到新的业务层。或者我应该将业务层与数据层保持在同一个 dll 中?
您对在没有业务层的应用程序中添加业务层有何想法?
entity-framework - 是否应该将应用服务注入到域服务中
我正在使用具有以下层的 Entity Framework 6 开发 WinForms 应用程序:
- 介绍
- 应用
- 领域
- 基础设施
当用户从 UI 中单击保存按钮时,它会调用应用程序层中的应用程序服务并传入请求。然后,应用程序服务使用该请求调用域服务。域服务调用域模型中的多个实体来对请求中使用的数据执行验证。
域模型中的一个或多个验证需要来自存储库的信息,以确定从表示层接收到的请求中的数据是否符合某些业务规则。
我正在考虑两种选择来解决这个问题。
让应用程序服务从存储库中检索验证所需的信息,并将这些值传递给域服务,域服务将调用域模型和实体来验证传入的规则和值请求。然后让应用服务在域服务完成验证后保存请求,这将导致将控制权返回给同步等待验证完成的应用服务。如果我这样做,那么域层将没有对存储库的直接或间接(注入)引用。如果我这样做,域服务的单元测试会更容易,因为没有注入任何东西来执行验证。它需要的一切都已经传入。
在调用域服务以验证请求时,将应用程序服务的实例注入其中。然后,域服务可以使用注入的应用程序服务从存储库中获取信息,其服务合同在域层中定义。一旦所有信息都可用,它会根据需要传递给各种实体以验证规则和值。验证完成后,域服务使用注入的应用程序服务保存请求。当域服务完成并退出时,它会将保存操作的状态返回给一直在等待验证完成的应用程序服务。外部等待的应用程序服务然后可以将保存的结果返回给 UI。
哪种选择或其他行动方案会更好?提前致谢。
c# - 简单的数据操作:在实体模型或业务层?
我正在开发一个实现传统数据/业务/演示分层方法的 asp.net MVC 应用程序。
我的一个实体模型(代表一个人)包含地址/联系信息,包括“州”字段。我的数据源(我几乎无法控制)以全文形式提供状态值(例如:“California”与“CA”、“Florida”与“FL”等)。
我创建了一个静态帮助器类,我们打算用它来将全文值转换为它们的缩写。
我的问题是,应该在哪里引用这个助手类以及应该在哪里进行转换?
我看到以下选项:
- 在模型中使用引用此静态类并在 get 上执行转换的访问器。类似于以下内容:
每当使用此实体模型时,在业务层中执行转换
每当显示此值时,在表示层中执行转换
我喜欢在实际模型中执行此操作的简单性(通过 get 访问器),但这闻起来有点像业务逻辑。其他选项意味着我将不得不在许多地方进行转换(重复逻辑、遍历人员列表等)。
谢谢。
c# - ASP.NET MVC UnitOfWork 和业务服务/层
需要您帮助为我的业务层实施 UnitOfWork。想要将多个不同的业务服务调用包装到一个事务中。假设我使用实体框架作为我的存储库层,并且我有一个额外的业务层用于验证和其他业务规则。在这个例子中非常非常简单。
在我的控制器中:
...添加用户调用已经保存更改,但我想在添加合同后保存更改。那么我可以执行以下操作吗?或者这是某种糟糕的设计?!
创建 UnitOfWork 类:
将我的服务更改为:
然后在我的控制器中我做:
这是一个有效的方法吗?!真的需要你的帮助和想法......
谢谢!!!!