iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >如何理解.NET企业级架构业务层
  • 331
分享到

如何理解.NET企业级架构业务层

2023-06-17 13:06:36 331人浏览 独家记忆
摘要

本篇文章为大家展示了如何理解.net企业级架构业务层,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。每一个复杂的软件都应该按层来组织。每一层代表系统的一个逻辑部件。尤其是,业务层的模块包括了所有使得系

本篇文章为大家展示了如何理解.net企业级架构业务层,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

每一个复杂的软件都应该按层来组织。每一层代表系统的一个逻辑部件。尤其是,业务层的模块包括了所有使得系统运行的时候和其它层交互所需要的功能算法和计算,其他层包括数据访问层DAL和表现层。

业务层是任何分层系统的神经中心,包含了大部分的核心逻辑。因为这个原因,它也经常被叫做:业务逻辑层BLL。

正文

业务逻辑层是什么

抽象的讲,业务逻辑层是系统的一部分,用来处理和业务相关的任务。本质上,业务逻辑层包括一系列执行数据的操作。数据被模型化为问题域的实体,例如:发票、用户、订单、清单。另一方面,包括一些操作,例如:创建一个发票,添加一个用户,处理一个订单。

剖析业务层

如果你从纵向来看业务逻辑层,你会发现一些业务模型的实体,表达用户策略和需求的业务规则,实现自动化功能的服务,定义文档和数据从一层流转到一层的工作流。

安全是一个在所有层都需要考虑的严重问题,但是在业务逻辑层,代码扮演一个用户界面层的守门人。在业务逻辑层的安全是以角色为基础的,或者是限制对业务对象的访问,只对授权用户开放。

1、领域对象模型

领域对象模型更倾向于对整个系统提供一个结构化的视图,包括实体的功能描述,实体间的关系,实体的职责。模型产生于用户需求,使用UML的用例图和类图进行文档化。在模型中,你表示出用来存储数据和暴露操作的真实世界元素。每一个实体代表模型中的一个角色,提供一些行为。每个实体都有自己的职责,依据领域的关系进行交互。

很多应用被打上复杂的标记,实际上,如果你看到最终的技术实现,你会发现是相对简单的。但是,整体来看这个应用是复杂的,那是因为领域内在的复杂性。通常来说,困难在于构建一个适当的软件模型,而不是最终的实现。一个设计良好的模型,无论你运行到哪里,可以解决任何难度的复杂性。

对象模型和领域模型

为了清晰起见,让我们确定一下“对象模型”和“领域模型”这两个词。尽管我们经常会交替使用,实际上他们代表不同的事物,就算代表同一个事物的时候,他们的抽象级别也是不同的。我们所谓的“对象模型”就是简单的对象图。对于如何设计和实现模型没有限制。如果你有了一些相互关联的类,就有了一个对象模型。就像你看到的,描述相当通用,适用于大部分的解决方案。

我们所谓的“领域模型”就是另外一回事了。领域模型是用来满足一系列需求的对象模型。典型的,领域模型中的类没有持久层的概念,是一种与其他帮助类库中的类没有关系的理想状态。另外,领域模型设计用来解决特定的领域问题,试图从实体和它们之间的关系来抽象业务流程和数据流。

记住领域模型也是一种特殊的设计模式,在后面我们会讨论。

2 领域实体

从外部来看,业务逻辑层就是对业务对象的一系列操作。大多数情况,一个业务对象就是一个领域实体的实现,也就是一个封装了数据和行为的类。也可能是一些实现特殊计算的辅助类。业务逻辑层决定业务对象之间如何交互。它也为参与交互的模块、业务对象强加了一些规则和流程。

业务逻辑层处在一个分层系统的中间,和表现层、数据访问层交换信息。业务逻辑层的输入和输出不是非要业务对象不可。在大多数情况,架构师更倾向于在跨层之间使用DTO(Data Transfer Objects)进行数据传输。

业务对象和数据传输对象有什么不同呢?

业务对象包含数据和行为,在业务逻辑中可以看做是充血的活动对象。数据传输对象只是一个值对象,是包含数据没有附加的行为。处于序列化的目的,在业务对象中存储的数据需要被序列化到数据传输对象中。数据传输对象除了setter和getter以外没有逻辑行为。在模型中,每一个领域实体类可能会对应多个数据传输对象。为什么是多个数据传输对象呢?

