




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.NET提升教育CYQ.Data精通课程,1,.,课程体系:,1:讲解CYQ.Data框架的使用2:讲解框架的原理及源码3:扩展知识体系4:了解设计模式,2,.,核心一:MAction系,3,.,扩展知识,1:回顾:ADO.NET?2:封装的DBHelper、Dapper?3:进一步被封装的实体ORM?4:实体ORM的局限性?5:为什么会有CYQ.Data?6:CYQ.Data解决了什么问题?,4,.,MAction初始化,using(MActionaction=newMAction(“m1”,”c1”)using(MProcproc=newMProc(“p1”,”c1”)1:两个类的区别是什么?2:各自的应用场景?3:为什么用using?using原理是?4:可能产生哪些异常?原因是?5:这一行代码框架做了什么?6:第一参数能传些什么?能传null吗?为什么可以这么传?7:如果执行正常,能获取到什么信息?8:如何省掉第二个参数?(ProjectTool工具的使用!),5,.,MAction多表操作,using(MActionaction=newMAction(“m1”)action.ResetTable(“m2”);using(MProcproc=newMProc(“p1”)proc.ResetProc(“p2”);1:为什么要切换?2:切换会抛异常吗?3:有几个重载方法?4:能切换不同的数据库的表吗?5:切换后有什么数据变化了吗?,6,.,MAction事务,1:事务只有单机么?支持分布式事务吗?2:事务什么时候被开启,又什么时候结束?3:回滚是自动的,还是需要手动的?4:在MAction操作里,还能操作MProc,但在一个事务吗?5:切换的表或语句,还在同一个事务吗?6:如果切换了不同数据库的表呢?事务还在同一个吗?7:事务的Level是什么?事务的级别各有什么用途?,using(MActionaction=newMAction(“m1”)action.BeginTrasation();action.SetTransLevel(.);.action.ResetTable(.);.action.RollBack();action.EndTrasation();,using(MProcproc=newMProc(“p1”)action.BeginTrasation();action.SetTransLevel(.);action.ResetProc(.);.action.RollBack();action.EndTrasation();,7,.,MAction多平台数据UI交互,using(MActionaction=newMAction(“mi”)boolresult=action.Insert(true);1:自动取值入库或更新的原理?2:如何单条数据交互?3:如何多条数据交互?4:对于Json和数据库字段不一致,如何处理?5:框架的UI交互是如何支持多平台的(web,winform,wpf,第三方)?,8,.,MAction多数据库支持,using(MActionaction=newMAction(“mi”)MDataTabletable=action.Select(“Year(CreateTime)2015”);1:框架如何支持多种数据库?2:如何解析不同数据库下的SQL语句?(DBImport)3:如何扩展读写分离?4:如何设置主库备份链接?,9,.,核心二:调试与日志,10,.,MAction调试,using(MActionaction=newMAction(“m1”)boolresultA=action.Insert();boolresultB=action.Update(1);boolresultC=action.Delete(2);boolresultD=action.Exists(“错误字段=xx”);intcount=action.GetCount(“抛异常了”);1:当Insert没有数据,是什么情况?2:当Update的数据不存在,是什么情况?3:当删除的条件不存在,是什么情况?4:当判断Exsits发生异常,是什么情况?5:当获取记录数发生异常,是什么情况?6:如何在业务中正常的判断正常,还是无数据,还是异常呢?7:where条件的推导?,11,.,MActionSQL监控,using(MActionaction=newMAction(“m1”)if(action.Fill(1)intid=action.Get(0);stringname=action.Get(“Name”);action.ResetTable(.);boolresultD=action.Exists(“错误字段=xx”);stringwhere=action.GetWhere(.);1:Fill是什么情况,数据在哪?2:Get(0)零是什么情况?3:如果产生异常,它抛还是不抛?怎么控制?4:如何获取执行的SQL语句呢?5:如何监控全局的SQL语句呢?6:如何过滤出执行时间长的SQL语句呢?7:GetWhere是什么鬼?为什么会有?,12,.,日志记录,Log.WriteLogToTxt(.)Log.WriteLogToDB(.)using(SysLogssys=newSysLogs).1:Log及SysLogs两个类的区别是什么?2:各自的应用场景?3:日志写到哪去了?4:自动创建的日志表?5:能指定数据库或表名?6:如果账号没有创建表权限怎么办?7:现实的源码解读!,13,.,扩展知识,1:文件编码有哪些?2:如何识别文件编码?3:编码和字节的关系?4:字节如何正确转换为文字?5:文件的写并发如何控制?6:如何监控文件的变化?7:大文件如何读取(电脑仅4G内存,可日志文件就8个G)?,14,.,核心二:缓存,15,.,缓存,CacheManagecache=CacheManage.Instance;CacheManagecache=CacheManage.LocalInstance;CacheManagecache=CacheManage.MemCacheInstance;CacheManagecache=CacheManage.RedisInstance;1:以上代码的区别是什么?2:各自的应用场景?3:该如何正确使用?4:框架自身都缓存了些什么?5:如何控制框架的自身缓存?6:如何将表结构缓存外置到文件?7:如何知道缓存节点是否故障?8:集群雪崩效应是什么概念?9:如何配置缓存的故障转移?10:一致性Hash算法是什么鬼?,16,.,扩展知识,类对象属性:1:静态变量怎么理解?2:常量怎么理解?3:静态只读变更怎么理解?4:静态变量的如何避免内存浪费?Socket多线程编程:1:Socket通讯及TCP协议?2:队列池的概念?3:多线程是什么?4:和异步的区别是?5:并发编程又是什么鬼?6:多线程快还是单线程快?,17,.,核心三:AOP,18,.,Aop:,1:Aop是什么?2:什么场景可以用Aop?3:如何使用?4:Aop使用时,什么情况会产生死循环,如何避免?5:Aop使用时,什么情况会产生数据库死锁,如何避免?6:静态和动态Aop实现的区别?,CYQ.Data.Aop.IAop接口,19,.,扩展知识,1:反射是什么概念?2:如何动态加载程序集?3:如何动态创建实例?4:反射如何调静态方法?5:属性Attribute是什么情况?6:获取属性Attribute需要二次反射?7:反射为什么要配合缓存?8:Emit是什么鬼?9:为什么他们要用Emit代替反射?10:为什么他们不全部用Emt代替反射?,20,.,核心四:JsonHelper,21,.,JsonHelper:,1:JsonHelper提供了哪些静态方法?2:JsonHelper如何实例化使用?3:JsonHelper如何创建复杂的Json结构?4:JsonHelper都能处理哪些数据类型?5:如何和Xml交互?6:如何和post的数据交互?7:如何和Get的参数交互?8:如何和MDataTable系交互?9:如何和实体交互?10:如何和字典、泛型、数组交互?11:如何和其它乱七杂八的数据结构交互?,22,.,扩展知识,1:字符和字符串的区别?2:string和StingBuilder的区别?3:如何高效的处理字符串的增删改查?4:字符串如何进行不区分大小写的比较与替换与查找?5:StringComparison.CurrentCulture是什么鬼?6:为什么会有区域敏感排序的存在?7:如何写出健壮的数据类型转换?,23,.,核心五:MDataTable系,24,.,扩展知识,1:值类型和引用类型的区别?2:out和ref认识有多少?3:如何正确的使用ref?4:Tuple是什么?out会被tuple替换吗?,25,.,MDataTable系:构成,1:MDataTable的构成元素是什么?2:MDataRow的构成元素是什么?3:MDataCell的构成元素是什么?4:MDataColumn的构成元素是什么?5:MCellStruct的构成元素是什么?6:为什么使用起来和DataTable这么像?,26,.,MDataTable系:增删改查,1:如何新增加行?2:如何移除行?3:如何修改行?4:如何查询单行?5:如何查询多行?6:如何分页查询?7:如何修改列结构?,27,.,MDataTable系:绑定,1:MDataTable如何绑定表格?2:MDataTable如何绑定第三方表格?3:MDataTable如何绑定下拉列表?4:MDataRow如何批量设置值到界面?,28,.,MDataTable系:数据结构交互转换,1:如何和Json交互?2:如何和Xml交互?3:如何和实体交互?4:如何和List交互?5:如何和字典交互?6:如何和Get、Post的参数交互?7:如何和数组交互?8:如何和DataTable交互?8:如何和其它乱七杂八的数据结构交互?,29,.,MDataTable系:扩展方法,1:如何合并多个表?2:如何连接多个表?3:如何对表进行行列转换?4:如何对表的表进行:求合、求平均、最大、最小值?5:如何过滤重复行?6:查询方法的(where),支持到什么程度?,30,.,核心六:文本数据库,31,.,文本数据库:,using(SysLogssys=newSysLogs).1:什么是文本数据库?2:文本数据库及内存表的关系?3:文本数据库的使用场景?4:如何使用文本数据库?5:如何指定文本数据库链接?6:如何CodeFirst交互?7:数据存档结构?8:文本数据库的不足?,32,.,扩展知识,1:数组、链表、Hash结构的区别?2:List和Dictionary的使用区别及注意事项?3:List为什么查询性能这么低?4:如何解决List的性能问题?5:如何合理的使用链接结构或hash存储结构?,33,.,核心七:DBTool,34,.,DBTool:,1:如何对数据库表结构进行增,删,改,查?2:如何获取表的数据结构?3:如何获取数据库的所有表及描述?4:如何测试数据库链接是否正常?5:如何从数据库链接语句识别数据库类型?6:如何对字段增加或取消关键字符号?,35,.,扩展知识,1:了解数据库的字段类型差异?2:框架是如何对差异的数据类型进行转换?3:了解数据库的常见函数的差异用法?4:框架是如何对常见函数的差异用法进行转换?5:学习DBImport工具的使用!,36,.,核心八:实体ORM系,37,.,实体ORM:,1:MAction和MProc已经能处理100%的事情为什么还存在DBFast、SimpleOrmBase、OrmBase?1:三个类的区别是什么?2:各自的应用场景?3:源码的实现?,38,.,核心九:XHtmlAction系,39,.,扩展知识,1:xml、html、xhtml的区别?2:什么是字符实体?3:如何将特殊字符转换成实体?4:如何在html中指定编码?5:SEO是什么?6:html中哪些知识和SEO有关?,40,.,XHtmlAction:,1:如何加载xml?2:如何加载html?3:实例参数的IsNoClone是什么情况,怎么理解?4:如何对单个节点进行操作?5:如何对批量节点进行操作?6:如何配合MDataRow进行操作?7:如何配置MDataTable进行批量操作?,41,.,MutilLanguage:,1:如何使用它进行多语言版本开发?2:语言版本如何切换?3:可以从哪些地方识别用户的语言环境?,42,.,RSS:,1:如何使用RSS类?2:网站需要支持RSS订阅吗?,43,.,核心十:其它系,44,.,其它系:,1:如何使用SqlValue类?2:如何使用DataType类?3:如何使用MDictionary类?4:如何使用MList类?5:如何使用ThreadBreak类?,45,.,三个提升效率的工具:,1:CYQ.ProjectTool生成表结构或枚举。2:Intelisence智能语法提示和调试工具。3:DBImport:数据库工具:支持多数据库应用的项目必备。,46,.,设计模式:,47,.,简单工厂,简单工厂模式(SimpleFactoryPattern)属于类的创新型模式,又叫静态工厂方法模式(StaticFactoryMethodPattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。理解核心:通过staticCreate方法(参数)内部带swith(参数)分支返回子类实例(),48,.,抽象工厂(AbstractFactory):,意图提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。适用性一个系统要独立于它的产品的创建、组合和表示时。一个系统要由多个产品系列中的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。当你提供一个产品类库,而只想显示它们的接口而不是实现时。理解核心:简单工厂+反射,49,.,工厂模式(FactoryMethod):,意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。适用性当一个类不知道它所必须创建的对象的类的时候。当一个类希望由它的子类来指定它所创建的对象的时候。当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。理解核心:调用方式为:共性接口a=new子类实例(),50,.,建造者模式(BuilderMethod):,意图将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。适用性当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。当构造过程必须允许被构造的对象有不同的表示时。理解核心:工厂模式的注入+固定流程的调用方式,51,.,单例模式(Singleton):,意图保证一个类仅有一个实例,并提供一个访问它的全局访问点。适用性当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。核心理解:实例全局唯一,52,.,原型模式(ProtoType):,意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。适用性当要实例化的类是在运行时刻指定时,例如,通过动态装载;或者为了避免创建一个与产品类层次平行的工厂类层次时;或者当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。核心理解:以Clone方法统一返回实例,53,.,享元模式(Flyweight),意图运用共享技术有效地支持大量细粒度的对象。适用性一个应用程序使用了大量的对象。完全由于使用大量的对象,造成很大的存储开销。对象的大多数状态都可变为外部状态。如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。应用程序不依赖于对象标识。由于对象可以被共享,对于概念上明显有别的对象,标识测试将返回真值。核心理解:通过引用Ref来复用某一对象。,54,.,门面模式(Facade):,适用性当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年非织造复合材料行业研究报告及未来行业发展趋势预测
- 高岭土加工工职业技能考核试卷及答案
- 肉鸡养殖场租赁与饲料采购及储存合同
- 家具电商平台用户行为分析-洞察及研究
- 亲子乐园门面房屋租赁与儿童娱乐服务合同样本
- 香港电子合同在医疗健康领域的应用与探索
- 2025年除皱美容行业研究报告及未来行业发展趋势预测
- 风力发电项目工程款结算及并网运行协议
- 项目部临时仓储租赁及物流配送合同
- 高炉炼铁操作工技能比武考核试卷及答案
- 小红书运营合同协议
- 家事财产申请表
- 安徽离婚协议书范本
- 规范化司法所模板
- 2025年公共营养师考试历年真题与试题答案
- DB15T 3943-2025紫花苜蓿冬春灌技术规程
- 安委会-成立安全生产管理委员会的通知
- 2025既有建筑消防改造设计指南
- 士林电机SS2变频器操作手册SS2-043-5.5K
- Unit 1 What's he like?单元整体教学设计(5个课时)
- 《酒店案例分析》课件
评论
0/150
提交评论