三层应用架构有必要吗?

问题描述 投票:0回答:4

我参与过一个项目,该项目实现了具有以下设计的三层架构:

  1. 表示层 - 使用 PHP 和 MVC 框架来处理前端表示和业务逻辑。该层调用服务层来访问数据。
  2. 数据访问层 - 使用 C# .NET,分为服务层、业务逻辑层和数据层。由表示层调用。调用数据库并序列化响应以返回表示层。
  3. 数据层-数据库。提供以上两层的所有数据。

我知道三层方法可以帮助提高安全性,因为如果表示层受到损害,仍然无法访问数据。尽管这是事实,但这种方法有点过于复杂,特别是因为我被迫在前两层中为同一对象编写两个模型。

所以我的问题是:这是一个糟糕的三层架构实现吗?如果是的话,如何改进?仅使用可访问数据库的 MVC 实现有哪些缺点(如果有)?您的 Web 应用程序使用什么方法?

感谢您的帮助!

c# php database three-tier
4个回答
3
投票

在我看来,你的三层与视图、控制器模型相同。如果你的php主要是调用你的#2层,那么我认为它本身不需要是MVC,除非你有一个非常复杂的表示层,它本身应该组织成MVC,例如,如果你有复杂的导航或用户身份验证逻辑。


0
投票

编程中没有什么是“必要的”。但有很多实践已经被多年证明是可以遵循的,以获得更好的结果。 N 层分离只是其中一种做法。

http://en.wikipedia.org/wiki/Multitier_architecture

您的描述遵循 wiki 中的描述,因此 - 这是实现 3 层应用程序的合适方法。

但请记住,您不应该做任何事情 - 只需遵循您觉得舒服的方式即可。将来您将拥有自己的一套专门适合您的实践。


0
投票


0
投票

我不确定我是否理解这种担忧:“特别是因为我被迫在前两层中为同一对象编写两个模型。”这似乎是因为您在 UI 和后端使用两种不同的编程语言。我猜测 C#“数据访问层”包含一个完整的对象模型,然后您必须在前端复制该模型。

问题似乎是你有两个相互镜像的中间层,因为你使用的是两种语言,而不是你使用的是 n 层架构

© www.soinside.com 2019 - 2024. All rights reserved.