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

sql-server - 2 层是否是这种情况的有效选择

对于这种情况,2 层是否是一个有效的选择:

  1. sql server 数据库
  2. 业务永远不会需要超过几百个通过 LAN 连接到共享数据库的同时连接

  3. 事实上(我相信)开发 2 层应用程序的工作量要少得多
  4. 通过 LAN 自动更新客户端程序
0 投票
3 回答
2848 浏览

authentication - 使用 LDAP 身份验证登录到 2 层的 Peoplesoft App-Designer

我有一个启用了 LDAP 登录的数据库。通过 PIA 登录或通过应用程序服务器登录 app-designer 时,它工作正常。

我需要让 app-designer 允许我使用 LDAP 身份验证以 2 层模式登录。如果没有定制,这可能吗?

0 投票
1 回答
587 浏览

delphi - 软件设计:具有 ClientDataSet 和套接字的第 2 层应用程序

我的任务是创建一个第 2 层应用程序,如下所示:

MSSQL 数据库 <-> 服务器 <-> n-Client(n 表示许多)

客户端向服务器发送数据。服务器从数据库中选择内容,然后将其发送回客户端。目前我正在使用 Records 和 SendDataToSocket(url 如下)来做这件事。

我想使用通过套接字从服务器接收到的数据在客户端上使用 TDBGrid。目前它是这样的:

服务器: DB -> ADOQuery -> DataSetProvider -> ClientDataSet -> SaveToStream(MemoryStream)

客户端: ClientDataSet -> LoadFromStream(MemoryStream) -> DataSource -> DBGrid

我正在使用SendDataToSocket(Socket: TCustomWinSocket; Data: Pointer; DataSize: Integer; Buffer: TMemoryStream): Integer;

所以我想要做的是将服务器端的客户端数据集创建的流发送给使用 loadfromstream 读取流的客户端。SendDataToSocket 在这里可行吗?

我希望你明白我的意思。

0 投票
2 回答
2442 浏览

sql-server - 使用 VCL for web (intraweb) 作为将 web 界面添加到传统非分层 (2 层) Delphi win32 应用程序的技巧是否有意义?

我的团队正在维护一个巨大的客户端服务器 win32 Delphi 应用程序。它是一个客户端/服务器应用程序(厚客户端),它使用 DevArt (SDAC) 组件连接到 SQL Server。

业务逻辑通常被“困”在组件的事件处理程序中,无论如何,通过某种程度的重构,将业务逻辑移动到公共单元中是可行的(这项工作的很大一部分已经在重构期间完成了......维护遗留应用程序的人else write 非常令人沮丧,但这是一个非常常见的工作)。

现在有一个Web界面的请求,我当然有几个选项,在这个问题中我想专注于VCL for web(intraweb)选项。

这个想法是为客户端/服务器应用程序和 Web 应用程序使用公共代码(相同的 pas 文件)。我听说很多人将遗留应用程序从 delphi 转移到 intraweb,但在这里我也试图保留厚客户端。

思路是使用通用代码,可能是用一些编译器指令来写具体代码:

然后另一个问题是“迁移计划”,假设我有 300 个功能,而在第一个版本中,我将只有 50 个在 Web 应用程序中可用。如何跟踪它?我正在考虑(ab)使用 Delphi 接口来处理这个问题。例如对于用户身份验证,我可以在一个过程中移动所有相关代码并声明一个接口,如:

通过这种方式,当我在两个应用程序(Thick Client 和 Intraweb)中实现 IUserAuthentication 接口时,我知道该功能已“移植”到 Web。无论如何,我不知道这种方法是否有意义。我做了一个原型来模拟整个过程。它适用于“Hello world”应用程序,但我想知道它是否对大型应用程序有意义,或者这个接口想法只会适得其反并且可能适得其反。

我的问题是:这种方法有意义吗?(Interface的想法只是一个额外的想法,它不像上面描述的公共代码部分那么重要)它是一个可行的选择吗?

我知道这取决于很多类型的应用程序,无论如何通用,我的应用程序属于 CRM/会计领域,单个安装的并发用户数通常少于 20 个,峰值为 50 个。

额外评论(更新):我问这个问题是因为我没有 n 层应用程序,我认为 Intraweb 是拥有与胖客户端具有通用代码的 Web 应用程序的唯一选项。在我的具体情况下,从 Delphi 代码开发 Web 服务毫无意义,所以我的替代方法是使用 ASP.NET 编写 Web 界面(复制业务逻辑),但在这种情况下,我无法利用公共代码简单的方法。是的,我也许可以使用 dll,但我的代码不适合。

0 投票
1 回答
158 浏览

database - 课业帮助:

我正在写一篇关于数据库应用程序方面的两层和三层架构的比较文章。我只想确认几件事。