一个数据传输对象不是一个无行为的领域对象的简单副本。相反,一个数据传输对象代表一个在特定上下文环境使用的领域对象的子集。例如:在一个方法中,你需要一个只有Name和ID的CustomerDTO;其他地方你可能需要一个有Name、ID、Country、Contract的CustomerDTO。通常来说,一个领域对象是一个包含很多对象的图,例如:Customer包含orders,orderdetails,等等。

重点

关于DTO和OB的协同使用,可以引出一大串的、无意义的争论。理论建议在任何情况下都是用DTO来减少层之间的耦合。实践中,经常会提醒我们已经够复杂的了,尽量避免不必要的附加东西。作为一条实践的准则,我们建议在处理少于100个业务对象的模型的时候,你不需要这么做。在这些情况下,DTO和OB很可能很相似。

3 业务规则

在现实世界中的组织都是基于一系列的业务规则组成的。你可以争论这些规则的级别,但是不可以否认这些规则的存在。每一个组织都有追求的战略,规则是实现战略的主要规范。战略指明了要达到的高度,规则明确了如何达到这个高度。

规范业务规则有各种方式。如果你生活和工作在一个***的世界,每一个组织维护他自己的规则数据库,这样在一个项目中的各个团队中就很容易共享这些规则。大多数情况不是这样的,搜集业务规格的过程开始于开发项目。结果就是,业务规则在项目快要结束的时候才整理出来,而且是在架构师之间共享。

上述内容就是如何理解.NET企业级架构业务层,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 如何理解.NET企业级架构业务层

