.NET体系结构(精选12篇)
.NET体系结构 篇1
ADO.NET是微软的Microsoft ActiveX Data Objects(ADO)的新一代数据访问模型,随着.NET Framework运行环境的推出,ADO NET这种新的数据访问模型也随之而出现。就其本质而言,ADO.NET是支持数据库应用程序开发的数据访问中间件,它是建立在NET Framework提供的平台之上的。它是Microsoft主要为了解决Web和分布式应用程序而设计的,是.NET应用程序的数据访问模型。作为数据访问的架构,ADO.NET主要设计为允许它工作在无连接的数据访问模式下来处理基于n层的Web应用程序所需要的运行环境。它引入了ADO所没有的面向对象结构,让数据库应用程序的编写更加结构化,它提供对Microsoft SQL Server以及很多其它配备了OLE DB数据提供者的数据源和XML等公开数据源的一致访问,在访问数据库时得到广泛的应用。
1 传统的数据访问ADO分析
作为一种数据访问架构,ADO.NET的设计主要著眼于能在n层的Web应用程序所要求的非连接数据访问模式下工作,而它的前任ADO主要是为两层的客户机/服务器风格的应用程序设计的,一般在应用程序第一次启动时会打开一条到数据库连接,然后保持连接的打开状态,直到应用程序结束。这种技术适合于大多数的内联网应用程序,因为客户机连接的总数是个已知量,而应用程序的状态一是由应用程序控制的,因此也是己知量。虽然对于单层的桌面应用程序和两层的客户机/服务器风格的应用程序来说这个方法完全适用,但对于n层的基于Web的应用程序,这个方法就非常受限制。因为Web是个公共的环境,Web应用程序所要求的打开连接的总数是个未知量,这个数字变化可能会很快也很大,刚才应用程序还只是需要几条连接,但转眼间这个数就可能上升到几千。在这种环境中保持连接打开会影响伸缩性,因为每条连接都存在有初始化以及与后台数据库连接的开销,而且每条打开的连接需要系统资源才能保持打开状态,这样就减少了其他数据库操作可以使用的资源。随着ADO的发展,Microsoft在其中加入了非连接的RecordSet这样的机制,以处理Web风格的应用程序,但这些并不包括在ADO最初的设计中。
2 ADO.NET数据访问机制
Microsoft设计了ADO.NET来处理基于Web的应用程序要求的非连接运行环境。ADO.NET的这种非连接设计可以为企业应用程序提供良好的可伸缩性,因为在每个客户机系统和数据库之间不需要维护已打开的连接,而是在初始化客户连接时,短暂地打开一条到数据库连接,从数据库服务器检索请求的数据,然后关闭连接。客户应用程序然后完全独立于数据库服务器所维护的数据存储器来使用这些数据。客户应用程序能够在它的数据子集中导航,对数据作出修改,数据一直缓存在客户端,直到应用程序指明它需要把修改发送回数据库服务器。此时,会短暂地再打开一条与服务器的连接,客户应用程序进行的所有修改用一个更新批处理操作发送给数据库,然后断开连接。
3 ADO.NET数据访问机制的核心组件
ADO.NET实现非连接机制的核心组件是DataSet。DataSet本质上是一个微型的内存中的数据库,它独立于后端数据库维护。打开和数据源的连接只是为了填充DataSet,或把对DataSet中数据的修改发送回数据库,这个非连接的计算方案把系统开销降到了最低程度,并且提高了应用程序的吞吐量和可伸缩性。ADO.NET中的对象DataSet所提供的内存中的数据库具有完整的数据库的许多功能,如支持数据关系,能创建视图,支持数据约束以及支持外键约束。但是,作为内存中的结构体,它不支持像SQL Server这样的企业级数据库产品所具有的许多高级功能。例如,DataSet不支持触发器、存储过程和用户定义的函数。
支持非连接的基于Web的应用程序是Microsoft设计ADO.NET时优先考虑的要求,但ADO.NET的功能不止于此。非连接模式也许适合Web应用程序,但对客户机/服务器和桌面应用程序来说不算是最佳模式。当这些类型的应用程序在连接模式下运行时,效率和性能会更高。为了支持这种连接的计算模式,ADO.NET还提供了一个DataReader对象,DataReader提供了数据访问的快速的只向前的游标方式,在连接的模式下运行。DataSet为非连接的Web应用程序提供了基础,而DataReader提供了桌面和客户机/服务器应用程序需要的、快速连接的数据访问方式。
4 组成ADO.NET数据访问技术的命名空间
ADO.NET被实现为.NET Framework中的一组类,这些ADO.NET类组合在.NET Framework的System.Data命名空间之下。有几个重要的命名空间组成了ADO.NET数据访问技术。首先,.NET数据提供者在System.Data.SqlClient、System.Data.OracleClient、System.Data.OleDb和System.Data.Odbc命名空间中实现。这4个命名空间中的类提供了所有其他ADO.NET对象要求的底层数据库的连接性。System.Data.SqlClient命名空间提供到SQL Server 7和SQL Server 2000数据库的连接性。System.Data.OracleClient命名空间提供到Oracle 8和Oracle 9数据库的连接性。System.Data.OleDb命名空间提供到SQL Server 6.5和其他早期数据库以及Access和Oracle数据库的连接性。System.Data.Odbc命名空间提供到使用ODBC驱动程序的遗留数据库的连接性。这些类也提供对执行命令、以快速只向前的访问方式检索数据和加载ADO.NET DataSet的支持。其次,System.Data命名空间本身也包含了类。可以认为这些类是ADO.NET技术的核心,它们提供了对新的ADO.NET DataSet和它的支持类的支持。前面说过,DataSet是个内存中的数据库缓存,用于非连接方式。DataSet由完整的表、列、约束、行和关系的集合组成,还包含适当命名的DataTables、DataColumns、DataConstraints、DataRows和DataRelations。
5 结束语
ADO.NET是当前开发基于数据库的应用系统中的重要技术,是为了实现广泛的数据控制而设计的,不像以前的ADO版本是为了存取数据库的目的而设计的,所以用起来比ADO更灵活、更有弹性,也提供了更多的功能。ADO.NET对象可以快速简单地存取各种数据,如何将这种技术成功地应用到自己的应用系统中,发挥其最大的优势,减少系统瓶颈,提高应用性能,是一个复杂而艰巨的任务,需要对系统的各个环节都有深入的了解和把握。
参考文献
[1][美]Martin Brett Tomson.循序渐进ASP.NET教程[M].万松明,张滨义,译.北京:人民邮电出版社.
[2]康博.C#高级编程[M].北京:中国青年出版社,2002.
[3]深入浅出C#程序设计[M].中国铁道出版社,2006:285-290.
.NET体系结构 篇2
(一)再次梳理业务:结账
机房收费系统中,管理员有项结账功能,目的是为操作员结账结账内容如图
其中有售卡张数,退卡张数,收入金额等,而没有消费金额。vcD4KPHA+ICAgICAgICDV4srH0vLOqrLZ1/fUsda7ysfSu7j2uLrU8MrVyOvWp7P2tcShsLncvNKhsSy2+NXm1f21xNGn0KPK1cjrysfRp8n6z/u30bXExMeyv7fWoaM8L3A+CjxwPiAgICAgICAgvtm49sD919OjusTjsOzA7cHL0rvVxb+oo6yyotTawO/D5rPkJiMyMDU0MDvByzEwMNSqo6zP+7fRwcsyMNSq1q66877Nzcu/qMHLo6zNy7j4wcvE4zgw1KosxMfDtNGn0KO1xNXm1f3K1cjrvs3Kx8THMjDUqqGjtviy2df31LHWu8rHuLrU8NXiuPa5/bPMo6zWu8rHuLrU8LLZ1/ew1cHLo6zL+dLUy/u6zdGnyfrP+7fRtuDJ2crHw7vT0LnYz7W1xKGjPC9wPgo8cD7L+dLU1NrI1b3h1cu1pbrN1ty94dXLtaXW0L7N09DP+7fRvfC27tXi0rvP7jwvcD4KPHA+PGltZyBzcmM9“www.2cto.com/uploadfile/Collfiles/0525/20150525094218208.jpg” alt=“”>
在这个表中,消费金额才是学校真正的收入,而充值金额虽然多,但学生可能随时可以退卡,
这部分并不是学校的真正收入。
理清了这一部分,所以操作员中结账按钮和日结账单和周结账单并不挂钩。
(二)表结构
我的机房收费中,将卡表和学生表合并到一张表里面。如图
系统中也是严格按照三范式。虽然并没有什么错,但我认为在实际应用中还是要从实际业务出发,也就是具体业务具体分析。
严格的E-R图中,所有实体关系应该是一对多的,不存在多对多,如果这样就要再抽出一张表。而一对一的关系也完全可以放到一张表中,因为一个学生严格的对应一张卡,反之亦然。而且学生表字段和卡表字段并不是非常多,放到一张表并不会造成数据量太大的问题。
放到一张表,我完全可以只操作一张表就可以操作所有信息,避免了容易修改学生信息的同时,忘接了修改卡表,造成信息不对称的结果。操作效率也大大提高。
.NET体系结构 篇3
关键词:烟草行业;.NET技术平台;客户服务;CRM
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)15-30600-02
Design .NET Framework Structure of the Tobacco Industry Customer Service System (CSS)
XUE Xun-ming, SU Ming, WANG Fei, SHI Yun-yu
(China Tobacco Anhui Industrial Corporation, Hefei 230081, China)
Abstract:After Chinese accession to the WTO, the tobacco industry enterprises face increasing pressure and promoting marketing services is particularly important. However, in the era of Internet customers with more choice than in the past can be close or leave you by the mouse. Therefore, only meeting customer demand is far from enough for the enterprises. It is important that how the service can leave the customers the deep impression. CSS as promising enterprise solutions, shows its customer service center is into irreplaceable important position.
Key words:tobacco industry; .NET technology platform;Customer Service System;CRM
1 系统的社会背景,目标
中国的烟草专卖制度将进行巨大的改革,以“专控、专管、专卖”为特征的产销模式将会发生变化。各个烟草工业企业不仅仅顶着国内兄弟企业的竞争,而且还好面对庞大的国际烟草进入中国的竞争。建立一套以客户为中心的信息管理系统,将为烟草工业企业的生存与发展带来不可估量的价值!
系统的目标一是建立完整的客户数据档案库,把全国各地的客户数据收集、集中进行加工。为工业企业开展服务营销奠定了基础。因为只有拥有客户资料和数据,才能提供相应的服务。数据库内容包括客户基本信息、联系人基本信息、客户活动跟踪信息、客户联系活动历史数据、销售机会跟踪信息、事务和文章信息、产品销售信息、产品分类和基本信息、产品成本、产品库存、供货商基本信息、基本进货信息、竞争对手基本信息、客户重要事件、客户投诉信息。根据烟草行业的特点,我们首先把客户分为两大类,一类是我们的渠道客户——全国各地的烟草公司,第二类是,我们的终端客户,消费者。这样细化,更有利为开展服务营销。二是给客户提供个性化服务。打造“服务营销体系”的基础性工具。利用计算机技术,对庞大的客户数据进行相应的个性化服务的预警设置。这样再大的客户数据我们都能够提供及时的、个性的服务。
2 应用系统支持平台选型
应用系统支持平台选用Microsoft .Net。选用该平台的理由:
系统架构层次图
a、系统不仅提供应用系统支持环境,而且还提供一个一致的面向对象的编程环境。
b、提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境。使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。便于系统的二次开发和功能的扩展。
c、按照工业标准生成所有通讯,以确保基于 .NET 框架的代码可与任何其他代码集成。工业标准可以方便同其它应用系统对接。支特XML开发,支特SOAP协议开发,强大的Web Service功能。ADO.NET 创建分布式数据共享应用程序提供了一组丰富的组件。
d、丰富的界面开发控件,能够编写精美漂亮的客户应用程序界面。
3 系统的架构
出于对系统的可扩性、兼容性、健壮性和代码可重用性等方面的考虑,应用系统采用多层分布式架构。采用多层分布式架构的好处:
a、三层结构体系:最适合Internet/Intranet环境,可以使系统有很强的可扩展性和可管理性。
b、分布式环境:可以保证系统的稳定性,同时拥有较高的性能。
c、面向对象的模块化组件设计:可以提高开发速度,降低开发成本,提高兼容性,提升质量。
d、稳定可靠的性能适应面向全国乃至世界的应用服务系统,便于提供7天×24小时不间断的服务。
核心功能由商业逻辑层管理,便于专员对系统的管理和维护。系统的瘦客户端便于安装和应用用户的扩容。
I、应用层:做到界面美观、友善、色调给人愉悦感。应用层运行于Windows2000和WindowsXP平台之上,能够自动调整界面风格(Win XP风格)。系统格调始终保持一致,不因窗体大小的变化而改变。对不安全操作做出提示,不因误操作而删除系统关键数据。数据的更改做到界面表现和系统数据库及时同步。
II、商业逻辑层:做到功能模块化,模块组件化。根据系统功能要求把系统分为12大模块:
客户管理:该模块完成客户及客户联系人基本信息的增加、修改、查询和删除操作,客户分组管理,联系人管理。在该模块中能够完成与客户相关信息的增加、修改、查询和删除操作。
行动管理:完成联系活动、历史记录的管理,能够日历制定活动,查看某一时间的活动情况,设置预警事件和预警时间,系统能够根据预警信息及时报警提示用户。
销售管理:完成对市场销售机会信息跟踪,能够评估销售情况,给调整策略提供有利的参考。利用手机短信实时收集市场品牌销售信息,既方便又很及时。
预警管理:完成相应信息的增加、修改、删除和查询操作。能够进行相应的积分管理,设置友情预警,礼品馈赠安排。
投诉管理:利用先进的call-center模块来完成投诉信息的增加、修改、删除和查询操作。
打印管理:根据系统要求制定各种统计报表,支持图形表示,能够对报表进行预览并打印报表,能够对各个网格中的列表信息打印成报表。同时能够生成电子表格报表。
共享和监控管理:完成共享信息的发布,用户可以浏览和查阅共享数据库。领导可以通过查询子系统浏览客户服务信息。
系统安全设置和字典管理:完成对系统安全管理,权限管理,对不同级别的用户登陆系统,可以操作的权限进行控制,同时增加、修改、删除和查询各个字典表。
短信中心:形成一个企业级的短信平台,能够根据相应的预警信息发送出提示、祝贺短信。支持短信群发,短信防伪查询,短信报表(利用手机短信自动的生成报表)等功能。
通信模块:三层结构中不同层间数据交换的同步和格式统一控制,通信协议采SOAP协议,以XML来制定数据统一格式。
系统控制模块:完成模块的组装和业务流程的控制。系统能够自救处理当系统有错误操作发生时能及时的反应并自动释放错误操作所占用的资源进行自救。强大的支持系统数据导入到Office系统。
Call-Senter模块:利用800电话线和先进的语音技术,来接受客户的相应的产品咨询、建议,防伪查询等功能。
III、数据层:数据库管理系统选用ORACLE数据库管理系统,主要考虑它的以下特点:
(1)规模可变:ORACLE设计为规模可变,从小型数据库到大型数据库,可以很好地满足数千到数十万用户规模的数据库需求,性能稳定。
(2)支持数据中心:ORACLE管理大型数据库及支持数据复制的能力使它能够处理企业的数据中心。可以用ORACLE实现分布式功能。
(3)内置在线分析过程。ORACLE有强大的工具设置可以用来执行在线分析过程(OLAP),可以用它来进行组织报告,数据建模和决策支持。
(4)内置容错性。ORACLE包括了大量的帮助保证任务关键数据不丢失的特性。
4 系统的安全性设计
(1)硬件设备的安全性:系统数据存储采用热插拔SCSI硬盘,考虑到系统对数据可靠性有一定要求,本方案中使用RAID1模式磁盘阵列。
(2)数据库安全性:数据库系统使用ORACLE,它在数据库安全性方面的特性使得它在这种场合已经绰绰有余。对不同级别的用户分配不同的权限,以保证信息库的统一性和完整性。辅之以RAID1模式的硬盘镜像,即使其中一个硬盘出现故障,也不会造成系统数据的丢失,大大增强了系统可靠性。
(3)网络安全性:作为一个正常运行的网络设备,信息安全是其正常运行的基础。基于以上对网络安全性的衡量标准,结合当前的实际情况和现在的计算机技术等各方面因素,我们认为该系统要保证信息安全必须实现以下的网络安全功能:对象认证、访问控制、数据保密性、数据完整性以及防抵赖性。
(4)系统操作安全性:对系统操作员根据不同类型的用户授予不同的数据管理权限。我们将权限分为三类:数据库登录权限类、资源管理权限类和数据库管理员权限类。
5 HYCSS的特点和特色
(1)5大流程:第一流程:客户数据流程(单位,个人;零售商,消费者)客户数据收集、客户数据管理等;第二流程:客户投诉处理流程,我们称之为被动式客户服务;第三流程:客户服务个性化行动流,能够对不同客户设置相应的预警信息,自动的实现个性化的服务;第四流程:客户操作流程,为什么需要客户操作流程(如某市烟草公司)。主要是重要客户需要区别对待,需要协同攻关,客户攻关过程往往是长期过程,有的可能长达2-3年,因此需要一个平台,记录、沟通、操作。客户操作的主要动作是:业务员提出某个客户的问题以及相应对策和配套要求,这样业务经理对对策或要求,做出答复和批示,各级领导可以查看、指示、相关人员可以评论和提供相关消息这样就形成业务员、上级、相关人员形成一个协同工作平台。第五流程:市场营销信息处理对调拨信息、销售信息、库存信息、行业动态信息等的及时的处理。
(2)XML架构。国际数据新标准的先进体系、Web Service架构(微软先进的体系平台)体现了安全性、跨平台性、精致性、扩展性、丰富性、方便性、个性化、集成性。
(3)设立的两类客户类型——单位客户、个人客户,使客户同时具备两类,尤其是针对具有强烈个人色彩的客户服务。
(4)客户类型的完全自定义能力。可以设立各种客户类型;比如,按地区分类的客户、按重要性和地区结合的客户、业绩分类的客户等等。既方便也灵活。
(5)短信中心服务自由、快捷、低成本。短信和客户数据库和业务流程紧密联动,可以定制化短信,部门的任意短信的群发和收、内部员工互发短信、短信收集品牌日销量并自动统计、短信防伪查询等等。
(6)CRM部分与企业通讯中心的紧密结合。CRM与呼叫中心的融合和互动、CRM与短信中心的融合和互动、CRM与网络(因特网,局域网)的融合和互动,这样导致客户数据的“动”起来,企业通讯中心与客户“沟通”起来,最终形成1+1+1>3的效果。带来营销业务运作流程的数字化、动态化、综合化、扁平化管理、高效化、一体化、多样化。
三网融合的客服系统模型
6 结束语
HYCSS提供客户关系管理(CRM)的各种服务。使得客户服务部门与客户的沟通更加方便,提高工作效率、工作质量、降低运作成本。使客户服务部门可以更加方便地实施个性化的服务。比如,生日等友情问候,客户的消费积分查询和管理,通知客户某些特定消息,品牌宣传,客户的分类统计,客户的投诉处理和反馈。通过Internet网络支持,使得收集全国各地经销商数据更加容易、更加深入,和更加具有规模性,成本更低。使客户数据、尤其是经销商更加可靠、更加准确,更加便于管理。使客户数据库成为市场运作的核心构件之一。
促进烟草市场渠道的建设,建设国内领先的经销商数据库及数据,打造企业的核心竞争力。逐步提升的高科技含量的形象和实际联络的亲合力、提升品牌形象、逐步提升企业在行业中的地位和影响力、逐步提升企业的客户服务的质量、规模和效率,提高了客户满意度。为扩大市场占有率、“大品牌、大企业、大市场”的战略做好服务。
参考文献:
[1] (德)CHRISTIAN HOLM, MIKE KRUGER,BERNHEARD SPUIDA. C#软件项目开发全程剖析[J]. 北京:清华大学出版社,2003.
[2] 孙维煜, 刘杰, 胡方霞, 陈发吉, 等. C#案例开发[J].中国水利水电出版社,2005.
[3] Matthew Bortniker & John Carnell, 等. Oracle 8i应用高级编程——Java,PL/SQL和XML深入开发[J]. 北京:清华大学出版社,2002.
[4] 冯春培, 盖国强, 冯大辉, 叶梁. Oracle数据库DBA专题技术精粹[J]. 冶金工业出版社,2004.
.NET体系结构 篇4
1.1 两层结构及其局限性
两层结构有如下特点:
数据库访问和用户类型判断逻辑放在一起实现。
用户界面层直接调用数据访问实现。
整个系统功能放在同一项目中实现。
传统的两层结构的特点是用户界面层直接与数据库进行交互, 还要进行业务规则、合法性校验等工作。两层结构软件模型如图1所示。
这种结构存在着很多局限性, 比如:一旦用户的需求发生变化, 应用程序都需要进行大量修改, 甚至需要重新开发, 给系统的维护和升级带来了极大的不便, 用户界面层直接访问数据库, 会带来很多安全隐患。为了克服两层结构的局限性提出了三层结构。
1.2 定义
所谓三层体系结构, 是在客户端与数据库之间加入了一个“中间层”, 也叫组件层。这里所说的三层体系, 不是指物理上的三层, 不是简单地放置三台机器就是三层体系结构, 也不仅仅有B/S应用才是三层体系结构, 三层是指逻辑上的三层, 即使这三个层放置到一台机器上。通用三层结构软件模型如图2所示。
中间层通常包括业务逻辑层、数据访问层和数据对象模型层。此时的三层结构软件模型如图3所示。
用户界面 (User Interface, 简称UI) , 也称表示层, 位于最上层, 用于显示和接收用户提交的数据, 为用户提供交互式的界面。表示层一般为Windows窗体应用程序或Web应用程序。
业务逻辑层是表示层和数据访问层之间沟通的桥梁, 主要负责数据的传递和处理。
数据访问层主要实现对数据的读取、保存和更新等操作。
数据对象模型层即业务实体层。主要用于表示数据存储的持久对象。在实际应用程序中的实体类是跟数据库中的表相对应的, 也就是说一个表会有一个对应的实体类。当然有些三层结构并不包含单独的数据对象模型层, 而将其功能分解到业务逻辑层和数据访问层之中。
在三层结构中, 表示层直接依赖于业务逻辑层;业务逻辑层直接依赖于数据访问层;数据访问层直接依赖于数据对象模型层。
1.3 优势
三层结构主要体现出对程序分而治之的思想:数据访问层只负责提供原始数据, 并不需要了解业务逻辑;业务逻辑层调用数据访问层提供的方法自定义一些业务逻辑, 对数据进行加工, 本身不需要了解数据访问层的实现;表示层直接调用业务逻辑提供的方法把数据呈现给用户。
三层结构的优点在于不必为了业务逻辑上的微小变化而迁至整个程序的修改, 只需要修改商业逻辑层中的一个函数或一个过程;增强了代码的可重用性;便于不同层次的开发人员之间的合作, 只要遵循一定的接口标准就可以进行并行开发了, 最终只要将各个部分拼接到一起构成最终的应用程序。
三层结构的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下, 客户端不直接与数据库进行交互, 而是通过COM/DCOM通信与中间层建立连接, 再经由中间层与数据库进行交互, 这样会大大提高系统的安全性。
三层结构的应用程序更能够适应企业级应用日益增长的复杂度和灵活性的要求, 并且通过软件分层的高内聚、低耦合的原则, 实现扩展、维护和重用的要求, 可以大大提高开发效率。
2 搭建ASP.NET的三层结构框架
ASP.NET可以使用.NET平台快速方便地搭建三层结构。ASP.NET革命性的变化是在网页中也使用基于事件的处理, 可以指定处理的后台代码文件, 可以使用C#、VB作为后台代码语言。.NET中可以方便地实现组件的装配, 后台代码通过命名控件可以方便地使用自己定义的组件。表示层放在Web窗体中, 业务逻辑层、数据访问层和数据对象模型层用类库来实现, 这样就很方便地实现了三层结构。其方法如下。
(1) 建一个数据库 (简单起见可建Access数据库) , 以备存取数据。
(2) 新建解决方案
打开VS 2008, 新建一个“空白解决方案”, 将其命名为“Three Layers”。
(3) 搭建表示层 (网站)
在“解决方案资源管理器”中, 新建一个网站, 其存放位置为解决方案文件夹下的My Web子文件夹。
(4) 搭建业务逻辑层 (类库)
在“解决方案资源管理器”中, 新建一个“类库”项目。填写项目的名称为“Business Logic Layer”, 该项目用于实现业务逻辑。
(5) 搭建数据访问层 (类库)
在“解决方案资源管理器”中, 新建一个“类库”项目。填写项目的名称为“Data Access Layer”, 该项目用于实现数据访问层。
(6) 搭建数据对象模型层 (类库)
在“解决方案资源管理器”中, 新建一个“类库”项目。填写项目的名称为“Models”, 该项目用于实现数据实体。至此, 已搭建了三层结构 (添加了4个项目) 。
(7) 添加各层之间的依赖 (引用)
此时, 虽然三层结构的基本框架已经搭建成功, 但是各层之间是独立的。只有添加依赖关系, 才能让它们相互协作。
1) 添加表示层对业务逻辑层、数据访问层和数据对象模型层的依赖。
2) 添加业务逻辑层对数据访问层和数据对象模型层的依赖。
3) 添加业数据访问层对数据对象模型层的依赖。
至此, 三层结构及各层之间的依赖关系创建完毕。
(8) 将表示层设置为启动项目
通过上述步骤, 就已经成功部署了ASP.NET的三层架构。表示层My Web网站放置用于显示的Web页面;事务逻辑层Business Logic Layer项目, 把所有的业务逻辑代码在该层实现;数据访问层Data Access Layer项目主要处理数据库的操作, 供事务逻辑层调用;数据对象模型层Models项目实现数据实体类, 供其他各层调用。只要在各个层中实现具体的类就可以成功实施三层结构的应用程序了。
3 应用举例
3.1 系统分析
本例的功能非常简单, 只是实现用户登录与注册的功能, 用户信息存放在数据库中, 旨在体现如何用ASP.NET实现三层结构。
表示层My Web网站放置用于显示的Web页面;事务逻辑层Business Logic Layer项目, 把所有的业务逻辑代码在该层实现;数据访问层Data Access Layer项目主要处理数据库的操作, 供事务逻辑层调用;数据对象模型层Models项目实现数据实体类, 供其他各层调用。
各层次之间的调用 (引用) 关系如表1所示。
3.2 创建框架
3.2.1 建立数据库
打开Access创建名为userinfo.mdb的数据库, 并为其创建一个名为t_User的表, 其结构如图4所示。
3.2.2 新建解决方案
打开VS 2008, 依次选择“文件”→“新建”→“项目”命令, 打开“新建项目”对话框中, 然后选择项目类型为“Visual Studio解决方案”, 选择模板为“空白解决方案”。然后填写解决方案的名称为“Three Layers”, 并指定保存位置, 如图5所示。单击“确定”按钮, 创建解决方案。
3.2.3 搭建表示层
(1) 在“解决方案资源管理器”中, 在解决方案名称上单击鼠标右键, 在弹出的快捷菜单中选择“添加”→“新建网站”命令。
(2) 在打开的“添加新网站”对话框中, 选择“ASP.NET网站”, 选择位置为“文件系统”, 并设置网站的路径, 如图6所示。
(3) 设计Default.aspx如图7所示。
(4) 添加一Web窗体, 将其命名为Welcome.aspx, 其设计视图如图8所示。
(5) 添加一Web窗体, 将其命名为Register.aspx, 其设计视图如图9所示。
(6) 将建好的userinfo.mdb拷贝到站点的App_Data文件夹下。
(7) 添加Global.asax, 在其Application_Start () 添加如下代码。
3.2.4搭建业务逻辑层 (类库)
在“解决方案资源管理器”中, 在解决方案名称上单击鼠标右键, 在弹出的快捷菜单中选择“添加”→“新建项目”命令, 打开“新建项目”对话框中, 然后选择项目类型为“Visual C#”, 选择模板为“类库”。填写项目的名称为“BusinessLogic Layer”, 该项目用于实现业务逻辑。此时项目的保存位置已经默认输入了, 是刚才创建空白解决方案时产生的路径, 如图10所示。
3.2.5 搭建数据访问层 (类库)
在“解决方案资源管理器”中, 在解决方案名称上单击鼠标右键, 在弹出的快捷菜单中选择“添加”→“新建项目”命令, 打开“新建项目”对话框中, 然后选择项目类型为“Visual C#”, 选择模板为“类库”。填写项目的名称为“Data Access Layer”, 该项目用于实现数据访问层。此时项目的保存位置已经默认输入了, 是刚才创建空白解决方案时产生的路径。
3.2.6 搭建数据对象模型层 (类库)
在“解决方案资源管理器”中, 在解决方案名称上单击鼠标右键, 在弹出的快捷菜单中选择“添加”→“新建项目”命令, 打开“新建项目”对话框中, 然后选择项目类型为“Visual C#”, 选择模板为“类库”。填写项目的名称为“Models”, 该项目用于实现数据访问层。此时项目的保存位置已经默认输入了, 是刚才创建空白解决方案时产生的路径。
至此, 已搭建了三层结构 (添加了4个项目) , 此时的解决方案如图11所示。
3.2.7 添加各层之间的引用 (依赖)
此时, 虽然三层结构的基本框架已经搭建成功, 但是各层之间是独立的。只有添加依赖关系, 才能让它们相互协作。
(1) 添加表示层对业务逻辑层、数据访问层和数据对象模型层的依赖。
在“解决方案资源管理器”中, 在表示层上单击鼠标右键, 在弹出的快捷菜单中选择“添加引用”命令, 打开“添加引用”对话框, 然后选择“项目”选项卡, 选中项目名称为“Business Logic Layer”的项目, 单击“确定”按钮, 如图12所示。
同样添加对Data Access Layer和Models的引用。
(2) 添加业务逻辑层对数据访问层和数据对象模型层的依赖。
在“解决方案资源管理器”中, 在业务逻辑层上单击鼠标右键, 在弹出的快捷菜单中选择“添加引用”命令, 打开“添加引用”对话框, 然后选择“项目”选项卡, 选中项目名称为“Data Access Layer”的项目, 单击“确定”按钮。
同样添加对Models的引用。
(3) 添加数据访问层对数据对象模型层的依赖。
至此, 三层结构及各层之间的依赖关系创建完毕。现在Three Layers解决方案资源管理器应该如图13所示。
3.2.8 将表示层设置为启动项目
运行程序前, 还需设置启动项目。在“解决方案资源管理器”中的表示层上单击鼠标右键, 在弹出的快捷菜单中选择“设为启动项目”命令, 将表示层设置为启动项目。
将表示层设置为启动项目后, 表示层 (站点) 自动创建了Bin文件夹, 该文件夹下生成了:Business Logic Layer.dll、Business Logic Layer.pdb、Data Access Layer.dll、Data Access Layer.pdb、Models.dll和Models.pdb等6个文件, 如图14所示。
.NET体系结构 篇5
因此,在处理生成的代码之前,绝对需要了解 XmlSerializer 的内部原理,当然也就需要一种了解其内部原理的方法。
当对象即将进行 XML 序列化时,将通过反射您传递给 XmlSerializer 构造函数的类型来创建一个临时程序集(这就是您需要那么做的原因)。请等一下!不要因为“反射”一词而感到害怕!这对于每个类型只执行一次,并且在AppDomain生命期内,将创建一对极为有效的Reader和Writer类来处理序列化和反序列化。
这些类继承了 System.Xml.Serialization 命名空间中的 XmlSerializationReader 和 XmlSerializationWriter 公共类。它们还是 [TheTopSecretClassName]。如果您希望看一下这些动态生成的类,您只需向应用程序配置文件(对于 Web 应用程序,为 web.config)中添加以下设置:
现在,序列化程序将不会删除在该过程中生成的临时文件。对于 Web 应用程序,这些文件将位于 C:Documents and Settings[YourMachineName]ASPNETLocal SettingsTemp 中;或者,它们将位于当前用户的 Local SettingsTemp 文件夹中。
您将看到的代码就是当您希望有效地加载 .NET 中的 XML 时需要编写的代码:使用嵌套的 while 和 if 语句进行读取,使用XmlReader方法在数据流中向下移动,等等。使用这些丑陋代码的目的就是使该处理过程真正地快起来。
还可以通过使用 Chris Sells 的 XmlSerializerPreCompiler 工具来诊断所生成的这些类中的问题。
我们可以查看此代码,以便分析在序列化程序所生成的类中进行更改的效果。
返回页首
★ 新版.NET开发十大工具简介
★ net实习周记
★ .net软件工程师简历范文
★ 浅析.Net下的多线程编程.net
★ 铭万公司.net笔试题
★ 用MFC如何高效地绘图.net
★ VB访问数据库的方法与原则.net
★ 人才开发专项资金使用协议书
★ Android中AsyncTask使用
高职ASP.NET课程教学改革 篇6
【关键词】高职 ASP.NET 教学改革
【中图分类号】G 【文献标识码】A
【文章编号】0450-9889(2014)12C-0145-02
ASP.NET技术与应用是操作性非常强的课程,高职院校需要积极处理好影响教学的各个因素,综合利用好学生的学习热情与学校的教学环境,提高ASP.NET课程教学的质量,做到边教边演示,让学生可以更有效地接受理论与实践知识的教育。
一、高职ASP.NET课程教学现状
目前,ASP.NET课程在国内许多高职院校都作为计算机专业的必修课以及核心教学课程,教学方法除了采用传统的教学方法之外,逐渐加入了项目实践的教学方式,但是传统教学方法在整个教学课程当中占的课时比例是相当大的,从课时比例来看,高职院校目前ASP.NET的课程仍处于比较传统的教学理念,教学的改革力度稍显偏弱。
(一)传统理论教学
高职ASP.NET课程的传统教学主要依靠教师在课堂上按照课程计划,分阶段有步骤地向学生进行以教师讲课为主、学生听讲的授课方式,循序渐进地讲授ASP.NET课程的知识点,学生每天在课堂上按部就班地学习知识点,学生考核主要通过平时教师布置作业以及期末课程考试进行综合考评。综合近几年ASP.NET课程的考卷题目分析,可以发现随着教育界呼吁增强学生的实践和操作能力,卷面上关于操作题和实践题的比重在逐渐增大,这不得不说是传统教学尝试改革的一个进步。但是由于传统教学方法依然存在过于强调语法与理论知识,学生往往在学了一大堆语法和理论知识后对如何开发操作实际项目还是没有什么头绪。而讲究实际操作,要求开发操作能力强的计算机专业学生缺乏实际操作能力,是历年来毕业生求职遭拒的主要影响因素,校方应针对毕业生就业难这个问题重新思考定位ASP.NET教学课程建设,有针对性地引导学生进行ASP.NET理论知识积累与实际操作并进的学习,使毕业生个人技能能够满足社会公司企业的人才需求。
(二)实践课程
ASP.NET是一个全面向对象的技术,具有超强操作性的要求,前导课有ASP、C#程序设计以及数据库原理与应用等课程,基本的C#语言与面向对象编程模式要熟练掌握,数据库操作ado.net必须学会。ASP.NET是建构在NET Framework之上的技术,对NET Framework了解得越深,学习ASP.NET就越快。ASP.NET课程的后续课程主要有软件工程和软件测试等,高职院校一般将课程开设在第五学期,其主要目的是为软件技术专业学生提供更完备的项目开发知识,高职学生由于在校时间短,普遍在校学习时间是两年半左右,因此课程安排得比较紧密,没有多少时间安排在实践课程上,尤其是创新实践课程,由于受到的限制比较多,普通高职院校的创新实践课程安排的很少,甚至有的高职院校并没有开设联外的创新实践课程,学生缺乏项目工程建设的实际锻炼,不利于毕业后的就业工作。
二、学习ASP.NET技术步骤
(一)学习HTML与CSS
高职学生学习HTML与CSS的时候关键是要理解HTML网页嵌套的block结构与CSS的box模型。因为许多ASP.NET控件最后都必须转化为HTML。而且,DIV+CSS是当前主流的网页布局模型。在学习这部分知识的时候,学生主要是对相关的概念要理解透彻,而关于美化网页的技巧可以稍微学习,不需要花费过多精力。
(二)学习JavaScript
Java Script功能强大,主要运行于浏览器端,目前在网站开发中应用得很多,用户可以利用客户端网页中的HTML元素编写代码访问生成新的HTML代码,从而可以实现动态修改网页显示特性的目的。
(三)学习计算机网络原理
利用大学教材《计算机网络》来填充计算机网络原理理论知识,尤其是有关互联网的部分,要重点了解域名解析和HTTP协议等知识。
(四)学习ASP.NET表示层技术
结合面向对象技术简单地设计Web页面。首先要学会各种Web控件的使用方法,理解信息在网页中的传送方式,比如View State、Cookie、Session等的使用。接着了解ASP.NET应用程序与实现事件驱动的内幕、网页的生命周期以及自定义用户控件等。
(五)掌握数据库技术
要想掌握数据库,首先要学会使用SQL Server 2005,了解如何连接、建表、创建存储,并且学会运用各种工具与管理配置技术,接着学习ADO.NET,掌握使用代码人工访问数据库的方法,学习数据绑定控件的使用,理解多层架构,高职学生可以先自行上网查找一些多层架构的资料看,尝试分析一下比较复杂的开源ASP.NET项目的架构,多做项目练习,以培养对项目设计的灵感。
(六)学习XML与Web Service
学习XML的时候比较轻松,技术性要求也不是很高,高职学生去学校图书馆借与XML有关的计算机书籍认真看看,重点理论解释的地方理解一下就可以了,学完了XML知识后,就可以接着学习Web Service分布式开发知识。如果想要Web表示层看起来富有特性,高职学生也可以学习AJAX的相关知识。
以上这些知识与技能是高职学生学好ASP.NET技术必备的,高职院校在设计ASP.NET教学课程的时候可以根据ASP.NET技术的学习步骤来设计,有针对性地引导高职学生进行ASP.NET技术的理论知识储备与操作应用技能的学习。特别是这些计算机网络理论知识普遍比较抽象,教师应该运用边教边演示的教学方法,生动形象地向学生展示有关的理论与操作应用知识。endprint
三、高职ASP.NET课程教学改革与实践研究
想要搞好ASP.NET课程教学改革与实践,就要计划好课程目标,良好的课程目标包括理论知识、操作实践能力、综合素质教育等三个目标。
(一)理论知识
ASP.NET 是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,是运行于 IIS 之中的程序,ASP是 Active Server Pages(动态服务器页面)的缩略词。ASP.NET的理论知识主要涉及了ASP.NET的概念理解、ASP.NET的支持工具以及特色。高职高专院校课程目标要求学生熟练掌握ASP.NET的运行环境,能够充分理解面向对象的理论知识以及编程思想,因为面向对象其实是学习ASP.NET技术必备的基础知识,没有学会面向对象的相关基础知识,学生很难进行ASP.NET技术的学习。除了面向对象,高职学生还要求熟练掌握HTML与CSS、JavaScript、SQL Server 2005、ADO.NET、XML、Web Service以及Web的设计与控制管理等操作理论知识,全方位地理解ASP.NET技术的学习步骤,按照每个学期的教学课程计划完成相应理论知识的储备,精确掌握ASP.NET内部对象和应用程序配置,清楚程序的组织结构,能够对应用程序的文件进行配置管理,为ASP.NET项目建设提供有力的理论支持。
(二)操作实践能力
ASP.NET技术的特性表现出了很强的操作性,作为一种操作性强的程序,ASP.NET课程教学需要进行全面的改革创新,改变传统教学以理论知识教育为主的教学方式,增加ASP.NET技术的操作实践课,合理引进先进的ASP.NET项目建设模拟软件,利用模拟软件引导学生进行初级的项目研究开发,独立完成教师课上要求的操作练习。高职院校应该积极主动引导学生开展网页设计、项目设计、网站控制管理、网站推广营销等实践活动或者科学技术设计比赛,对外与相关公司企业建立好毕业生就业对接工作,根据公司企业对ASP.NET技术人才的要求,有针对性地培养学生各种软件的控制管理技能。近年来由于电子商务越来越火热,社会对于ASP.NET技术人才的需求增大,技术要求也更高,高职院校作为培养ASP.NET技术人才的重要基地,不仅需要贯彻落实好学生的理论知识的储备,更是要保证学生能够在毕业前能够学有所成,在毕业后能够顺利上岗就业。
(三)综合素质教育
从事计算机软件设计、项目编程、项目开发等是超级耗费脑力的事情,当事者不仅需要花费大量时间精力背代码,还要花费大量脑力来不断进行项目测试,检测程序运行,要经过大量时间的测试才有可能获得一个项目的圆满建成。很多时候,一个项目花费了很多个昼夜的工作,但是最终却可能由于某一个关键环节无法继续进行而导致整个项目终止,这种落差要求程序员有过硬的心理承受能力,否则容易降低工作积极性,甚至引起对自己工作能力的不满或者怀疑。这也从侧面反映高职院校在ASP.NET课程教学过程当中必须重视引导学生加强心理承受能力,提升学生的综合素质,引导学生在做软件编程或者项目开发时要有明确清晰的设计思路,项目主要负责人要科学合理安排好相关负责人的具体工作,按照项目设计模板分工合作,同时要注意加强团队的凝聚力和协作能力,提高整体的综合素质。
(四)课程考核
ASP.NET课程考核不仅包括对学生学习课程的学分考核,同时还包括了对教师的教学水平考核。通常来讲,对学生的课程考核主要依靠学生平时上课表现、实践课的操作水平以及期末综合试题考评等三项组成,期末考试适宜采用模拟软件进行综合理论知识和实际项目建设测试,对学生的综合学习能力和创新能力进行科学考评。对于教师课程教学考核主要从学生平时参加设计比赛、期末考试的总体情况并结合学生对教师的评价进行综合考核,以此来促进高职院校对ASP.NET课程教学的改革与实践,增强课程教学的创新水准。
浅谈.NET三层结构及其应用 篇7
在传统的Client/Server两层结构应用系统中存在着以下问题:
(1)数据库访问和用户类型判断逻辑放在一起实现,操作数据库的代码与界面代码混合在一起,一旦数据库发生哪怕是一点细微变化(例如字段名称改变),代码的改动量都是相当巨大的。
(2)用户界面层直接调用数据访问实现,当客户要求更换用户界面时(如要求改用IE浏览器方式访问系统),因为代码的混杂,改动工作也是非常巨大的。
(3)整个系统功能放在同一项目中实现,不利于协作开发,例如负责用户界面设计的工程师必须对美工、业务逻辑、数据库各方面知识都非常了解。
综合来说,两层结构不易维护、安全性差,难以适应需求变化,为了解决上述问题,我们可以考虑参考饭店的模式采用分层的方式来进行处理。
以饭店的场景为例:我们把饭店看作一个整体,它包括服务员、厨师和采购员三类角色。
饭店将整个业务分解为3部分来完成,每一部分均由专人负责,服务员只管接待顾客、向厨师传递顾客的需求;厨师只管烹炒不同口味、不同特色的美食;采购员只管提供美食原料;他们三者分工合作、共同为顾客提供满意的服务。我们开发的三层结构应用系统与饭店场景类似,如图所示:
具体来说,就是将不同功能的代码放到不同层的项目中去。例如:用户界面层的项目只存放在涉及用户界面功能的代码,业务逻辑层的项目只存放涉及业务逻辑功能的代码,三层结构应用系统具有两层结构应用系统不可取代的优势。当数据库或用户界面发生改变时不需要重新开发,只做简单调整即可,非常方便。
二、什么是三层结构
三层结构是指表示层、业务逻辑层、数据访问层。
(1)表示层:Presentation Layer,用于显示数据和接收用户输入的数据,为用户提供一种交互式的操作界面。表示层一般为Windows应用程序或Web应用程序。
(2)业务逻辑层:Bussiness Logical layer,是表示层和数据访问层之间通信的桥梁,主要负责数据的传递和处理,例如数据有效性的验证、业务逻辑描述等相关问题。业务逻辑层通常为类库。
(3)数据访问层:DataAccess Layer, 主要实现对数据的保存和读取操作。数据访问,可以访问关系数据库、文本文件或是XML文档等。数据访问层通常为类库。
打个比方来说,我们来要实现一个简单的功能:往数据库里插入一条学生记录。表示层只是处理界面应该怎么展示,比如控件的布局,然后调用中间层的一个访问,通过参数的形式转过去;业务逻辑层接到从表示层传来的数据,就调用数据访问层的方法;数据访问层只做与数据库打交道的工作,就是为了把业务逻辑层传过来的数据保存到数据库中。
在三层结构中,各层之间相互依赖:表示层依赖于业务逻辑层,业务逻辑层依赖于数据访问层。各层之间的数据传递方向分为请求与响应两个方向。
三、如何实现三层结构
(一)用ADO.NET实现三层结构
ADO.NET中的核心组件DataSet和.NET数据提供程序用于实现三层结构应用系统,DataSet的构建与解析工作主要在表示层、数据访问层完成,业务逻辑层主要对DataSet中的数据进行加工、处理和传递。简单地说,DataSet是整个三层结构中数据传递的介质。每个层要实现的主要任务是:
表示层:将DataSet中的数据展示给用户;将用户的请求数据填充到DataSet中。
业务逻辑层:将接收到的DataSet传递到下一层;根据用户请求对DataSet中的数据进行处理。
数据访问层:将数据库中的数据填充到DataSet中;将DataSet中的数据保存到数据库。
(二)用OOP实现三层结构
OOP在三层结构中的实现主要是通过实体类来体现,实体类就是描述一个业务实体的"类",业务实体可以认为属于业务逻辑层,如果将应用层次划分得更细致一点,可以将业务实体单独作为一层称为业务实体层,表示层、业务逻辑层、数据访问层都依赖于业务实体。各层之间数据的传递主要是实体对象。
OOP实体对象在每个层中的实现:
a) 表示层:将解析实体对象中封装的数据展示给用户;将用户请求的数据封装到实体对象中。
b) 业务逻辑层:将接收到的实体对象传递到下一层;根据用户请求对实体对象中的数据进行处理。
c) 数据访问层:将数据库中的数据封装到实体对象中或将多个实体对象封装成集合;将实体对象中的数据保存到数据库中。
(三)抽象工厂模式在三层结构中的应用
通过在三层结构中使用抽象工厂设计模式,可以实现多种数据库的无缝移植,只要做少量的修改就能移植到其他数据库平台。我们来看一下抽象工厂设计模式的结构图,如图所示。
从抽象工厂设计模式的结构图可知,整个模式中参与的对象主要有以下几类:
·抽象工厂,它的功能和职责是生产抽象产品
·实体工厂,它的功能和职责是生产实体产品
·抽象产品,它的功能和职责是提供实体产品访问接口
·实体产品,它的功能和职责是实现自己的功能
当我们使用三层结构开发应用系统,在数据访问层使用抽象工厂设计模式,可以很好的复用系统,根据需求的变化使用不同的数据库。抽象工厂设计模式在三层结构中的使用思路概括如下:
·提供一系列相互依赖对象的创建工作
·封装对象常规的创建方法(new)
·提供统一调用数据访问方法的方式
·避免调用数据访问方法和具体对象创建工作的紧耦合
总之三层结构合理地划分各层功能,使之在逻辑上保持相对独立性,从而使整个系统逻辑结构上更为清晰,提高了系统的可维护性和可扩展性;规范程序代码,提高重用度,降低了耦合度;充分利用业务逻辑层,有效地隔离开表示层和数据层,未授权的用户难以绕过中间层访问数据层,为严格的安全管理奠定了坚实的基础。
摘要:该论文从剖析两层客户/服务器模式中存在的问题出发, 提出了三层结构应用模式的设计思想, 并对各个层次进行理论研究, 从其内容到相互的依赖关系形成了一个较为完整的应用体系结构。研究三层结构的目的在于如何将三层结构应用体系很好的实现, 把客户/服务器结构下的应用提升到更高效、更完善、更灵活的层次。
关键词:三层结构,实体类,抽象工厂
参考文献
[1].《C#入门经典》 (第三版) .清华大学出版社, 2006。
[2].《Visual C#2005程序设计与应用简明教程》.清华大学出版社, 2007。
.NET平台下开发框架体系研究 篇8
(1) 框架应具备较好的通用性, 能应用于大多数基于B/S和C/S模式的项目开发。 (2) 框架应具备较强的安全性, 能保障系统的稳定运行。 (3) 框架应该是分层设计, 各层组件可以部署在一台服务器上, 也可以部署在多个系统中, 从而使整个系统具有很好的可扩展性。 (4) 多个开发人员可以共享数据库的连接。因为数据库连接不是表示层直接实现的, 而是由中间层调用数据访问层完成的, 通过同一中间层就可以实现对数据库连接的共享。 (5) 如果业务发生变化, 确保可以重新部署所有程序。
2、框架体系结构
现阶段的系统开发大多是基于B/S或者C/S模式, 相应的表示层通常表现为web和winform方式, 为了体现出更好的灵活性和通用性, 本框架没有对表示层进行设计, 而是在表示层下面加入了应用接口层, 应用接口层提供了表示层和下层之间的接口, 体现了设计模式中的依赖倒转原则, 降低了程序各部分之间的耦合。
这样, 框架可以同时应用于windows应用系统和web应用系统中。对于传统数据访问控制层, 可以再分为数据服务层和数据库操作层。其中, 数据服务层封装了三种数据访问方式:本地访问、分布式远程访问和Web Service访问。为了实现不同数据访问方式的调用, 还必须加入核心调用层的设计。同时, 框架还加入了安全防护层, 确保系统具有较好的安全性。
(1) 表示层。表示层是客户端的用户界面, 负责从用户方接收命令, 请求, 数据, 传递给应用接口层处理, 最后将结果呈现出来。根据不同的需要, 表示层可以表现为web或winform方式。 (2) 应用接口层。应用接口层作为用户表示层和下层的接口, 负责给用户表示层提供组件的访问接口, 并且负责封装用户表示层传入的数据信息。同时, 表示层还可以作为隔离层, 将用户界面与各种业务功能的具体实现隔离开来。 (3) 核心调用层。核心调用层根据配置文件的配置信息, 确定所需要调用的服务方式, 启动数据服务层。 (4) 数据服务层。数据服务层封装了三种不同的数据访问方式, 分别为本地访问、分布式远程访问、Web Service访问, 并且通过.NET特有的反射机制, 动态调用相应的数据库操作。 (5) 数据库操作层。数据库操作层定义了数据库操作组件, 执行对应的数据库操作, 返回结果集。
3、框架中的配置管理规范
.NET多层开发框架中的配置管理规范主要由配置文件Envir onment Manager。config和配置文件管理类Environment Manager组成。配置文件Environment Manager。config为标准XML格式文档, 规定了框架中各种配置信息的读写规范, 其主要内容包括:数据库连接信息、数据服务层实现方式信息和服务器管理信息等。
数据库连接信息定义了数据库的路径、数据库名、连接密码等基本信息;数据服务层实现方式信息定义了框架中数据服务层的实现方式, 分为Local、Remoting、Web Service三种;而服务器管理信息定义了对服务器进行管理控制的相关信息, 供服务启动和数据操作层使用。
配置文件管理类Environment Manager负责管理配置文件, 包括配置文件的路径、配置文件加载、配置文件中对应的键值的获取、验证等功能。
4、框架中的数据传输与共享
按照基于设计模式的软件开发方式, 框架的设计应该遵循接口与实现分离的原则, 即使利用已有的模块, 只要知道它预定义的接口和实现的功能, 不用关心其实现的细节, 对于我们具体的实际应用来说, 应该保证在确定输入和输出数据的情况下, 尽量实现“黑盒重用”。因此必须预定义框架中数据的输入和输出形式, 可以设计一个通用的数据传输共享类, 用来传递数据, 需要实现的共享信息主要包括:系统信息、用户信息、用户操作信息、操作数据信息、返回数据集信息。根据需要将共享信息封装到两个类中:操作参数类和数据传递基类。
4.1 操作参数类
操作参数类Request Parameter由环境信息和用户操作信息组成, 用于向框架各层之间传递信息。环境信息包括系统信息和用户信息。这里的系统信息和用户信息包括系统时间、登陆系统的主机名称、IP地址、用户ID等。环境信息由配置文件管理类对象Environ ment Manager获取, 用于应用接口层向下传递给核心调用层。用户操作信息包括用户调用的框架类和具体操作信息。
4.2 数据传递基类
在对数据库的操作过程中, 一般是以Data Table的形式返回数据集信息。同时由于用户在进行数据库操作时, 需要传递不同的操作参数, 这样就可以设计一个数据传递类, 专门用于数据的传递。这里由于用户传入参数的不确定性, 只定义数据传递基类Base Appli cation Data, 具体某部分进行数据传递时, 继承基类的实现, 加入具体的参数即可。数据传递基类的实现主要包括两个方面:一是获得参数的抽象函数接口, 二是获得结果集的抽象函数接口, 可以通过继承的方式定义具体参数类型和结果集类型, 并且具体实现这两个函数。
5、结语
实践证明, 基于开发框架的应用开发模式和传统的开发模式相比, 在系统开发前期不需要投入较多精力进行系统框架的搭建, 只需要建立开发框架所需要的运行环境, 搭建好开发平台, 就可以在此基础上快速开发应用程序, 能很大程度上缩短项目开发周期。
摘要:Microsoft.NET是基于互联网的全新架构, 利用其提供的ASP.NET、ADO.NET和XML等组件, 以及Web服务, 开发基于.NET框架的应用系统。实践证明, 使用.NET框架可使应用程序的开发、部署及与其他网络系统集成变得更容易, 并可提高软件稳定性和安全性。
关键词:.NET框架,ASP.NET,ADO.NET
参考文献
[1]金正淑, 闰文耀, 陈亚军, 等.基于.NET技术的网上办公模型研究[J].计算机工程, 2010, 32 (12) :263-265.
.NET体系结构 篇9
1 三层结构简介
分层结构是软件体系架构设计中最常见且最重要的一种结构。分层, 就是将应用程序按逻辑功能划分成不同的模块加以实现。微软推荐的分层式结构一般分为三层:数据访问层 (Data Access Layer, DAL) 、业务逻辑层 (Business Logic Layer, BLL) 和表示层即用户界面 (User Interface, UI) 。表示层实现内容的展现和用户的交互;业务逻辑层实现业务逻辑和验证规则;数据访问层, 它可以连接数据库、调用存储过程或执行SQL语句, 实现对数据表的增、删、改、查操作。创建DAL的缘由之一就是可以轻松地对应用程序的数据库平台进行移植, 而不影响应用程序的其他部分。另一个缘由就是因为应用程序需要支持多种数据库平台, 如既要支持SQL Server又要支持Oracle。区分层次的目的是为了体现“高内聚, 低耦合”的思想。分层需要一个适当的数据容器来贯穿各层, 以防耦合性过高, 因此用模型层作为各层之间的数据传递的载体。模型层包含了将数据库中的表转换成对应的实体类, 通常一个表封装成一个类。这些类用来同数据库进行通信, 并被传回业务层。使用三层结构使得应用程序更加清晰, 更易于团队开发、修改维护、部署及扩展。
数据层主要通过ADO.NET进行数据操纵从而为事务逻辑层提供数据服务, 例如返回数据结果、存储操作结果等。鉴于.net本身具有的特点, 从而决定了在这一平台下的三层结构具有快捷、简便的优势。
2 使用ASP.NET部署三层架构
2.1 ASP.NET简介
ASP.NET是微软公司基于ASP技术进行进一步完善而提出的一种新型Internet编程技术。原有的ASP技术中, 由于服务器的与客户端HTML在一起, 为此使得页面代码加长, 加大了程序逻辑的理解难度。而ASP.NET作为一种新型的独立于浏览器的编程模式, 由于采用了面向对象的、效率较高的方法创建动态Web, 提供一种新的编程模型和结构, 可生成扩展情和稳定性更好的应用程序, 并提供更好的安全保护。作为一种建立于通用语言之上的程序架构, ASP.NET将已经编译完成的基于NET环境的通用语言运行于服务器上。程序只有首次在服务器运行时需要编译, 为此较之ASP即时解释程序要快。.NET框架与编程语言无关, 可以用许多语言来创建.NET程序, 包括JScript.NET、Visual Basic.NET、Visual C++.NET与C#等。最新的.NET Framework版本为4.0, Microsoft公司为它进一步改进和添加了控件, 并加入了LINQ技术、SEO (Search Engine Optimization, 搜索引擎优化) 和输出缓存等功能。
2.2 ASP.NET特点
1) 公共语言运行时 (CLR) 。.NET框架的关键作用在于它提供了一个跨编程语言的统一编程环境。在组件的开发及运行过程中扮演着重要角色。运行时负责管理内存分配、启动或删除线程、实施安全性策略, 同时满足当前组件对其它组件的需求。与COM相比, 运行时的自动化程度大为提高, 减少开发人员的工作量。
2) 统一的编程类库, 通过创建跨编程语言的公共API集, .NET框架可实现跨语言继承性、错误处理功能和调试等功能。
3) 采用“cod-behind”方式编写代码。使用cod-behind方式进行代码编写使得代码编写更为方便、简洁, 从而有效地降低了系统的开发以及后期维护费用。
4) 适时更新。使用ASP.NET, 维护人员就可以在不关闭服务器或者是停止使用应用程序的前提下就实现文件更新。由于程序文件不会被加锁, 为此就可以在运行时实施覆盖, 从而实现适时更新。一旦文件完成更新, 系统就会以温和的方式切换到最新版本运行。
2.3 实现方式
2.3.1 搭建三层结构的系统基本框架
介绍搭建基于三层结构的系统基本框架的步骤:
1) 创建一个空白解决方案
2) 分别搭建模型层、数据访问层、业务逻辑层、表示层。
3) 添加各层之间的相互依赖。三层结构中各层的依赖顺序是表示层依赖业务逻辑层;业务逻辑层依赖数据访问层;表示层、业务逻辑层、数据访问层都依赖模型层。
下面以一个精品课程网站为例, Visual Studio解决方案中包含了一个ASP.NET Web应用程序、一个用于业务逻辑层的类库、一个用于数据访问层的类库、一个用于模型层封装实体类的类库。具体操作如下:
1) 创建一个Visual Studio空白解决方案Course。
启动Visual Studio2010, 选择菜单:文件→新建→项目, 展开“其它项目类型”, 选择“Visual Studio解决方案”, 在中间窗口选择“空白解决方案”选项。输入解决方案的名称Course及存放解决方案的路径。
2) 新建名为Coruse Models的类库作为模型层。右击Course解决方案, 选择“添加”→“新建项目”, 从C#项目类型中选择“类库”, 输入名称为Course Models。
3) 新建名为Coruse DAL的类库作为数据访问层。
4) 新建名为Coruse BLL的类库作为业务逻辑层。
5) 新建名为Web的“ASP.NET Web应用程序”作为表示层。
2.3.2 设计方案
1) 在模型层封装实体类。将数据库每一个数据表中的字段定义成属性, 并将这些属性用一个类封装, 这个类就是“实体类”, 项目中的实体类都放在模型层中。
2) 数据访问层执行数据库中的创建、读取、更新及删除操作。由ADO.NET对象对数据进行访问, 这些对象是.NET Framework提供的。这些ADO.NET对象模型的实现分别包含在不同的.NET数据提供程序名称空间中, 对于不同的数据源使用不同的名称空间。最常用的有System.Data.Sql Client、System.Data.Oracle Client、System.Data.Ole Db及System.Data.Odbc。各名空间都有Connection、Command、Data Reader、Data Adapter、Parameter及Transaction对象。这些对象在不同的名称空间分别对应不同的前缀:Sql、Oracle、Ole Db及Odbc。例如使用的数据源是SQL SERVER, 则使用名空间System.Data.Sql Client, Connection对象的名称为Sql Connection。
每个对象都实现了ADO.NET中所定义的一个接口, 接口中包含一套标准方法来对数据库进行打开、关闭及执行命令。所有的数据提供程序都具有一致性, 使更换提供程序变得非常容易。可用泛型类的方式实现对不同数据源的支持, 在创建对象时再指定类名。接口相同, 确保了open方法都能执行同样的操作。
1) ADO.NET连接
(1) 在Sqlserver 2008中建立一个数据库, 并在数据库中建立相应的表。
(2) 在解决方案Course的数据访问层Course DAL中创建类, 在类中先打开需要使用到的名空间:
using System.Data;
using System.Data.Sql Client;
using Course Models;
在传递数据库之前, 必须选连接数据库。通过Connection对象来完成。代码如下所示:
2) 动作查询
动作查询是对单个或多个表执行诸如插入、更新或删除操作的查询。Command对象中Execute Non Query方法用于执行此类查询。假定数据库连接已经打开, 通过动态SQL语句的方式来执行插入语名胜:
3) 业务逻辑层的实现
业务逻辑层除了在这里负责所有业务的逻辑处理外, 还用作表示层与数据访问层之间的数据传递。一般情况下, 数据访问层公开的方法会在业务逻辑层有个相对应的方法。该方法没有业务逻辑上的处理, 仅仅是调用了一下数据访问层的相关方法, 起着数据传递的作用。
4) 表示层的实现
新建系统项目的Web层会有一个default.aspx的页面文件, 用户界面将由Web Forms、自定义控件、服务器端控件和Java Script组成。可以使用表格或Div+CSS样式表布局, 还可应用母版页、主题、皮肤创建一种特定的风格。
3 结束语
当然, 在ASP.NET中实现三层结构的方法还有很多, 上文仅是基于组件的开发举了个简单的例子。由于ASP.NET自身具有的特性, 从而决定了这一结构在结构软件开发中必然占据举足轻重的位置。
摘要:三层体系结构中用户不会直接访问数据服务器, 而是透过三层体系将数据访问、业务规划、合法性校验等一系列工作交由中间层代为完成, 最终由中间层实现与数据库的对接, 从而完成信息交互。该文从三层结构入手, 重点论述了使用ASP.NET部署三层架构以及实现方式。
关键词:Asp.Net,特性,三层结构
参考文献
[1]Vince V.ASP.NET3.5商用开发架构精解[M].北京:清华大学出版社, 2010:1-43.
[2]程琪, 张白桦.ASP.NET动态网站开发项目化教程[M].2版.北京:清华大学出版社, 2012:55-65.
.NET体系结构 篇10
国际电信联盟在2005年的报告中如此描绘物联网时代的情景:当司机出现操作失误时汽车会自动报警;公文包会提醒主人忘带了什么东西;衣服会“告诉”洗衣机对颜色和水温的要求等等。今天看来还感觉像是一种概念化的东西,明天可能就会变为现实。自从物联网概念在美国首次提出之后,美国、中国、日本、韩国、欧盟等都对物联网的发展给予了高度关注,物联网发展前景广阔。
1互联网与物联网关系
互联网(Internet),又称因特网或英特网,是网络与网络之间通过物理设备串联组成的巨大网络,可实现不同地域、不同时间的人们交流通信。互联网的出现是人类通信技术的一次革命,它提供了一个能够相互交流沟通、相互参与的互动平台。较互联网之后出现的物联网又努力实现物-物、人-物之间的互动,将地球建设成为一个“智慧地球”。对此,有学者认为,物联网与互联网是两种不同的 “网”,从技术层面来 说,物联网是 传感网,并没接入 互联网。如上海浦东机场的传感器网络,其本身没有接入互联网,但被称为中国第一个物联网;还有一些学者认为物联网是互联网发展到一定阶段的产物,是对互联网的补充和扩展,互联网包含物联网;还有人认为物联网与互联网是平行对等的关系,物联网的连接对象通过RFID等技术手段与互联网连接起来,共同为人类提供服务[1]。以上说法既有可取之处也有不足的地方,依靠传感器等技术网络实现物-物通信,由于考虑到传统、政治以及安全性因素,未接入互联网络,但其本身属于物联网范畴,不过随着大数据运算、智能化识别、地址分配与寻址等问题,迫使物联网需要互联网络提供云计算、比较成熟的硬件设施等,物联网接入互联网将是大势所趋。目前,物联网的发展正处于技术开发关键时期,国际整体发展处于起步阶段,物联网扩展了互联网人-人交流的不足,实现人-物“交流”,物 -物“交流”,可以看作互联网包含物联网,当“智慧地球” 构想发展成熟之时,任何物体都有了“智慧”,任何时间、任何地点都能交互,庞大的“智慧”物体(人-人、人-物、物 -物)将相互之间通信,量变引起质变,届时物联网将包含互联网。
2物联网关键技术
物联网的关键技术 可以分为 硬件技术 和软件技 术。 本文主要介绍几个具 有代表性 的硬件技 术:射频识别 技术、传感器网络与检测技术、智能技术、纳米技术[2]。
2.1硬件技术
(1)RFID(radio frequency identification,射频识别)。 射频识别是一种非接触式便能相互识别的技术。射频识别系统随着应用领域的不同,其组成也不尽相同,最基本的RFID系统通常由射频卡、阅读器、数据交换与管理系统组成[3]。射频卡由嵌入式微处理器芯片及其软件、功能模块、存储器、收发天线等组成。微处理器管理功能模块, 功能模块被激活后实现已编程的功能,即该“干什么”。存储器的功能是将必要的认证信息存储,让对方识别出“你是谁”。当射频卡被外界能量激活后,通过收发天线将存储信息通过高频载波编码后发射出去,阅读器会感知这些信息。阅读器(Reader)由通信的高频模块、控制模块、与计算机连接的通信接口(如RS232、RS485、RJ45等)和收发天线组成。阅读器的收发天线接收到从射频卡发来的高频载波信号后,对载波信号进行解调和解码,然后通过相关接口,由控制模块传送到数据交换与管理系统进行相关处理。数据交换与管理系统将处理数据的结果或指令再通过收发天线发送出去,由射频卡的收发天线接收,完成“交互”功能。
(2)无线传感器网络技术。无线传感器网络的相关技术[4]支撑架构未来的物联网。如今大多数传感器网络并没有接入到互联网,传感节点通常只接入到使用本地数据的系统中,网络信息也只在本传感器网络系统范围内传递,但人们越来越关注无线传感器网络与互联网的结合趋势。
“尘埃(mote)”已经成了无线传感器的同义词,其研究领域涉及到楼宇自动化、自动抄表(AMR)、工业监控、人体传感器网络、家用电子产品等等。传感器网络节点的基本组单元有:传感单元(由传感器和模数转换功能模块组成)、处理单元(包括CPU、存储器、嵌入式操作系统等)、 通信单元(由无线通信模块组成)以及电源。在传感器网络中,节点可以通过飞机布撒或人工布置等方式,大量部署在被感知对象内部或者附近。这些节点通过自组织方式构成无线网络,以协作方式实时感知、采集和处理网络覆盖区域中的信息,并通过多跳网络将数据经Sink节点 (接收发送器)链路传送到远程控制管理中心,远程管理中心可对网络节点实时控制和操纵[5]。
(3)智能技术。物联网应 用智能技 术,赋予物体 “思维”能力,最具代表性的当属机器人应用。只要一台终端控制器即可实现将物体“变成”机器人,做出期望的动作。 智能技术的发展将会使“物”管“物”或者“物”管“人”成为可能。
(4)纳米技术。我国在纳米领域的科学发现和产业化研究同美、日、德位于国际第一梯队,具有一定的发展优势。纳米组装技术要求电子器件和系统更小、更快、更冷。 更小是指器件占用体积要小;更快是指反应速度要快,信息传输延迟要小;更冷是指单个器件的功耗要小。
通过使用射频技术或者传感技术能够实现更小物体的跟踪、识别、管理等交互活动,这样组装的元件还要能方便快捷地实现网络互连。纳米层级对宏观物理的改变将会达到质的变化。但是更小并非没有限度,纳米技术是建设者的最后疆界,它的影响将是巨大的。
2.2软件技术
物联网的软件技术包括信息处理技术、自组织管理技术、安全技术。软件技术支持硬件设备正常工作,是硬件设备的灵魂和管理者。软件技术提供各种算法、传输协议以及无线接入标准的制定和信息加密技术,面向用户最终提供安全可靠的操作平台,有效管理物联网络。
3“NET+X”认识导向的物联网
体系结构说明系统组成部件及其之间的关系,是指导系统设计与实现的一系列原则抽象。作为一种新的网络化计算系统,在设计与实现物联网系统之前需要先建立物联网体系结构[6],从功能角度划分,这些体系结构可分为 “后端集中式”和“前端分布式”两种类型。
3.1后端集中式
此种体系结构 类似浏览 器/服务器架 构模式 (也即 “B/S”架构),对感应端要求不高,只需能够进行简单感应识别即可,大量数据分析与处理由强大的服务器来完成。 从物联网长远发展来看,数量庞大的对象采用后端集中式架构体系,具有费用低廉的巨大优势。采用这种体系结构的有:Networked Auto-ID、uID IoT和USN。Networked Auto-ID体系结构是把所有射频识别和条码信息 传感设备与互 联网连接 起来,实现智能 化识别和 管理[7]。uID IoT通过RFID和二维码来标示物体,由网络化传感器采集周围环境信息,并根据采集到的信息调整服务。该体系结构与Networked Auto-ID相比,多了环境 信息采集,具有更好的环境感知性。USN体系结构自底向上将物联网分为5层:感知网、接入网、网络基础设施、中间件和应用平台:1感知网用于采集与传输环境信息;2接入网由一些网关或汇聚节点组成,为感知网与外部网络或控制中心之间的通信提供基 础设施;3网络基础 设施是指 基于后IP技术的下一代互联网(NGN);4中间件由负责大规模数据采集与处理的软件组成;5应用平台涉及未来各个行业,它们将有效使用物联网以提高效率。
3.2前端分布式
这种体系结构类似客户/服务器架构模式(也即C/S架构模式)。C/S架构模式对客户终端要求较高,能够分担服务器负担,最后只需将处理好的数据发送给服务器即可。对于大数据运算,前端分布式架构体系能够独立作出较快反应,节省时间。采用这种 体系结构 的有:Physicalnet、M2M 、AOA等。Physical-net由底层感 知设备直 接提供服务,并由网关层进行收集和分发,从而将应用需求与资源分配分开,支持动态移动管理和实时应用配置,通过协调层实现多个应用程序在同一资源上或跨网络和管理域并发运行,定义各层之间进行服务调用的统一接口。 M2M(Machine-To-Machine)是一个关于机器与机器之间进行通信的标准体系结构,非智能终端设备通过移动通信网络与其它智能终端设备或系统进行通信。前端分布式体系结构对服务器处理数据的能力要求较后端集中式小, 所以,前端分布式体系结构支持较大的网络规模。
物联网的体系结构尚未有统一的标准,无论是后端集中式体系结构还是前端分布式体系结构,其基本结构原理都遵循“NET+X”的构成方 式。“NET”为Internet与其它物体连接的网络,如无线传感网络;“X”代表连接对象: 物-物(T2T)、人 - 物(H2T)、人 - 人(H2H),其连接维 度如图1。“X”需具备以下条件:1要有数据传输通路;2要有一定的存储功能;3要有CPU;4要有操作系统;5要有专门的应用程序;6遵循物联网的通信协议;7在世界网络中有可被识别的唯一编号。“+”有两层意思,一层意思为流通于“NET”与“X”之间的信息流,方向为双向交互的通信信息;另一层意思为连接“NET”与“X”实现通信的关键技术如RFID、无线传感器网络技术等,其为网络与连接对象的中间桥梁。
4结语
.NET体系结构 篇11
摘要:采用ASP.NET(C#)编写个人博客网站,易于管理,可重用性强。
关键词:ASP.NF;博客;B/S;C#
一、引言
博客Blog是Weblog的缩写,中文意思是“网络日志”,它通常是由简短且经常更新的帖子所构成,并且按照年份和日期的倒序排列。
本博客网站采用ASP.NET(C#)编写,以SQL Server为后台数据库,利用微软.NET编辑工具Visual Studio 2005来创建网站,利用ADO.NET接口技术连接数据库,对数据库操作。11l本博客网站分网站管理员、博客用户和游客三类对象。
二、技术
ASP.Net与现存的ASP保持语法兼容,实际上我们可将现有的ASP源码文件扩展名“.asp”改为“aspx”,然后配置在支持ASPNet运行时的IIS服务器的Web目录下,即可获得ASP.Net运行时的全部优越性能。目前ASPNet的开发语言有三种:C#,Visual Basic.Net和Jscript。本网站的开发使用的是C#。
本系统采用两层架构,web展示层的每个页面可以直接对数据库进行访问,而不用过多的实现数据库的连接和操作接口。其开发和调试的过程简单,但是日后的维护相当烦琐。数据库是系统的最底层。数据访问模块包含在web展示层中。Web展示层通过数据访问模块访问数据库。数据访问模块一般封装数据库的查询、添加、更新、删除等操作,同时还为web展示层提供访问数据库的接口。
本系统采用ASP.Net应用程序最基本的两层架构模式,各层的功能介绍如下:Web展示层是系统最高层,向用户展示各种界面。用户通过界面对系统进行操作,并实现用户各种操作信息的添加、修改和删除,与数据库直接关联。其数据库模块封装了对数据库的所有操作,包括数据的添加、修改、删除和查询。数据库则用来存储本系统的所有数据。
三、实现
博客系统实现了博客用户和游客之间基于网络的信息交流与沟通。系统的用户主要有三种:博客用户、游客和系统管理员,博客用户先注册才能使用本系统。系统主要由四个模块构成:
1评论:评论序号、评论用户ID、评论用户昵称、评论标题、评论内容、评论时间、评论的文章序号
2文章信息:文章序号、文章作者、文章标题、摘要、文章内容、文章发表日期、文章人气、回复、文章类型编号、文章类型名称、文章回复数
3留言:留言编号、网友昵称、留言标题、个人主页、留言内容、留言时间、留言回夏
4链接:链接编号、链接名称、链接地址
本系统根据用户登录身份不同,赋予不同的管理权限。管理员可以实现管理员密码的修改、用户删除和查询及删除和浏览文章;博客用户可以实现对自己信息的修改,管理文章、分类、链接和密码的修改;游客只能够实现浏览博客文章,匿名发表评论,给博客用户留言和注册成为博客用户。
在实现过程中,登录模块首页为login aspx文件,为了保证用户登录后不再重复显示登录窗口,设置了一个Session变量添加登录信息和自定义验证控件RequiredFieodVa,idater对用户名进行检查。注册的用户两次输入的密码要求必须一致,由CompareValidator控件控制。另外,在用户名字段加入了CompareVa,idator控件,对其编程验证数据库中是否已经存在填写的用户名,若已经存在,提示用户名存在;若不存在,注册条件均符合,则提示注册成功并返回用户登录界面。
数据库中的表关联关系:分类表ST_class的ST_c_id字段为主键,文章表ST—news的ST_c_id宇段为外键。文章表ST news的S7_n_id字段为主键,回复信息表ST_replav的ST_n_id字段为外键。
公用模块编写,数据库连接编写。为了应用程序方便移植,为版本控制提供更好的支持,可以在应用程序配置文件(也就是WEB CONFOG)中设置数据库连接信息。添加如下语句:
[注]数据库名、用户名、密码、服务器地址都必须和运行或调试的计算机上的保持一致。
四、结论
.NET体系结构 篇12
1、ASP.NET三层架构概述
Microsoft.NETFramework是微软推出的一套开发平台。ASP.NET可以使用.NET平台来快速方便地部署三层架构。ADO.NET的数据库访问基础是.NET数据供应器 (Data Provider) 。显示层放在显示页面中, 数据库操作和逻辑层用组件来实现, 这样就能很方便地实现三层架构。在ASP.NET2.0中, 典型的三层架构包括表示层 (即页面及后台代码) 、业务逻辑层 (即业务接口、业务实体、业务逻辑) 和数据访问层。三层架构示意图如图1所示。
三层架构 (3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层 (UI) 、业务逻辑层 (BLL) 、数据访问层 (DAL) 。区分层次的目的即为了“高内聚, 低耦合”的思想。
(1) 表现层 (UI) :通俗讲就是展现给用户的界面, 是应用程序中实现的客户端。用户服务主要是Web客户端和Windows客户端, 也可以是其他平台应用程序, 主要作用是对用户的请求接受, 以及数据的返回, 为客户端提供应用程序的访问。
(2) 业务逻辑层 (BLL) :业务逻辑层主要负责对数据层的操作, 也就是说把一些数据层的操作进行组合。其目的是将“数据访问层”的基础存储逻辑组合起来, 形成一种业务规则。
(3) 数据访问层 (DAL) :数据访问层主要是对原始数据的操作, 具体来说是为业务逻辑层或表示层提供数据服务。该层所做事务直接操作数据库, 针对数据的增添、删除、修改、更新、查找等。
在开发过程中, 大多情况下为了复用一些共同的东西, 会把一些各层都用的东西抽象出来。如将数据对象实体和方法分离, 以便在多个层中传递, 例如称为Model。一些共性的通用辅助类和工具方法, 如数据校验、缓存处理、加解密处理等, 为了让各个层之间复用, 也单独分离出来, 作为独立的模块使用, 例如称为Common。此时, 三层架构会演变为如图2所示的情况。
2、三层架构应用
如图3所示的系统EXP采用的是三层架构的设计模式, 该系统中数据访问层是Data Access, 业务逻辑曾是Business, 表示层是Web UI, 下面分别对这三个层做一介绍。
2.1 数据访问层
在数据访问层Data Access中, 完全采用“面向对象接口编程”思想, 同时使用设计模式中的工厂模式为主。如设计一个SQLHelper类用来实现数据库的访问。抽象出来的数据库访问模块, 脱离了与具体数据库的依赖, 从而使得整个数据库访问层利用数据库迁移。由于数据库类型的不同, 对数据库的操作也有所不同, 代码因此也会有所区别。
2.2 业务逻辑层
业务逻辑层Business的核心模块包含了整个系统的核心业务。在业务逻辑层中, 不能直接访问数据库, 而必须通过数据访问层。业务逻辑层将表示层提出的请求转换为对数据访问层的请求, 并将数据服务层返回的结果提交给表示层。对数据访问业务的调用是通过接口完成的。既然与具体的数据访问逻辑无关, 则层与层之间的关系是松散耦合的。如果此时需要修改数据访问层的具体实现, 只要不涉及到接口定义, 那么业务逻辑层就不会受到任何影响。例如, 在很多系统中, 用于处理用户方面的业务逻辑, 可以使用User Business类来实现, 该类使用User Interface接口, 访问SQLHelper类。
业务逻辑层包含了业务对象本身以及应用于它们的规则。这也是主要业务对象所在的位置。它们实现业务实体或系统对象。系统的业务规则将在这些对象中编码, 即从表示层接收请求, 根据编码的业务规则处理请求, 从数据访问层获取数据或将数据发送到数据访问层, 将处理结果传递回表示层。
2.3 表示层
示例中表示层Web UI是三层结构中用户与系统的交互层, 设计中最重要的模式是模型:视图一控制器 (Model-View Controller, MVC) 模式。在.NET平台下, 不需要自己去实现MVC模式。就视图对象而言, ASP.NET已经提供了常用的控件, 非常方便, 也可以通过继承Systerm.Web.UI.User Control, 自定义用户控件, 并利用页面组合控件来实现视图。表示层的设计与实现均遵循以下特点:要有方便、友好的客户交互界面。
3、结语
基于ASP.NET三层架构的软件开发已经成为一种流行的开发模式, 也带来了很多开发上的优点, 适合开发应用需求灵活的系统, 一定程度上保证了系统的可扩展性和可移植性。大型的软件系统开发过程中, 一个好的分层式结构, 可以使开发人员的分工更加明确。实践证明, 多层架构开发模式的应用是一条比较好的软件系统开发途径。
参考文献
[1]MaroBellinaso.ASP.NET Web站点高级编程[M].北京:清华大学出版社, 2002.
[2]马燕, 王文发, 李竹林.一种基于.NET的4层结构应用模型研究与实现[J].江西科学, 2008, 4.