问题标签 [bll]

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 回答
11054 浏览

model-view-controller - MVC 模式与 DAL/BLL 设计模式有何不同(如果有的话)?

我正在浏览 Microsoft 的 ASP.NET 网站上的早期数据访问教程,我突然想到,这一切似乎与我读到的关于使用MVC 模式分离逻辑和表示代码的内容非常相似。作为一个新手,我还没有实现 MVC 模式,但我很好奇这两种设计结构有何不同,以及我是否应该将注意力集中在其中一种上,尤其是在网页设计的背景下。

0 投票
4 回答
372 浏览

data-access-layer - 在 BLL 对象中编写一堆 2 个线性函数只是为了重新路由到 DAL 是否值得?

这对我来说似乎很愚蠢。我没有得到什么?

0 投票
4 回答
1303 浏览

sharepoint - Sharepoint Web 部件管理

我在 Sharepoint 和 Project Server 上开发了一个相当大的项目,设计为多层应用程序。我以编程方式管理某些 Web 部件页面上的 Web 部件。根据用户在其中一个网页中的选择,将适当的网页部件添加到另一个网页部件页面的网页部件集合中。我的问题是我根本不知道在哪里管理 Web 部件,我应该在 BLL 中进行管理,然后让包含业务逻辑的程序集引用 Web 部件所在的 UI 程序集吗?(我需要在将 Web 部件添加到集合时对其进行实例化,因为我不想使用表示 Web 部件 dwp 的硬编码字符串。)

0 投票
2 回答
8258 浏览

c# - .NET 中的 DAL 和 BLL

Microsoft 为 ASP.NET (2.0) 应用程序提供了此DAL/BLL 设计建议。我知道一些替代方案,并且我已经在 SO 上阅读了相关问题。但是我想知道这个提议的解决方案现在是否值得实施,你知道有什么具体的缺点吗?

我想开发 DAL/BLL 组件供公司内部使用,从各种应用程序和脚本访问客户和员工数据等。然而,在我开始构建这些东西之前,我想确保这个解决方案是“好的”。例如,BLL传递数据表而不是封装任何东西,您没有包含逻辑的隔离业务对象。它基本上只是一个愚蠢的层,可以稍微简化 CRUD 操作并允许控件的数据绑定。

在该领域有经验的人可以指出这种方法的优缺点吗?

0 投票
5 回答
872 浏览

file - 文件管理:由业务层的数据访问层处理?

所以,我正在开发这个基于存储库模型的基于 Web 的应用程序,一个想要的 DDD 傻瓜,使用 StructureMap....等等等等。

该应用程序的一方面允许用户上传和管理文件。

应该在哪里、哪一层负责管理这些用户文件的保存/删除?

业务层,还是数据访问层……?

无论出于何种原因,它似乎都不是一个直截了当的答案......

从历史上看,我只是在 GUI 中打了它一巴掌,但努力使程序更正确,并重新思考应该处理这些服务的内容。也许我只是回答了我自己的问题......

0 投票
1 回答
787 浏览

linq-to-sql - 通过 BLL 问题更新 Linq to SQL - 最佳实践

设置:

我有一个包含许多字段的大型表单,这些字段被收集以更新 Product 对象。因此,在 ASPX 页面中,用户更改需要更新的字段并点击提交。在后面的代码中,我做了这样的事情;

我将 Linq 的 Product 部分类扩展为 SQL 以将此方法(GetProductById)添加到对象

这是扩展产品部分类中的更新方法。我更新数据库、发送电子邮件和更新历史表,所以我希望这种方法能够完成所有这些事情。

该项目还有 50 个字段,因此显然拥有一个收集所有 50 个字段的方法是荒谬的(而且我不想走那条路,因为调试 IMO 更难)

问题:

如果我使用 DataContext 通过 Linq to SQL 获取产品,那么我将永远无法再次更新它,因为它会出错,因为它无法附加和已经附加到另一个 DataContext 的实体。

问题:

因此,如果我通过 BLL 中的方法获取对象,在 ASPX 页面中更新它,然后尝试再次通过 BLL 发送更新以更新数据库,我应该怎么做呢?

0 投票
7 回答
5415 浏览

asp.net - 从 DAL 返回到 BLL 的内容

