《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.3 架构设计中的重要概念

简介:


1.3  架构设计中的重要概念

 

接下来的这一节主要提及与架构有关的一些概念。
 
 
1.3.1  TierLayer
 
    有些做开发的朋友容易把TierLayer混淆,或者认为两者是一样的。其实这两个概念并不相同,最简单的解释就是:Layer往往是指系统的逻辑结构,而Tier是指系统的物理部署结构,不同的Layer可以在同一Tier上;不同的Tier上面可以有相同的Layer。这两个概念一般在分层的系统中提及最多。
 
    下面以一个分层的ASP.NET SNS项目为例来说明,此项目的系统可能会分为界面层、界面控制层、服务层、业务层、数据访问层、数据存储访问层。这些就是逻辑层,也就是所谓的“Layer”。
在项目初期可能考虑到经济等某些因素,把除了界面层之外的其他逻辑层都部署在一台服务器上面,界面层就是用户在浏览器中看到的HTML页面。现在系统就是由6个逻辑层Layer)组成,也是由2个物理层Tier)组成(如图1-8所示),不同的Layer可以在同一Tier上。
 
 
    随着系统的使用和用户的增长,系统逻辑部分还是和之前一样,但是物理部署的层次就变化了,它采用了服务器群集的方法来达到负载均衡。那么就出现了不同的Tier上面可以有相同的Layer的情况,如图1-9所示。
 
1.3.2  架构与框架
 
    到现在为止所有的讨论都集中在架构和设计上面尽管这些都非常重要但是并非每次创建软件项目都要经历这个过程。我们可能会把这架构和设计固化在可重用的代码中从而能够在创建其他新的项目时重复使用。那么我们此时需要的就是一个“框架”:它以编码的方式实现了架构和设计,以便于提高重用性和生产效率。
 
    一般的开发过程会从收集和分析需求开始,然后是架构讨论和决策,接下来就是设计。首先是用低级别的概念设计支持架构,然后是真正对最终用户有用的业务概念设计。设计完成之后,开发者通常会花费相当长的时间来实现低级别的代码以支持稍后的业务代码的编写。
 
    所有对架构的讨论、决策、设计,以及编码都是非常重要的。但是不幸的是,这对于编写业务逻辑,提供业务功能的最终目标没有直接的意义。低级别的支持技术只能为创建实际的业务应用提供帮助,很多时候,我们只要实现一次,然后就可以在多个项目中重用它。
 
    在软件世界中,将架构和设计写到框架里面是最容易降低开销、提高重用性的方法。所以可以把框架看成是架构和设计的一种积累,经过多个项目的开发,不断地修改和完善框架,最后使得整个框架能够在性能、伸缩性、安全性等方面满足需求。
 
1.3.3  架构与模式
 
    每次谈及架构,所冒出的第一反应就是:架构就是设计模式,架构就是企业架构模式等诸如之类。相信通过上面章节的讲述,大家已经清楚了架构和模式的关系(基本没有很明确的关系,更加不存在等同的效应)。模式是经验的重用,模式对软件开发中出现的一些问题给出了比较好的解决方案。模式的决定和使用,常常是设计阶段考虑的问题,当然在架构创建的时候它是可以给一些问题以指导的,在这些指导中可能就包含了可以采用什么模式达到什么目的等。在架构和设计中,有时候采用了合适的模式,便可以快速地解决某些问题,但是两者绝对不是等同的关系,也不是多多益善的关系。
 
更多的话题,将在后续章节中讲述!
 

1.4  本章小结

这一章定义并解释了本书中使用的核心概念:架构、架构师和架构设计。这一章也讨论了软件开发流程采用以架构为中心的方式所带来的好处。然而,关于架构设计仍然有许多问题没有解决。例如,实际上架构师在软件开发项目中做什么、架构师产出什么、架构师角色如何与项目的其他角色发生联系等,这些问题将在后续章节中介绍。
 
 






















本文转自yanyangtian51CTO博客,原文链接: http://blog.51cto.com/yanyangtian/751125 ,如需转载请自行联系原作者


