网站三层架构学习之一 分层式结构

news/2024/5/12 6:35:43/文章来源:https://blog.csdn.net/spring21st/article/details/1702611

     去年参加中软的面试,戴老师就说让好好研究一下petshop。可是今年来了以后,老师让做即墨公司的语音项目,一直进行的是windows编程,没有接触网站方面的。现在项目基本做完了,开始ASP.NET的学习了。

     现在petshop的最新版本已经出到了4.0,下载安装完成,把Web作为启动项目,ctrl+F5,运行,出现了激动人心的petshop网站页面,整体风格令人耳目一新。查看源代码,根据李天平老师的讲解,我对整个项目做了如下的分析。

  微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层,如图所示:

图一:三层的分层式结构

数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的SelectInsertUpdateDelete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。在PetShop的数据访问层中,并没有使用ORM,从而导致了代码量的增加,可以看作是整个设计实现中的一大败笔。

业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关。以PetShop为例,业务逻辑层的相关设计,均和网上宠物店特有的逻辑相关,例如查询宠物,下订单,添加宠物到购物车等等。如果涉及到数据库的访问,则调用数据访问层。

表示层:是系统的UI部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。在PetShop中,是利用ASP.Net来设计的,因此包含了许多Web控件和相关逻辑。

分层式结构究竟其优势何在?Martin Fowler在《Patterns of Enterprise Application Architecture》一书中给出了答案:
1
、开发人员可以只关注整个结构中的其中某一层;
2
、可以很容易的用新的实现来替换原有层次的实现;
3
、可以降低层与层之间的依赖;
4
、有利于标准化;
5
、利于各层逻辑的复用。

概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。

一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。例如UI人员只需考虑用户界面的体验与操作,领域的设计人员可以仅关注业务逻辑的设计,而数据库设计人员也不必为繁琐的用户交互而头疼了。每个开发人员的任务得到了确认,开发进度就可以迅速的提高。

松散耦合的好处是显而易见的。如果一个系统没有分层,那么各自的逻辑都紧紧纠缠在一起,彼此间相互依赖,谁都是不可替换的。一旦发生改变,则牵一发而动全身,对项目的影响极为严重。降低层与层间的依赖性,既可以良好地保证未来的可扩展,在复用性上也是优势明显。每个功能模块一旦定义好统一的接口,就可以被各个模块所调用,而不用为相同的功能进行重复地开发。

进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化基础上,这个系统才是可扩展的,可替换的。而层与层之间的通信也必然保证了接口的标准化。

注:

ORM:对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。

 

参考网站:

李天平  Microsoft .NET Pet Shop 4 架构与技术分析

http://www.cnblogs.com/ltp/archive/2006/04/17/377564.html

http://tb.blog.csdn.net/TrackBack.aspx?PostId=1533713

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_820922.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站三层架构学习之二 整体架构

在上一篇中,我只是对微软的三层架构做了一下介绍,以后将主要结合两个项目:一个是ASP.NET网站模板中的个人网站初学者工具包和petshop 4.0. 因为昨天看的是petshop的,今天就主要说说petshop 4.0的整体架构。 根据三层架构&#xff…

18个优秀的在线图片编辑服务网站

说起编辑图片,可能大多数人都会马上想起强大的Photoshop。事实上,除了购买或下载盗版的PS之外,你还可以使用很多优秀在线图片编辑服务,这些网站大多数都是免费的。对于大部分的人来说,它们提供的功能已经足够强大了。在…

.NET开发人员必知的八个网站

当前全球有数百万的开发人员在使用微软的.NET技术。如果你是其中之一,或者想要成为其中之一的话,我下面将要列出的每一个站点都应该是你的最爱,都应该收藏到书签中去。 对于不熟悉.NET技术的朋友,需要说明一下,.NET提…

乐天酷网站用户体验

万众瞩目的电子商务平台--乐天酷上线了,怀着无比崇敬的心情,我浏览了网站的页面。 乐酷天-中国最大搜索引擎百度和日本最大购物网站乐天联手打造的超大型网络购物商城 看着这口号,两个最大产生出这么大的一个网站,整体色调以大红色…

手机网站重构经验分享(S60V3篇)

前言 做WEB重构的同学都应该知道,我们一般需要在一个操作系统 (Windows XP)和4种以上的浏览器(IE678,Firefox,Chrome,Opera等)上测试页面的兼容性。 相对而言,手机上的页面兼容性测试,相当痛苦!手机光操作系统都有S60V3,S60V5,MTK,Android,Windows Mobile等等,每个操作系统上除…

各位觉得哪个电子商务网站上的购物车做得好?

各位觉得哪个电子商务网站上的购物车做得好? 国内或者国外的都行,现在购物车设计感觉越来越同质化了。添加评论 分享 查看全部 2 个回答 段炼,交互设计 知乎用户 赞同 1. 购物车在首页上的界面和交互设计天猫 亚马逊京东淘宝 1号店 布 局…

我也要谈谈大型网站架构之系列(1)——纵观历史演变(上)

我们知道一个网站都是随着业务的发展,逐渐演变成几万服务器,几亿用户数的大型网站,经历了若干年,甚至上十年的 发展成为大型网站,然而真正亲身经历这个发展过程的人已经不多了,这种人也是拿着公司股票&…

网站性能优化-将Script放到HTML文件中尽量靠近尾部原理

在Yahoo的网站性能优化准则里,其中有一条是将Script放在页面底部, Put Scripts at the Bottom tag: javascript The problem caused by scripts is that they block parallel downloads. The HTTP/1.1 specification suggests that browsers download no…

Centos7下修改mysql5.6编码方式 解决网站中文显示问号

解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码。 具体操作: 1、进入MySQL控制台 mysql -u root -p 输入密码 查看当前mysql运行状态 mysql>status 后面四个编码是我在修改之后…

大型网站架构演变和知识体系

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么…

移动电子商务网站建设之概述

题外话 想做这次总结有一段时间了,但是总是这样那样的事情给耽搁。妈妈常说“不怕慢,就怕站”,我决定回来以后一定要把自己在手机当当网一年多以来的积累总结一下。 首先要感谢小白,放手让我处理占手机当当网60%的站点&#xff…

网站的活跃用户与流失用户见解分析

网站用户管理的目标是发掘新用户,保留老用户。但仅仅吸引新用户还不错,还需要保持新用户的活跃度,使其能持久地为网站创造价值;而一旦用户的活跃度下降,很可能用户就会渐渐地远离网站,进而流失。所以基于此…

使用cookie-free domains的方法优化网站性能

YSlow给如何提高网页效率和优化网站性能提供了22条建议,其中有一条是关于域名的:Use cookie-free domains。 使用 cookie-free domains 有什么好处呢?当用户浏览器发送一个静态文件,如图片image、CSS样式表文件时会同时发送同一个…

为何各大网站启用HTTPS?运营商做了“好事”

真的是好事,不加引号的好事。 你可能没有注意到,用百度搜索时,浏览器地址栏里的 http 已经成为永远的过去时,接棒的是更安全的 https。这家中国最大的搜索引擎,于2015年3月份做出了一个重要的决定——全站强制启用 htt…

外贸网站租用香港服务器有哪些好处

外贸网站租用香港服务器有哪些好处 互联网迅猛发展极大地加速经济全球化趋势,贸易、投资自由化己成为当代世界经济发展的潮流,国内外贸企业进军海外市场,由内销转出口已成为企业营销的潮流之举。对中小外贸企业来说,借助香港服务器…

专访 HackerOne COO 王宁:尊重规则是漏洞平台成功的秘诀,欢迎更多成人网站进驻 | 宅客...

本文作者史中,雷锋网主笔。关注网络安全,希望用简单地语言解释科技的一切。 HackerOne是美国著名的漏洞众测公司,它最早开创了一种模式:汇集众多的黑客,一起为企业找漏洞。 目前,全球致命的互联网公司 Yaho…

基于MyEclipse+JSP+Mysql+Tomcat开发得塞北村镇旅游网站设计

塞北村镇旅游网站设计主要用于实现旅游景点信息管理,基本功能包括:主界面模块设计,用户注册模块,旅游景点模块,酒店预订模块,后台管理模块等。本系统结构如下: (1)主界模…

基于MyEclipse+SSH+Mysql+Tomcat开发得爱宠物网站设计与实现

系统主要分为前台和后台两大模块 前台主要由用户体验使用: 用户登录 注册 查找商品 商品类别等功能导航; 后台主要由系统管理员操作使用 维护系统 管理员主要实现了 订单管理 商品管理 …

基于Eclipse+JSP+SqlServer2000开发得在线音乐试听网站(可二次开发为音乐商城)的设计与实现

在线音乐模块使用说明书 配置源程序 附加数据库SQL Server 2000 (1)打开SQL Server 2000中的“企业管理器”,然后展开本地服务器,在“数据库”节点上单击鼠标右键,在弹出的快捷菜单中选择“所有任务”/“附加数据库…

基于华为ensp的小型政府网站的设计

在进行企业网规划的过程中大部分都是用思科的路由器进行开发规划的很少有用的华为的ensp进行网络架设规划的,本次设计就是采用华为的ensp进行设计规划的。 其中包括政府办公室,公交财贸办公室,访问服务器,地址服务器,农…