2 层是客户端 - 服务器 2 层是客户端上的应用程序 - 服务器上的数据库。2层实现直接通信。基于直接通信的安全性差?然而,适用于用户少于 50 人的小型基于 Intranet 的环境。

就用户界面而言,两层通常使用 Java 应用程序(即 Swing),而三层则使用 Web 浏览器?

3层更具可扩展性。3 层使用中间层更安全。3 层是客户端 - Web 服务器 - 数据库服务器

我希望你们能反驳我所写的大部分内容,并揭露一些我需要进一步研究的领域。

谢谢

0 投票
1 回答
367 浏览

.net - 是否有关于如何从 2 层应用程序连接到 SQL Server 数据库的最佳实践?

我正在 wpf 中开发一个桌面客户端应用程序,我想将我目前在 Access 中拥有的数据库放在我们的 SQL Server 实例上。我认为使用 windows 身份验证不是一个好主意,因为这样每个用户都应该被添加到 sql server 并被赋予必要的权限。因此,另一种选择是在 SQL Server 中为该特定应用程序创建一个用户。我还读到您可以通过 SQL Server Native Client 使客户端应用程序连接到数据库,但是我需要在每台 PC 上安装它。所以我想我的问题是,这样做的正确方法是什么?

0 投票
2 回答
1328 浏览

asp.net - 使用 SQL Server 的简单 ASP.NET 站点是否称为 2 层架构?

假设我有一个用 C# 构建的简单 Web 应用程序,其中包括几个 aspx 页面和一个包含 SQL Server 数据库详细信息的 web.config 文件。一些 aspx 页面将从数据库调用存储过程 - SELECT 或 INSERT 查询,并且将使用表单身份验证。

从应用程序架构的角度来看,这是 2 层架构(数据层 - 客户端层)还是 3 层架构(客户端层 - 业务层 - 数据层)?

这听起来像是 2 层,但由于 aspx.cs 是服务器端,这会被视为业务层吗?

另外,如果我不应该在这里问这个问题,我很抱歉,但我不记得你姐妹网站的名字了!

0 投票
2 回答
851 浏览

java - Oracle JDBC 教程 - 想了解 2 层 JDBC 与 3 层

我在这里阅读 oracle JDBC 教程 - http://docs.oracle.com/javase/tutorial/jdbc/overview/index.html

请参阅图 2:数据访问的三层架构。

它说——

在三层模型中,命令被发送到服务的“中间层”,然后将命令发送到数据源。数据源处理命令并将结果发送回中间层,然后将它们发送给用户。MIS 主管发现三层模型非常有吸引力,因为中间层可以保持对访问的控制以及可以对公司数据进行的各种更新。另一个优点是它简化了应用程序的部署。最后,在很多情况下,三层架构可以提供性能优势。

我不明白粗体部分。这些观点背后的逻辑是什么?

- 中间层可以保持对访问的控制以及可以对公司数据进行的更新类型。 - 以什么方式 ?

- 简化应用程序的部署 ——如何简化部署?

- 三层架构可以提供性能优势。 -- 您刚刚在两个分层拱门之间添加了一层。现在,代码和数据库之间没有直接通信,而是有一个中间层。那么,这不应该降低你的性能/速度吗?

0 投票
2 回答
1509 浏览

c# - c# - 带有 ObjectDataSource 控件的参数

我有一个 2 层架构,这意味着我正在使用业务对象和 DAL 类。我的问题是:如何将值传递给 DAL 类中某个函数的参数。

我正在使用gridview(在其中显示基本信息)和formview(在单击gridview 中的选择按钮时显示一条记录的所有信息)。

这是我的 DAL 类中的函数:

我有这个对象数据源:

我知道我应该添加一些 SelectParameter,我只是不知道如何。有愿意帮助我的人吗?:)

提前致谢。HS

0 投票
1 回答
20 浏览

model-view-controller - 如何组合相同资源的插件?

我正在一个项目的逻辑架构中工作,该项目从用户那里接收一些信息并对其进行处理。要求之一是为外部开发人员公开一个接口以添加更多功能。到目前为止,我已经提出了一个 MVC 2 层架构,其中 View 和 Controller 运行在用户的机器中,而 Model 托管在应用程序服务器中并远程调用。对功能的要求建议我使用插件模式。

处理信息时可能会执行用户选择的其他步骤,因此我想将它们建模为应用程序发布时已经存在的插件。这意味着这个插件会影响同一个资源(处理流程),我不确定当两个插件都启用时如何处理这个问题。

由于我对插件模式不像其他模式那样熟悉,所以我在询问之前所做的阅读让我尝试了类似于抽象工厂模式的东西。问题是,当启用两个或更多插件时,我需要多重继承。我还想到了 Builder 模式来分别对处理步骤进行建模,但是必须定义插件之间的顺序,这会影响插件开发人员的独立性。