本文链接: https://www.lsjlt.com/news/289646.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解.NET企业级架构业务层
    本篇文章为大家展示了如何理解.NET企业级架构业务层,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。每一个复杂的软件都应该按层来组织。每一层代表系统的一个逻辑部件。尤其是,业务层的模块包括了所有使得系...
    99+
    2023-06-17
  • 如何解析.NET三层架构
    如何解析.NET三层架构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。所谓三层架构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,...
    99+
    2023-06-17
  • PHP 企业级应用微服务架构设计问答
    微服务架构使用 php 框架(如 symfony 和 laravel)来实现微服务,并遵循 restful 原则和标准数据格式来设计 api。微服务通过消息队列、http 请求或 grp...
    99+
    2024-05-07
    php 微服务 laravel docker
  • 企业阿里云服务器架构
    服务器硬件:包括服务器主板、CPU、内存、硬盘等硬件设备。 云平台管理工具:包括云服务器管理、云平台监控、云安全策略等工具。 云安全服务:包括身份认证、数据加密、防DDoS攻击等云安全服务。 云存储服务:包括云文件存储、云数据库等云存储服...
    99+
    2023-10-27
    阿里 架构 服务器
  • 用 PHP 框架构建企业级应用程序的架构设计
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-24
  • PHP 企业级应用模块化架构设计问答
    模块化架构设计可带来松耦合、可扩展性、可重用性、可维护性等好处。为了设计模块化架构,应遵循以下原则:单一职责、边界明确、低依赖、松耦合和面向契约。使用 laravel 框架,可以通过以下...
    99+
    2024-05-07
    架构 php laravel
  • PHP 企业级应用分布式架构设计问答
    分布式架构是一种系统设计方法,即将应用组件分布在多个服务器上,以提高可扩展性、可用性和容错性。在 php 企业级应用中,分布式架构变得必不可少,因为它允许随着应用的增长而轻松扩展,确保在...
    99+
    2024-05-07
    php 分布式架构 高可扩展性
  • PHP 企业级应用架构与设计要点总结
    确定企业级 php 应用程序的关键架构设计原则:分层架构松散耦合单一职责原则工厂模式存储库模式服务层模式 PHP 企业级应用架构与设计要点总结 随着业务规模和复杂度的不断增长,设计企业...
    99+
    2024-05-08
    php 企业级应用架构 数据访问 高可扩展性
  • win10企业版如何升级win11
    本文小编为大家详细介绍“win10企业版如何升级win11”,内容详细,步骤清晰,细节处理妥当,希望这篇“win10企业版如何升级win11”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win10企业版可以升级w...
    99+
    2023-07-01
  • 怎么理解.NET三层架构应用中的十层框架
    这篇文章给大家介绍怎么理解.NET三层架构应用中的十层框架,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。凡是接触.net开发的,***要理解的就是三层架构的重要思想。关于三层架构的概述 我就不多说了,相信大家都早已明白...
    99+
    2023-06-17
  • 阿里云企业服务器架构设计
    简介 在当今数字化时代,企业对于服务器的需求越来越大,而阿里云作为国内领先的云计算服务提供商,为企业提供了强大的服务器架构设计。本文将介绍阿里云企业服务器架构的设计原则和优势,并通过实际案例来展示其在企业中的应用。详细说明1. 高可用性阿里...
    99+
    2024-01-21
    阿里 架构 服务器
  • 如何理解Java 企业级应用的可扩展性
    这篇文章主要介绍“如何理解Java 企业级应用的可扩展性”,在日常操作中,相信很多人在如何理解Java 企业级应用的可扩展性问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Java 企业级应用的可扩展性...
    99+
    2023-06-17
  • PHP 企业级应用架构与设计的实践问答
    PHP 企业级应用架构与设计的实践问答 前言 构建企业级 PHP 应用需要考虑架构和设计的最佳实践。本文将探讨一些常见问题,并提供基于实战案例的答案。 问题 1:如何选择最佳的架构模式...
    99+
    2024-05-07
    php 企业级应用架构 redis 高可扩展性 并发请求
  • Golang技术在企业级微服务开发中的架构设计
    在企业级微服务开发中,golang 构架设计遵循分层体系,包括业务逻辑层、通信层和数据访问层。业务逻辑层包含特定于应用程序的逻辑;通信层负责微服务间的通信,通常使用 rest 或 grp...
    99+
    2024-05-11
    golang 微服务 mysql 数据访问 微服务开发
  • Java ActiveMQ:助力企业拥抱微服务架构
    Java ActiveMQ概述 Java ActiveMQ是一款开源的消息中间件,它可以帮助企业轻松构建微服务架构。它具有高性能、高可靠性和高可扩展性等特点,并且支持多种消息协议,如JMS、AMQP和MQTT等。 Java Active...
    99+
    2024-02-08
    Java ActiveMQ 微服务架构 消息中间件
  • PHP 企业级应用架构设计中的挑战与解决方案
    企业级 php 应用架构中的挑战与解决方案:可扩展性:使用 soa、消息队列和云计算实现可扩展性。可靠性:通过冗余、负载均衡和错误处理确保应用程序可用性。可维护性:采用模块化设计、敏捷开...
    99+
    2024-05-07
    php 企业级架构 高可扩展性
  • Java Apache Camel:简化企业级集成,构建现代化应用架构
    一、Apache Camel 介绍 Apache Camel 是一个开源的企业级集成框架,它可以帮助企业简化集成工作,构建现代化应用架构。Apache Camel 支持多种集成模式,包括点对点、发布/订阅、请求/响应、事件驱动等,并且提...
    99+
    2024-02-10
    Apache Camel 企业级集成 集成平台 微服务 API 网关
  • PHP 企业级应用架构与设计实战经验分享
    在企业级 php 应用程序中,领域驱动设计 (ddd)、服务层架构、微服务架构和事件驱动架构是常见的架构方法。ddd 强调对业务领域的建模,服务层架构分离业务逻辑和表示层/数据访问层,微...
    99+
    2024-05-08
    php 企业级应用架构 数据访问
  • 如何管理企业通信服务?
    通信能力对于任何企业的成功都是至关重要的。语音、电子邮件、短信、多媒体消息、文件共享、流媒体视频、会议、协作等等。没有它们,就无法开展业务。但随着交通量和使用中的通信服务数量不断增加,IT和运营挑战也在不断增加。通信服务历来都是由宽带固定电...
    99+
    2023-06-03
  • 企业私有云存储如何构建
    1. 确定存储需求:根据企业的业务需求,确定存储数据的类型、容量、访问频率等。2. 选择存储设备:根据存储需求,选择合适的存储设备,...
    99+
    2023-05-13
    企业私有云存储 云存储
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作