繁体   English   中英

asp.net中的分层架构是什么模式?

[英]What pattern is layered architecture in asp.net?

我是一名 asp.net 开发人员,对模式和架构了解不多。 如果你能在这里指导我,我将非常感激。

在我的 web 应用程序中,我使用了 4 层。

  1. Web 网站项目(有 web forms + 代码隐藏 cs 文件,用户控件 + 代码隐藏 cs 文件,母版页 + 代码隐藏 cs 文件)

  2. CustomTypesLayer 一个 class 库(具有自定义类型、枚举、DTO、构造函数、get、set 和验证)

  3. BusinessLogicLayer 一个 class 库(具有所有业务逻辑、规则和对 DAL 函数的所有调用)

  4. DataAccessLayer 一个 class 库(只有与数据库通信的类。)

-我的用户界面只调用 BusinessLogicLayer。 BusinessLogicLayer 自行处理数据,并调用 DataAccessLayer 函数处理数据。

-Web forms 不直接调用 DAL。

-CustomTypesLayer 由所有图层共享。

请指导我这种方法是一种模式吗? 我虽然它可能是 MVC 或 MVP,但页面也有文件背后的代码,这让我感到困惑。

如果没有模式,它是否接近某种模式?

那不是四层,而是三层,所以它是常规的三层体系结构。

CustomTypesLayer根本不是一个图层。 如果是这样,则用户界面将仅使用自定义类型层,而从不直接与业务层对话,而数据访问层将永远不使用自定义类型层。

三层架构是多层架构

就模式而言,我建议您掌握以下内容:

  • 我最喜欢的一项是依赖反转原理 (DIP),它也通常称为(或至少非常类似于) 控制反转 (IoC)和依赖注入。 它们非常受欢迎,因此您应该可以轻松找到更多信息-获取示例。 对于在接口后面抽象出数据访问实现非常有用。
  • 延迟加载也很有用。 有趣的是,有时您实际上可能想做相反的事情-一次获得所需的所有数据。
  • 工厂模式是一个非常著名的模式-这是有充分理由的。
  • 立面模式也帮助我摆脱了麻烦。

假设您还没有看到Wikipedia,那么它会列出相当不错的软件设计模式

最后要牢记的是,存在三种基本类型的模式(加上多线程/并发的第四类); 它可以帮助您了解这些类别,并在进行此类操作时记住这些类别,它们是:

  • 创造力的
  • 结构性
  • 行为的

看一看实体框架或LinqToSQL。 它们都可以从数据库自动生成数据访问层。 这将节省您很多(无聊的)工作,并使您可以专注于有趣的图层。

后台代码实际上与体系结构没有任何关系-它更多是一种编码风格。 这是一种将逻辑与表示分离的方法。 您提到的任何体系结构都可以使用或不使用代码隐藏。

您似乎正在描述标准的三层体系结构。 MVC是一种模式,用于描述您的图层和用户如何交互。 用户请求一个页面(由View表示),该页面向Controller请求其数据。 Controller与您的业务层(模型)进行通信以提取正确的数据,并将其传递给您的View以进行显示。 如果视图是交互式的,例如它允许用户更新某些内容,则此用户操作操作将传递回您的控制器,后者将针对业务层调用相关方法以将更新保存到数据库。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM