CSLA.NET框架学习点滴之理解逻辑架构和物理架构
一直忙于酷易商城的代码编写,买的书也没时间看,周末有空了坐下来好好的看一下。
无论学习一门知识还是要看一本书,首先要知道它是什么,才能知道这是为什么,最后得到怎么样去做。
引用书上原话来描述这本书,应用面向对象的概念来进行.net应用程序的架构、设计和开发。把重点放在了面向业务的对象,即业务对象,以及怎样在包括web和客户机/服务器结构的不同分布式环境中来实现它们。书中使用了大量的.net技术,面向对象的设计与编程思想,以及分布式的架构。
因为自己能力有限,所以学习的目的是为了提高对面向对象的认识和对应用程序开发过程有一个更好的了解,所以会大量引用书中的原话,因为不好理解生怕误解了作者的意思(……)。今天说一下逻辑架构和物理架构。
物理N层就是指将应用程序分布在多台具有不同功能(如客户端、Web服务器、应用服务器及数据库服务器等)的电脑上的这种物理模型。这就是N层系统,但在于很多人倾向于假设在逻辑模型的层与物理模型的层之间是一一对应的关系,这往往是错误的。
一个物理N层架构与一个逻辑N层架构有很大不同,后者与应用程序的运行所包含的电脑的数量与网络没有任何关系。逻辑架构只是关于怎样把不同类型的功能分开。逻辑上最常见的是分为UI层、业务层和数据层,在物理上,这三层可以部署在同一台电脑上,也可以在三台不同的电脑上,逻辑架构并不对这些细节作出定义。应用程序逻辑架构和物理架构有一种关系:逻辑架构的层数总是不会少于物理架构的层数,逻辑架构可能有比物理架构更多的层(因为一个物理层可能有多个逻辑层),但永远不会比物理架构的层数少。
一个好的逻辑N层架构的好处:逻辑的组织代码、更易于维护、更好的代码重用、更好的团队开发体验、更高的代码清晰度。
一个 好的物理N层架构的好处:性能、可扩展性、容错能力、安全性。
至于说什么情况下适合使用N层架构,自己感觉可以从以下方面来决定(完全是自己想的,虽然自己还不知道如何来实现),当你的应用程序很复杂时有必要,当你的应用程序小但使用人群很大时有必要,当你的应用程序开始时规模很小但以后很有可能变得很复杂时也有必要(突然想到设计模式里面一句话:使用重构来实现模式)。
逻辑模型与物理模型之间有什么关系呢?创建应用程序时,区分功能可以方便团队共同有效的工作,逻辑架构还要有足够的层,以便在以后可以灵活地选择物理架构。按照传统,可以设计三个逻辑层来分享一个应用程序的界面、业务逻辑和数据管理部分,其中模型-视图-控制器和结构型-数据-逻辑层是当前普遍的。关于物理模型,可以根据性能、可扩展性、容错能力和安全性方面的需求为决定。它们之间的关系:物理模型包含的层越多,性能就会越差;但是同时潜在的可扩展性、安全性和容错能力就会变得更好。
说下两个概念,性能是应用程序响应用户的速度。扩展性代表了随着应用程序负载的增加,性能改变的多少。
总的来说,架构中的物理层数是一种在性能、可扩展性、安全性和容错能力之间平衡的结果。而且对于一个Web应用程序和一个使用Smart Client的内部网应用程序的最优化设置是不一样的。
就看到这里了,下一节比较重要,讲解在一个五层的逻辑架构中各层的理解。
作者:屈鲁奇
出处:https://www.cnblogs.com/quluqi
联系:496195435@qq.com QQ:496195435