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

时间:2010-06-09 06:17:26

标签: c# asp.net architecture

我是一名asp.net开发人员,对模式和架构知之甚少。如果你能在这里指导我,我将非常感谢。

在我的网络应用程序中,我使用4层。

  1. 网站项目(网页表单+ cs文件后面的代码,用户控件+ cs文件后面的代码,母版页+ cs文件后面的代码)

  2. CustomTypesLayer一个类库(具有自定义类型,枚举,DTO,构造函数,获取,设置和验证)

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

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

  5. - 我的用户界面只调用BusinessLogicLayer。 BusinessLogicLayer可以自我管理,也可以为数据调用DataAccessLayer函数。

    -Web表单不直接调用DAL。

    -CustomTypesLayer由所有图层共享。

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

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

4 个答案:

答案 0 :(得分:2)

这不是四层,即三层,所以它是一个常规的三层架构。

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

三层架构是Multitier architecture

答案 1 :(得分:2)

就模式而言,我建议抓住这些:

  • 我最喜欢的一英里是Dependency Inversion Principle(DIP),通常也称为(或至少非常相似)Inversion of control(IoC)和Dependencey Injection;它们非常受欢迎,所以你应该没有问题找到更多信息 - 获取示例。它非常适合抽象出接口背后的数据访问实现。
  • Lazy Load也很有用。有趣的是,有时你实际上可能想要做相反的事情 - 在一次大爆炸中获得你需要的所有数据。
  • Factory pattern是众所周知的一个 - 这是有充分理由的。
  • Facade pattern也帮助我摆脱了麻烦。

维基百科有一个很好的Software design patterns列表,假设你还没有看到它。

最后要记住的是,有三种基本类型的模式(加上第四类多线程/并发);它可以帮助你了解这些类别,并在你做这种性质的时候牢记它们,它们是:

  • 创建型
  • 结构
  • 行为

答案 2 :(得分:2)

答案 3 :(得分:1)

查看Entity Framework或LinqToSQL。他们都可以从您的数据库自动生成您的数据访问层。这将为您节省大量(无聊)工作,并让您专注于有趣的层。

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

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

希望这有帮助。