深入.net平台的软件系统分层开发_第1页
深入.net平台的软件系统分层开发_第2页
深入.net平台的软件系统分层开发_第3页
深入.net平台的软件系统分层开发_第4页
深入.net平台的软件系统分层开发_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

业务的扩展:三层架构第四章回顾与作业点评在中“@”符号在SQL语句中起到什么作用?如何使用调用存储过程?提问2/33预习检查三层架构都有哪三层?举例说明哪些功能可以放到业务逻辑层中实现?中用作事务处理的类是?提问3/33本章任务完善新增学生的功能实现删除学生的功能4/33本章目标理解什么是三层架构能够搭建三层架构能够在三层架构下编码会使用事务处理5/33业务的扩展如果增加密码加密的功能,加密的代码放在表示层还是数据访问层?问题6/33企业中的业务企业审批中不断变化的流程电子商务网站的折扣策略7/33由两层到三层表示层业务逻辑层数据访问层8/33三层的依赖关系表示层业务逻辑层数据访问层9/33实体类在三层中的数据传递解析实体对象构建实体对象返回行集处理窗体表示层表示层后置代码业务逻辑层数据访问层数据库用户请求传递参数展示数据返回请求数据操作调用SQL命令返回解析实体对象构建实体对象或集合10/33搭建三层架构搭建三层架构的步骤1、创建数据访问层项目2、创建业务逻辑层项目3、创建表示层项目4、创建实体类项目5、分别添加三层对实体类项目的依赖6、添加业务逻辑层对数据访问层的依赖7、添加表示层对业务逻辑层的依赖演示示例1:搭建三层架构11/33业务逻辑层中的编码业务逻辑层中的编码创建业务逻辑类引用数据访问层、业务实体层命名空间实现业务逻辑方法调用数据访问层中的方法实现业务处理代码12/33表示层中的编码表示层中的编码创建WinForms窗体引用业务逻辑层、业务实体层命名空间实现表示层的方法调用业务逻辑层中的方法实现显示逻辑代码13/33三层架构的扩展-通用层表示层业务逻辑层数据访问层通用层14/33通用层做什么例如:通用的辅助类和工具方法数据校验方法缓存处理加密处理通用(Common)层用来复用一些软件系统中共用的技术演示示例2:搭建通用层

15/33分层架构小结分层架构的优势分离开发人员的关注无损替换提高代码的可复用性分层架构的缺点代码量大,实现复杂16/33学员操作——将

MySchool改成三层架构

需求说明:将MySchool改成三层架构,并正确添加依赖练习完成时间:30分钟17/33学员操作——新增学生的业务处理3-1

训练要点:在业务逻辑层进行业务处理需求说明:在添加学生时完成以下业务处理功能判断学号是否存在,如果存在,则不允许添加判断身份证号是否存在,如果存在,则不允许添加给学生登录的密码加密

指导讲解需求说明18/33学员操作——新增学生的业务处理3-2

实现思路:数据访问层:添加方法判断学号、身份证号是否存在通用层:添加MD5加密类,实现加密算法业务逻辑层:调用数据访问层方法判断学员信息存在性,调用加密算法给学员密码加密表示层:添加对业务逻辑层方法的调用指导完成时间:20分钟19/33学员操作——新增学生的业务处理3-3

难点提示:publicstringGetMD5String(stringstr){MD5md5=newMD5CryptoServiceProvider();byte[]data=System.Text.Encoding.Default.GetBytes("newblade");byte[]md5data=puteHash(data);md5.Clear();StringBuilderbuilder=newStringBuilder();for(inti=0;i<md5data.Length-1;i++){Console.WriteLine(md5data[i].ToString());builder.Append(md5data[i].ToString("X2"));}returnbuilder.ToString();}MD5加密方法指导20/33学员操作——编制学生准考证号2-1

训练要点:在业务逻辑层进行业务处理字符串的拼接需求说明:实现生成准考证号的功能准考证号的生成规则: 月份+日期+年级号+科目号+随机数(1-1000)随机数不满三位从左边起以0补齐其它不满二位从左边起以0补齐将生成的准考证号显示在列表中完成时间:30分钟指导21/33学员操作——编制学生准考证号

2-2

难点提示:publicstringGetExamNo(stringgradeId,stringsubjectId,

DateTimeexamTime){Randomrand=newRandom();StringBuilderbuilder=newStringBuilder();builder.Append(examTime.Month.ToString().PadLeft(2,'0'));builder.Append(examTime.Day.ToString().PadLeft(2,'0'));builder.Append(gradeId.PadLeft(2,'0'));builder.Append(subjectId.PadLeft(2,'0'));builder.Append(rand.Next(1,1000).ToString().PadLeft(3,'0'));returnbuilder.ToString();}生成准考证号指导22/33共性问题集中讲解常见问题及解决办法代码规范问题调试技巧23/33共性问题集中讲解的事务处理数据库应用程序提供了事务处理功能通过SqlTransaction对象执行事务处理24/33使用事务的步骤创建一个SqlTransaction对象,标志事务开始1将SqlTransaction对象分配给mand的Transaction属性2调用相应的方法执行mand命令3调用SqlTransaction的Commit()方法完成事务;调用Rollback()方法终止事务425/33使用事务使用事务的代码SqlTransactiontrans=null;SqlConnectioncon=newSqlConnection(connString);try{con.Open();trans=con.BeginTransaction();mandcmd=newmand();//...省略代码cmd.Transaction=trans;cmd.ExecuteNonQuery();mit();}catch{trans.Rollback();}finally{conn.Close();}开始事务提交事务回滚事务演示示例3:使用事务删除学生26/33学员操作——使用事务删除学生记录

需求说明:使用事务删除学生记录首先删除学生成绩,然后删除学生记录如果任何一步操作失败,自动回滚完成时间:30分钟练习27/33学员操作—调用存储过程事务删除学生记录2-1

训练要点:使用存储过程事务需求说明:使用调用存储过程删除学生记录在存储过程中使用事务处理语句首先删除学生成绩,然后删除学生记录如果任何一步操作失败,自动回滚指导28/33学员操作—调用存储过程事务删除学生2-2

实现思路:编写带事务的存储过程使用调用存储过程BEGINTRANIF@@ERROR<>0BEGINROLLBACKTRANreturnENDCOMMITTRANT-SQL事务处理代码完成时间:20分钟指导29/33共性问题集中讲解常见问题及解决办法代码规范问题调试技巧30/33共性问题集中讲解总结三层架构及各层间的依赖关系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论