问题标签 [three-tier]

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 投票
4 回答
867 浏览

c# - 三层架构问题

我有一个具有三层架构的 ASP.NET 应用程序:

  • 表示层:ASP.NET

  • 业务层:C# 库。


  • 数据访问层:带有ADO.Net Entity Framework 对象的 C# 库。

业务层上的某些方法会返回 ADO.NET 实体对象,但是,数据访问层在表示层不可见,我不能这样做。

我的问题是:在设计视图中,在表示层中公开实体对象是否正确?我想我只需要将数据层库与 ASP.NET 应用程序链接起来。

谢谢!

0 投票
3 回答
127 浏览

sql - 尝试返回给定 id 和相同 id + 偏移量之间的行,大多数逻辑应该去哪里确定如何检索数据?:BLL 或 DAL

在我的数据库中,我有一个名为ThingsInACircle. 每次将 aThing添加到 时ThingsInACircle,都会添加一个ThingId自动递增的 a。

把这张表中的 想象Things成一个圆圈。
SELECT Thing FROM ThingsInACircle WHERE ThingId = 10旁边是
SELECT Thing FROM ThingsInACircle WHERE ThingId = 11
还有……
SELECT Thing FROM ThingsInACircle WHERE ThingId = min(ThingId)旁边
SELECT Thing FROM ThingsInACircle WHERE ThingId = max(ThingId)

我想说:对于给定的 ThingId 和偏移量,返回 ThingsInACircle 中从 ThingId 到 (ThingId + offset) 的所有记录(偏移量可能为负数)。

因此,以此为例进行设置:

以下是我们的 ThingId 列表:1 2 3 4 5 6 7 8 9

如果我想要 @ThingId = 2 和 @offset = 3 的所有 ThingId,则没有问题

它会返回:2 3 4 5

但是,如果我想要 @ThingId = 8 和 @offset = 3 的所有 ThingId,那么就有问题了

该函数应返回:7 8 9 1

所以这是我的困境,我的数据访问层是否应该包含一个使用更复杂的存储过程的查询 (选择最小值、最大值并使用 if & else 来确定它们是否已被超过)来确定要检索哪些记录以进行处理记录被链接成一个圆圈?

或者业务逻辑层是否应该确定用户是否请求了超过 min 或 max 的 id + 偏移量,然后使用简单的 DAL 方法来完成它需要返回的内容?

这可能只是一个见仁见智的问题。前两天刚开始学习三层结构,是跟着微软教程学的,所以我想了解一下有些人认为DAL和BLL应该如何形成:如果DAL应该简单,BLL应该做所有的验证......或者反过来......或者我一起错过的东西。

0 投票
2 回答
736 浏览

asp.net - ASP.NET 三层

我想使用三层架构开发基于 ASP.net 和 Oracle 的应用程序,其中数据访问层将保存在完全不同的服务器(Linux)上。我之前发布了一个问题,有人建议我使用 General asp 和 NHibernate。现在,在我启动 Web 应用程序之前,我想确定这一点。请详细分享您的想法。

谢谢

0 投票
2 回答
1004 浏览

java - 架构和包

在分层架构中,您有表示层、逻辑层和数据层。

到目前为止,我一直将类分为域、​​服务和 dao 包。这表示具有 POJO/JPA 实体、业务逻辑和数据访问层的模型。

我想可以将域和服务分组以形成逻辑层,但这会在表示层或 UI 层上留下一个问号。在这一层中,根据类的性质将类分组到包中是否有任何约定,甚至是不成文的?还是由领导项目的人来欣赏?

作为一个额外的指示,我目前正在试验 Web 应用程序,并使用“servlet”包对 servlet 进行分组,并为 ResponseHeaderFilters、ServletContextListeners 和实用程序类使用“web”包。我很想听听桌面应用程序是如何完成的。

0 投票
1 回答
97 浏览

c# - 插入值时需要 GUI 层的帮助

我在我的网页中输入客户详细信息,这些字段包括 Customerid、Customername、ProductName、Quantity、Rate、Total、Discount、NetTotal。如果我在应用程序的相应字段中输入数量和费率。所有字段都应该自动输入,并且已经在 BAL 层类中完成了计算。但是每当我在数量和费率字段中输入任何值时,其他相应的字段总是只显示 0 值,这是不期望的。这是我的所有代码:

数据输入页面:

BAL 类:

0 投票
5 回答
523 浏览

c# - 在 Winforms 中编写代码的最佳方式是哪种?

编写代码的最佳方法是什么?

(1) 喜欢直接在button_click()事件中写代码。

或者

(2)制作我在button_click()事件中编写的代码的功能并将该函数编写在一个类中,然后我应该在事件中调用该函数。button_Click()就像它被调用three-tier approach来编写代码一样?

就像在button_Click()事件中我编写代码以将记录保存在中一样csv file from datatable。所以我应该在button_Click()事件中编写该代码,或者我应该创建一个新函数和一个新类并将该代码编写在作为新类的函数中并在button_Click()事件中调用该函数.

这只是一个例子,但我正在谈论在我的应用程序中编写的所有代码,它们是appropriate and best way to write the code什么以及有什么好处?请注意,我使用 c# 在 Winforms 中编写代码。

0 投票
5 回答
328 浏览

java - 配置应该放在哪里?

我有一个结构如下的应用程序:

  • 领域
  • 主要的
  • 服务
  • 实用程序

我创建了一个从 XML 文件中读取应用程序配置的类。问题是它应该放在哪里?

通过反射,我会将它放在实用程序中,但实用程序类具有静态方法并且是无状态的,而此类使用 Apache Commons XMLConfiguration 的实例。我是否应该只调整方法,以便此实例仅限于此类中方法的范围?

0 投票
4 回答
89 浏览

database - 数据库是否应该仅用于持久性

许多具有 3 层架构的 Web 应用程序都在应用程序服务器中进行所有处理,并使用数据库进行持久性,只是为了具有数据库独立性。在为数据库支付了巨额费用之后,在应用服务器上进行包括批处理在内的所有处理而不使用数据库的功能似乎是一种浪费。我很难说服人们我们需要两全其美。

0 投票
7 回答
5542 浏览

asp.net-mvc - MVC(ASP.NET MVC)带3层架构如何协同工作?

我正在编写一个设计文档,我团队中的人愿意从 ASP.NET WebForm 迁移到 ASP.NET MVC。这很好,但我很难理解 MVC 如何在 3 层(数据层、业务层和表示层)架构中工作。我们可以说模型、视图和控制器是表示层的一部分吗?模型是业务层的一部分吗?

简而言之,MVC 和 3 层架构如何协同工作?谢谢您的帮助!

0 投票
3 回答
1002 浏览

python - 模型-视图-演示者和三层?

两种架构有什么区别:Model-View-Presenter 和 Three-Tier?

我理解每个单独阅读时的定义,但我不能轻易看出它们有何不同。是桌面还是网页?我目前正在用 Python 开发一个简单的桌面应用程序,以通过 GUI 可视化复杂的数据模型。

谢谢!