我从事一个实现三层体系结构的项目,具有以下设计:

  1. 演示层 - 将PHP与MVC框架一起处理前端演示文稿和业务逻辑。该层调用服务层,该服务层访问数据。
  2. 数据访问层 - 使用C#.NET,并分为服务,业务逻辑和数据层。通过演示层调用。调用数据库,并序列化响应以返回演示层。
  3. 数据层 - 数据库。为上述两层提供所有数据。

我知道三层方法可以帮助安全性,因为如果损害了演示层,仍然无法访问数据。尽管这是事实,但似乎这种方法过于复杂,尤其是因为我被迫在前两层为同一对象编写两个模型。

所以我的问题是:这是三层体系结构的不良实现吗?如果是这样,如何改进?简单地拥有可以访问数据库的MVC实现的缺点(如果有的话)是什么?您用于Web应用程序您使用哪种方法?

谢谢您的帮助!

有帮助吗?

解决方案

在我看来,您的3层与Controler模型相同。如果您的PHP主要是对您的#2层打电话,那么我认为本身不需要MVC,除非您有一个非常复杂的演示层,例如应该将其本身组织到MVC中,例如,如果您有复杂的导航或用户身份验证逻辑。

其他提示

空无一物 必要的 在编程中。但是,有很多做法,这些做法是由多年来作为您遵循的东西来挑选的。 n层分离只是其中之一。

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

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

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

我认为您的并发症源于您使用PHP和.NET的事实,这些事实并非直接兼容。如果您消除了可以简化事物的其中之一(仅使用PHP或仅使用的.NET)。否则,我认为您正在使用一种好方法。

该方法的价值不仅用于安全性,还可以促进可维护性。

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

问题似乎是您有两个相互镜面的中间层,因为您使用两种语言,而不是您正在使用n层体系结构

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top