我目前有一个应用程序,其中包括:用户界面(网页)BLL(管理器和域对象)DAL(我的每个域对象的数据访问类)。

我在 UI 中使用以下内容来搜索域对象。

这是我的 BLL

最后这是我的 DAL

如何创建一个 IBook 对象并将其返回给 Manager?我正在考虑将一个 DataTable 从 BookDB 返回到 BookManager 并让它创建 Book Object 并返回它,但这似乎不正确。还有另一种方法可以做到这一点吗?

编辑:我决定将每一层分离到一个项目中,并在尝试添加对 BLL 的引用时在 DAL 层中遇到了循环依赖问题。我无法从 DAL 访问 Book Class 或 Interface 或 BLL 中的任何内容。我应该在这里使用 ado.net 对象并让我的经理从 ado.net 对象创建实际对象吗?这是它的布局方式

谢谢!

0 投票
7 回答
2878 浏览

design-patterns - 您是否允许 Web 层直接访问 DAL?

我对感知到的“最佳实践”感兴趣,这里有一点现实。

在 Web 应用程序中,您是允许您的 Web 层直接访问 DAL,还是应该先通过 BLL?

我说的是没有真正涉及“业务逻辑”的场景——例如一个简单的查询:“获取所有姓氏为 'Atwood' 的客户”。有任何逻辑的场景绝对会通过 BLL,所以我们称之为moo

虽然您可以将此方法封装在 BLL 对象中,但如果签名通常与 DLL 对象的签名完全相同,并且代码可能像将查询委托给 DLL 的单行代码一样简单,这似乎有点毫无意义.

如果你选择前者——使用 BLL 对象——你怎么称呼这些对象?(假设他们只是在 DLL 中提供一个查询层)。帮手?查询提供者?

请思想。

问候

马蒂

0 投票
3 回答
5349 浏览

dll - POCO、DTO、DLL 和贫血域模型

我正在查看POCO 和 DTO 之间的区别(看起来 POCO 是具有行为(方法?)的 dto),并遇到了 Martin Fowler 关于贫血域模型的这篇文章

由于缺乏理解,我想我已经创建了这些贫血的领域模型之一。

在我的一个应用程序中,我在“dto”dll 中定义了我的业务域实体。它们有很多与 getter 和 setter 相关的属性,其他的不多。我的业务逻辑代码(填充、计算)在另一个“bll”dll 中,而我的数据访问代码在一个“dal”dll 中。“最佳实践”我想。

所以通常我会像这样创建一个 dto:

并将其传递给 bll 层,如下所示:

反过来,它执行一些逻辑并将其传递给 dal 层,如下所示:

据我了解,要使我的 dto 成为 POCO,我需要使业务逻辑和行为(方法)成为对象的一部分。因此,而不是上面的代码,它更像是:

IE。我在对象上调用方法,而不是将对象传递给方法。

我的问题是 - 我怎样才能做到这一点,并且仍然保留关注点的“最佳实践”分层(单独的 dll 等......)。在对象上调用方法不就意味着必须在对象中定义方法吗?

请帮助我的困惑。

0 投票
8 回答
4059 浏览

entity-framework - 手动 DAL & BLL 与 ORM

哪种方法更好:1)使用第三方 ORM系统或2) 手动编写 DAL 和 BLL 代码以使用数据库?

1)在我们的一个项目中,我们决定使用 DevExpress XPO ORM 系统,但我们遇到了很多小问题,浪费了我们很多时间。amd 仍然时不时会遇到来自这个 ORM 的问题和异常,我们对这个“黑匣子”还没有完全的了解和控制。

2)在另一个项目中,我们决定从头开始编写 DAL 和 BLL。虽然这意味着要多次编写无聊的代码,但这种方法被证明更加通用和灵活:我们可以完全控制数据在数据库中的保存方式,如何从中获取数据等。所有的错误都可以以直接和简单的方式进行修复。

哪种方法通常更好?也许问题只是我们使用的 ORM(DevExpress XPO),也许其他 ORM 更好(例如 NHibernate)?

是否值得使用ADO 整体框架

我发现 DotNetNuke CMS 使用自己的 DAL 和 BLL 代码。其他项目呢?

我想了解您的个人经历:您在项目中使用哪种方法,哪种方法更可取?

谢谢你。