1

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

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

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

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

4

2 回答 2

1

术语TierLayer不是同义词。

ATier是应用程序中的“物理”分离。每一层都是部署和执行一个或多个层的地方。这包括 Web 服务器、数据库服务器等项目。请注意,整个 2(或 20!)层系统甚至可以从单台机器上执行。例如,当 Web 服务器和数据库服务器安装在同一硬件上时。

ALayer是应用程序中的逻辑分隔,使用诸如表示、业务逻辑和数据访问等术语来描述应用程序中的各种逻辑分隔。

系统可以是 n-Tier 和 n-Layer。

因此,如果您有一个由 1 个 Web 服务器(运行应用程序本身)和 1 个数据库服务器(您的数据库服务器)组成的 Web 应用程序,那么您就有一个 2 层应用程序。如果应用程序中唯一的分隔是表结构所在的位置,那么它很可能也是一个 2 层应用程序。

于 2013-02-25T02:15:05.603 回答
1

是的,在我看来,您所描述的是一个 2 层架构,因为即使代码是服务器端的,也没有业务层。业务层应该包含所有业务对象和逻辑,并且您的 .cs 页面将简单地调用这些业务对象。

我以相同的方式构建我的大多数应用程序:Asp.net 前端调用 SQL Server 存储过程进行 CRUD 操作。但是,如果我曾经使用不同的数据库平台,我将不得不更改很多代码,因为没有真正的业务层。最后,业务层也将使您的代码更具可测试性。

抱歉,我无法帮助解决姐妹网站的问题:)

于 2013-02-24T23:06:34.713 回答