Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net中的分层体系结构是什么模式?_C#_Asp.net_Architecture - Fatal编程技术网

C# asp.net中的分层体系结构是什么模式?

C# asp.net中的分层体系结构是什么模式?,c#,asp.net,architecture,C#,Asp.net,Architecture,我是一名asp.net开发人员,对模式和体系结构不太了解。如果你能在这里指导我,我将非常感激 在我的web应用程序中,我使用4层 网站项目(具有Web表单+代码隐藏cs文件、用户控件+代码隐藏cs文件、母版页+代码隐藏cs文件) CustomTypesLayer类库(具有自定义类型、枚举、DTO、构造函数、获取、设置和验证) BusinessLogicLayer类库(具有所有业务逻辑、规则和对DAL函数的所有调用) DataAccessLayer是一个类库(只有与数据库通信的类) -我的用户界面

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

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

  • 网站项目(具有Web表单+代码隐藏cs文件、用户控件+代码隐藏cs文件、母版页+代码隐藏cs文件)

  • CustomTypesLayer类库(具有自定义类型、枚举、DTO、构造函数、获取、设置和验证)

  • BusinessLogicLayer类库(具有所有业务逻辑、规则和对DAL函数的所有调用)

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

  • -我的用户界面只调用BusinessLogicLayer。BusinessLogicLayer在其自身中进行Proecesign,并为数据调用DataAccessLayer函数

    -Web表单不直接调用DAL

    -CustomTypesLayer由所有层共享

    请告诉我这种方法是一种模式吗?我认为它可能是MVC或MVP,但页面中也有代码隐藏文件,这让我很困惑


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

    这不是四层,而是三层,因此它是一个常规的三层体系结构

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


    三层架构是一个

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

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


    三层架构是一个

    看看实体框架或LinqToSQL。它们都可以从数据库自动生成数据访问层。这将为您节省大量(枯燥的)工作,并允许您专注于有趣的图层

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

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


    希望这有帮助。

    看看实体框架或LinqToSQL。它们都可以从数据库自动生成数据访问层。这将为您节省大量(枯燥的)工作,并允许您专注于有趣的图层

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

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


    希望这能有所帮助。

    就模式而言,我建议您掌握以下几点:

    • 我最喜欢的一英里是(DIP),也称为(或至少非常类似于)(IoC)ans依赖性注射;他们很受欢迎,所以你应该没有问题找到更多的信息获取的例子。它非常适合抽象出接口后面的数据访问实现
    • 也很有用。有趣的是,有时候你可能真的想做相反的事情——在一次大爆炸中获得你需要的所有数据
    • 这是一个非常有名的例子——有充分的理由
    • 也帮助我避免了麻烦
    维基百科有一个很好的列表,假设你还没有看到它

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

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

    就模式而言,我建议您掌握以下几点:

    • 我最喜欢的一英里是(DIP),也称为(或至少非常类似于)(IoC)ans依赖性注射;他们很受欢迎,所以你应该没有问题找到更多的信息获取的例子。它非常适合抽象出接口后面的数据访问实现
    • 也很有用。有趣的是,有时候你可能真的想做相反的事情——在一次大爆炸中获得你需要的所有数据
    • 这是一个非常有名的例子——有充分的理由
    • 也帮助我避免了麻烦
    维基百科有一个很好的列表,假设你还没有看到它

    最后要记住的是,有三种基本类型的模式(加上