相关文章
|
2月前
|
SQL 开发框架 数据可视化
企业应用开发中.NET EF常用哪种模式?
企业应用开发中.NET EF常用哪种模式?
|
2月前
|
消息中间件 存储 缓存
Kafka【基础知识 01】消息队列介绍+Kafka架构及核心概念(图片来源于网络)
【2月更文挑战第20天】Kafka【基础知识 01】消息队列介绍+Kafka架构及核心概念(图片来源于网络)
99 2
|
3月前
|
SQL 分布式计算 Hadoop
Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
【2月更文挑战第6天】Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
101 0
|
4月前
|
领域建模
架构设计 DDD领域建模 核心概念
【1月更文挑战第6天】架构设计 DDD领域建模 核心概念
|
10天前
|
存储 开发框架 前端开发
前端框架EXT.NET Dotnet 3.5开发的实验室信息管理系统(LIMS)成品源码 B/S架构
发展历史:实验室信息管理系统(LIMS),就是指通过计算机网络技术对实验的各种信息进行管理的计算机软、硬件系统。也就是将计算机网络技术与现代的管理思想有机结合,利用数据处理技术、海量数据存储技术、宽带传输网络技术、自动化仪器分析技术,来对实验室的信息管理和质量控制等进行全方位管理的计算机软、硬件系统,以满足实验室管理上的各种目标(计划、控制、执行)。
|
1天前
|
C# Windows
一款.NET开源、简洁易用的Windows桌面小说阅读应用
一款.NET开源、简洁易用的Windows桌面小说阅读应用
|
3天前
|
开发框架 物联网 测试技术
【专栏】.NET 开发:打造领先应用的基石
【4月更文挑战第29天】本文探讨了.NET开发框架为何成为构建领先应用的首选。高性能与稳定性是.NET的核心优势,它采用先进的技术和优化策略,如.NET Core的轻量级设计和JIT/AOT编译模式。跨平台兼容性让开发者能用相同代码库在不同操作系统上构建应用。现代化的开发体验,如C#语言的创新特性和Visual Studio的强大工具,提升了开发者生产力。丰富的生态系统和广泛支持,包括庞大的开发者社区和微软的持续投入,为.NET提供了坚实后盾。
|
3天前
|
机器学习/深度学习 人工智能 Cloud Native
【专栏】洞察.NET 技术的前沿应用
【4月更文挑战第29天】本文探讨了.NET技术的前沿应用,包括.NET Core的跨平台崛起、云原生及AI/机器学习领域的整合。.NET Core支持多平台运行,开源社区的参与促进了其快速发展和性能优化。Xamarin与.NET MAUI助力跨平台移动应用和统一界面开发,而云原生应用借助.NET Core与Azure云服务得以轻松构建和部署。此外,ML.NET和TensorFlow.NET为.NET开发者提供了机器学习和深度学习工具,推动智能应用和边缘计算的创新。.NET技术正持续演进,引领软件开发新趋势。
|
3天前
|
人工智能 物联网 开发者
【专栏】探究.NET 技术的创新应用
【4月更文挑战第29天】本文探讨了.NET技术的最新进展和创新应用,包括.NET 5及后续版本的统一平台、性能提升、跨平台支持、云集成优化和开源社区的贡献。在创新应用场景中,重点介绍了微服务架构、物联网、AI、游戏开发和移动应用。未来,.NET将持续优化性能,深化云原生应用,集成新兴技术,扩大社区生态,并促进相关教育和培训。开发者应把握.NET技术的潜力,积极参与其发展,创造更多创新软件产品。
|
3天前
|
安全 Linux API
【专栏】.NET 开发:打造卓越应用的秘诀
【4月更文挑战第29天】本文介绍了.NET技术的起源、核心特性和应用场景,揭示了其打造卓越应用的秘诀。自2002年推出,.NET历经发展,现支持跨平台,包括.NET Core和.NET 5。其核心特性包括:跨平台兼容性、面向对象编程、内置安全性和高效性能。丰富的类库、强大的开发工具、简洁的语言语法以及活跃的社区支持,使.NET成为构建高效、安全应用的理想选择。随着技术进步,.NET将持续赋能开发者创造更多可能性。