问题标签 [3-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 投票
1 回答
161 浏览

model-view-controller - 业务层模块分离

我们的新项目刚刚开始,我们遇到了与其架构相关的问题。

我们有一个 3 层架构:

  1. 网页界面
  2. 商业
  3. 资料库

每个层都只引用它下面的层。通信是通过我们所说的entitiesbusiness objects(BO) 完成的,如下所示:

<--X-->表示使用 X 类型的对象进行通信。

因此,我们有例如UserEntity实体和UserBO。另一种类型是再次具有TicketEntity和的票Ticket

目前,我们在层中有一些不同的垂直切片,例如AccountsDataRepositories、Business 和 WebUI 中的用户,这些切片定义明确并且不与其他切片(如Tickets.

现在的问题是一张票有一个买家是用户,我们不知道在我们的架构中应该在哪里连接票和用户。业务组件应该在它们之间进行交互,还是数据层应该将用户映射到工单?

更具体地说,我们有一种方法用于创建驻留在 Business 中并从 WebUI 调用的工单。它将票证和“用户”的详细信息作为参数,我们还不知道它应该是用户类型的对象还是只是用户名/ID。如果我们传递一个用户对象,那么演示文稿应该在调用 CreateTicket 之前获取用户。但是,如果 webui 传递了 id,那么业务层应该解析用户对象,这需要在门票(业务)中添加对用户业务组件的引用。

0 投票
1 回答
100 浏览

java - 在这个包结构中放置 Reader/Writer/Emailer ... *er 类的位置?

我最初被教导构建 3 层的方式如下:

  • 领域
  • 服务
  • 实用程序
  • jsf(豆类)...

可实例化的 *er 类不适合这些包中的任何一个,尤其是类主要对静态方法进行分组的实用程序。可以将其添加到服务中作为一个侧面的想法,但这感觉很尴尬。

从那以后,我看到了一个更复杂的包结构(可能是从 Maven 借来的):

  • 常量(硬编码常量和枚举)
  • dao.impl(接口的实现)
  • 模型
  • 资源(用于属性和配置文件)
  • 服务
  • 服务.impl
  • 你...

但是,我仍然看不到可以在哪里放置 *er 类,现在我看到其他类型的类弹出,例如自定义异常和 Spring 的原始模式(见下文)。一般来说,这些似乎是您通常在框架/API 中找到的类类型。


您将如何对这些或任何其他“不可分类”进行分组?

0 投票
1 回答
4653 浏览

c# - 举一个 3 层架构的好例子?

http://www.codeproject.com/KB/architecture/three_tier_architecture.aspx

这个网站是否提供了一个关于 3 层架构的好例子?我认为这是一个很好的例子,但似乎有一些 1 星评估者实际上说这不是一个好习惯。

所以我想知道你们中的任何人都可以给我一个好的 3 层应用程序的例子吗?

抱歉,我想我可能不清楚,我正在寻找代码:)(在 OOP 中)

0 投票
1 回答
872 浏览

3-tier - 3层和3层架构

3层架构和3层架构不一样?

我听到有人说 3 层架构是应用程序中的应用程序层、业务逻辑、数据层。但是如果将这 3 层放在 3 台不同的机器上,那么它就是 3 层应用程序。

这是对的吗?

0 投票
2 回答
496 浏览

vb.net - vb.net 中的 3 层帮助

我在 3 层开始了一个简单的项目。添加了一个 Windows 窗体应用程序作为表示层,一个类库作为 DAL,另一个类库作为 BLL。

现在,我在 Presentaion 层设计了一些表单并尝试访问 BLL 类库。但是,我没有得到 BLL 类库的命名空间。

我试过Imports BLL了,但没有显示 BLL,只显示了表示层的命名空间。

然后我对 DAL 和 BLL 进行了同样的尝试,这些项目都无法访问解决方案中的其他项目。

如何解决这个问题?

0 投票
5 回答
1928 浏览

c# - Linq to Entities - 3 层架构

在过去的几个月里,我学到了很多关于 Linq-To-Entities 和带有 DAO/DAL/Repository 的 3 层架构的知识。现在我脑子里有一些事情一直困扰着我。我有这三个问题,您将在下面看到。

有很多方法可以使存储库工作,但是使存储库以性能方式工作的“方法”是什么。

1)在构造函数中初始化一个数据上下文

2)使用“使用”

3)以另一种方式(请评论)

我会把你的建议放在这里供其他人评论


此外,似乎有些人说存储库应该向业务层返回一个 IQueryable,而另一些人则说最好返回一个 IList。您对此有何看法?


第一个问题中的上述代码示例都指向Repository,但是在businesslayer中实现repository的最佳方法是什么(在构造函数中初始化,使用“Using”??)

0 投票
3 回答
4760 浏览

vb.net - VB.net 三层架构入门

我最近开始开发一个具有 BLL、DAL 和表示层的 3 层架构项目。我使用的参考是网络上的示例 3 层应用程序,它们都彼此不同。所以,现在我很困惑哪一个是正确的 3 层。

能否请您指出一本正确的教程或书籍,它遵循正确的 3 层架构,以便我可以遵循它。

0 投票
2 回答
251 浏览

silverlight - Silverlight 3 层应用程序验证

我将使用 Silverlight + WCF + ORM 开发 3 层应用程序

现在我的问题是,如果我在数据库层使用 ORM,那么我如何在演示层、业务层公开类以进行客户端验证?

0 投票
3 回答
2016 浏览

delphi - 使用 D7 的 3 层应用程序架构

到目前为止,我有使用 COM+ 技术构建 3 层应用程序的经验。这是一项庞大而先进的技术,支持许多有趣的概念。对于在 LAN 上运行的应用程序,它可以正常工作。

现在我打算建立3层系统,仍然基于D7。不同之处在于它应该在互联网上工作。客户将分散在世界各地。根据我在这种情况下的经验,我不会依赖 com+。Com+ 基本上需要稳定的连接,防火墙服务器的配置并不容易,它必须打开相当广泛的端口(即使你缩小了它)。

所以问题是。哪种架构(Web 服务、服务或其他)在生产中适合您?我想我想要一个监听一个 tcp 端口的服务。我可以在其中保存可用于打开会话的会话客户端参数。此外,某种内置加密将是一个加号。

感谢帮助!

0 投票
1 回答
597 浏览

asp.net - 在 3 层应用程序中使用中继器控件的优缺点是什么?

在数据访问或任何其他意见方面。

如果可能,请说明更好的替代方案(如果有)。