首页 > 编程语言 >常见的Web应用程序架构

常见的Web应用程序架构

时间:2023-06-29 10:46:20浏览次数:38  
标签:Web 依赖 架构 web 应用程序 xx

资料:Common web application architectures | Microsoft Learn

微软的这篇文章,讨论了常见的web应用程序架构。大概可以分为三类:

1,新建的asp.net Core web项目,单体架构,在单个项目场景中,通过使用文件夹来实现关注点分离。如图:

 

单体架构随着业务发展,可能需要新加很多文件夹,各个文件夹之前无法清晰的呈现依赖关系,项目会逐渐变的混乱,为了解决这些缺点,会进行演进。

应用程序通常会演变成多项目解决方案,其中每个项目都被认为位于应用程序的特定层中。

 

随着应用程序变得越来越复杂,管理这种复杂性的一种方法是根据应用程序的职责或关注点来分解应用程序。

这种方法遵循关注点分离原则,可以帮助组织不断增长的代码库,以便开发人员可以轻松找到实现某些功能的位置。不过,分层架构除了提供代码组织之外,还提供了许多优点。

通过分层架构,应用程序可以对哪些层可以与其他层进行通信实施限制。

常见架构示意图:

 

 

 

解决方案示例图片:

 实际上,最常见的名字直接就是xx.Web、xx.BLL、xx.DAL、xx.Model、xx.BusinessCommon、xx.Tools;

xx是项目页面名称,xx.BusinessCommon可以和xx.Model放在一起,或者和xx.BLL放在一起,因为它经常需要依赖xx.Model;

 

Clean architecture

这是一个更复杂的架构。

遵循依赖倒置原则以及领域驱动设计 (DDD) 原则的应用程序往往会达到类似的架构。多年来,这种架构有过很多名字。第一个名字是六角形架构,其次是端口和适配器。最近,它被称为洋葱架构或清洁架构。后一个名称“清洁架构”在本电子书中用作此架构的名称。

 

 

请注意,实线箭头表示编译时依赖项,而虚线箭头表示仅运行时依赖项。

通过干净的架构,UI 层在编译时与应用程序核心中定义的接口一起工作,并且理想情况下不应该知道基础设施层中定义的实现类型。

然而,在运行时,应用程序需要执行这些实现类型,因此它们需要存在并通过依赖项注入连接到应用程序核心接口。

 

下面这张图片,显示了按照这些建议构建的 ASP.NET Core 应用程序架构的更详细视图。

 

标签:Web,依赖,架构,web,应用程序,xx
From: https://www.cnblogs.com/Tpf386/p/17513308.html

相关文章

  • 【从零开始学微服务】06.微服务架构的建设思路
    大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。微服务看起来很美,但其实是需要一个技术体系或平台体系来支撑并且落地的。微服务架构建设分为两种思路:框架模式服务网格(ServiceMesh)模式接下来我们对上面的两个思路进行详细的介绍和对比。框架框架模式的典型代......
  • WP CTF-Web 攻防世界 GFSJ0475 get_post
    「场景」进入场景后提示请用GET方式提交一个名为a,值为1的变量「思路」根据提示在url后加上?a=1,回车发送请求。出现新提示。请再以POST方式随便提交一个名为b,值为2的变量打开brupsuite,配置本地代理为brupsuite中proxy的地址和端口号,刷新浏览器页面,brupsuite捕获到请求......
  • 亚马逊实践 | 构建可持续发展的架构模型
    可持续发展概念源于对系统性文明危机和世界问题的科学和社会意识形态研究。世界级的进步学术社群和政治精英在二十世纪末就认识到了这些问题的存在。他们将即将到来的二十一世纪视为充满不确定性、全球灾难进程逐步升级的时代。可持续发展对多个领域产生影响,目前已成为各国家、组......
  • WP CTF-Web 攻防世界 GFSJ0474 view_source
    「场景」题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。「思路」进入场景,右键无法使用,按F12,打开开发者工具,切换到ELements标签页,发现flag...「工具」「知识拓展」......
  • C#云LIS系统源码,B/S架构的实验室信息系统源码
    科技的飞速发展为实验室信息管理带来了新机遇,云计算技术的应用更是为实验室信息管理打开了新的大门。云LIS实验室信息管理系统,作为一种新型的信息化管理方案,已经在多个实验室的信息化管理中得到应用,并且具有广阔的应用前景。云LIS系统技术架构:ASP.NETCORE3.1MVC+SQLserver......
  • 使用宝塔webhook快速部署github仓库上的项目
    1、宝塔安装webhook点击添加Hook,输入如下命令。cd/www/wwwroot/project_namegitpull点击查看密钥,可以得到hooks的地址和密钥。2、Github上设置Webhooks填入上面得到的地址和密钥 3、为了git拉取免登录,需要在服务器安装ssh证书ssh-keygen-trsacat~/.ssh/id_r......
  • Spring 赌上未来一击,推出响应式框架 WebFlux,代码更优雅,性能更强!
    Spring-webflux简介spring-webflux是spring在5.0版本后提供的一套响应式编程风格的web开发框架,大量测评证明,使用WebFlux开发接口能够大幅提升接口的吞吐量。这个框架包含了spring-framework和springmvc,它可以运行在Netty、Undertow以及3.1版本以上的Serlvet容器上。你可以在项......
  • webuploader http大文件断点续传上传
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求         <formid="postForm"action="${pageContext.request.contextPath}/UploadServlet"method="post"e......
  • 解锁高质量文档转换:通过Java应用程序免费将PDF转换为XPS
    在当今数字时代,文档转换已经成为我们日常生活中不可或缺的一部分。然而,不是所有的文件格式都是平等无差的,在与他人共享文档时可能会遇到兼容性问题。这就是我们需要进行文件格式转换的原因,而将PDF转换为XPS是一种受欢迎的转换选择。如果你正在寻找一种使用Java将PDF文件转换为XPS......
  • web和java哪个就业更好?
    首先,要区分两种开发语言的特点:Java是一种后台的语言,类似于php,主要做的就是把数据库搭建好,以及数据放置到网页当中,java是比较复杂的编程语言。Web前端开发相对应的职位可能就是一些web前端开发工程师,主要工作是把ui设计师设计好的psd利用html,制作成网页,web前端工程师布局网站的结......