MVCWebAPI3层分布式框架开发.ppt

上传人:小飞机 文档编号:5440990 上传时间:2023-07-07 格式:PPT 页数:38 大小:936KB
返回 下载 相关 举报
MVCWebAPI3层分布式框架开发.ppt_第1页
第1页 / 共38页
MVCWebAPI3层分布式框架开发.ppt_第2页
第2页 / 共38页
MVCWebAPI3层分布式框架开发.ppt_第3页
第3页 / 共38页
MVCWebAPI3层分布式框架开发.ppt_第4页
第4页 / 共38页
MVCWebAPI3层分布式框架开发.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《MVCWebAPI3层分布式框架开发.ppt》由会员分享,可在线阅读,更多相关《MVCWebAPI3层分布式框架开发.ppt(38页珍藏版)》请在三一办公上搜索。

1、MVC WebAPI 3层分布式框架开发,系统分层体系架构设计,数据存储层数据访问层服务层Web展现层浏览器,数据访问:Dapper-微型ORMapping框架,Dapper的优势:1,Dapper是一个轻型的ORM类。代码就一个SqlMapper.cs文件,编译后就40K的一个很小的Dll.2,Dapper很快。Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。3,Dapper支持Mysql,SqlLite,Mssql,Oracle等一系列的数据库,当然如果你知道原理也可以让它支持Mongo db4,Dapper的r支持多表并联的对象。支持一对多 多对多的

2、关系。并且没侵入性,想用就用,不想用就不用。无XML无属性。代码以前怎么写现在还怎么写。,Dapper原理及特性,5,Dapper原理通过Emit反射IDataReader的序列队列,来快速的得到和产生对象。性能实在高。6,Dapper 是C#实现,支持.net framework 各种版本;7,Dapper语法十分简单。并且无须迁就数据库的设计。国外大型网站采用的有:StackOverflow,StackExcahnge等。,数据访问:Dapper-微型ORMapping框架,读取500条记录,并做简单对象的序列化操作时间对比如下图:,DataRepository类,实现数据实体操作封装In

3、sert插入Update更新Delete删除Select选取Paged分页,ServiceBase类,实现业务实体对象的操作封装Insert插入Update更新Delete删除Select选取Paged分页,服务实现类,实现Iservice接口继承ServiceBase基类,WebAPI 服务发布,API Controller:-HttpGet-HttpPost-HttpPut-HttpDelete,动态加载插件,系统的扩展性系统的变化性客户二次开发MEF运行时加载,AutoMapper实体对象之间转换,两个实体类EPProduct 数据实体Product 业务实体转化示例代码EPProduc

4、t p=ProductRepository.Get(long.Parse(id);();Product entity=(p),面向接口编程-Ioc框架,SimpleInjector静态类型编译阶段MEF动态类型运行时阶段,Jquery插件,DataGrid SlickGrid 第三方开源Tree Jstree 第三方开源Tab cuteTab 自己封装Toolbar cuteToolbar 自己封装Dialog FancyBox 第三方开源,主界面示意图,Asp.NET MVC 富客户端开发,Model Web API(服务接口)Controller路由View页面富客户端 Ajax 局部刷新

5、 鼠标、键盘响应事件等如Gmail邮箱等应用示例,Jquery(1),jQuery项目是由John Resig在2005年创建的,最初的想法是实现跨浏览器的DOM遍历和操纵。目前的中包含了越来越多的工具以简化JavaScript的开发工作。根据BuiltWith的使用统计,开源项目jQuery在世界前10,000名站点中的使用率超过了30%。jQuery API的设计初衷就是简单与直观,可以实现如下功能:遍历DOM操纵DOM元素处理CSS处理事件Ajax交互辅助功能一个UI库一个效果库jQuery框架使用了简单的选择器来获取并操纵DOM元素。一旦获得DOM中的某个元素,它就成为一个jQuery

6、对象,可以使用库中的任何方法来操纵该对象。jQuery框架还支持使用复杂的选择器,比如基于父子关系、属性和过滤器的元素等。,Jquery(2),Traversing(或是在DOM元素中导航)API包含的方法可以过滤已选择的元素集合,如filter()、is()、not()和slice()等。还有一些Traversing API可以根据元素之间的关系(这一点不同于使用id或class选择器)找到特定的元素,比如children()、find()、contents()、next()、prev()、parents()和siblings()等,这些方法能够极大简化元素的查找操作。一旦选择了DOM元素(

7、要么选择,要么创建),接下来就可以使用jQuery来操纵这些元素了,这些操作有:向文档中插入元素设定inner HTML或Text、在其他元素的首或尾、前或后以及周围插入内容替换匹配的元素移除元素克隆元素CSS组件提供了一套工具来获取和设定任何元素或元素集合的CSS属性。该类别中的工具还有width()和height()方法以及用于获取任意指定元素相对偏移量的offset()方法。jQuery框架为事件处理提供了跨浏览器的实现,提供了定义与触发客户化事件的方法,还可以绑定到标准的DOM事件上。它还提供了大量的事件辅助方法,可以用jQuery函数包装标准的DOM元素,开发者可以通过这些函数用最少

8、的代码响应特定元素的事件,如click等,而且无需检测浏览器。jQuery Ajax API所包含的方法可以通过get或post请求加载远程页面、数据和脚本,可以轻松访问JSON数据,此外还有一套客户化的AJAX事件来处理success、complete、start、stop和error事件。,前端页面Ajax调用:GET/POST/PUT/DELETE,function onDelete()var jsonOrder=JSON.stringify(deletedData);$.ajax(url:ProductSys.WebAPI/api/OrderView,type:DELETE,data:

9、jsonOrder,success:function(data)alert(data););function onSave()var jsonOrder=JSON.stringify(changedData);$.ajax(url:ProductSys.WebAPI/api/OrderView,type:PUT,data:jsonOrder,success:function(data)alert(data););,如何调试(1)?,Fiddler-*5star,如何调试(2),FireBug for Firefox查看HTML,CSS,Javascript等监控下载图片资源时间线完善友好的调试

10、,如何调试(3)?,Firefox的RestClient插件Rest Client 测试插件http:/localhost:8081/ProductSys.WebAPI/api/order/insertwith?type=insertwith“HttpPostpublic HttpResponseMessage InsertWith(Order entity,string type),Delete 利用RestClient,http:/localhost:8081/ProductSys.WebAPI/api/order/4 HttpDelete public HttpResponseMessa

11、ge Delete(string id),Web异常错误代码,100-199 Informational200-299 Client request successful300-399 Client request redirected,further action necessary400-499 Client request incomplete500-599 Server error,Javascript,Namespace(命名空间)默认为全局范围,有潜在类型冲突隐患Self Executing Fuction(自执行匿名函数)Object and Array(对象和数组初始化)不要使

12、用new 关键字Null Or Empty(检查NULL),Javascript-自执行匿名函数(1),/Self-Executing Anonymous Func:Part 2(Public,Javascript-自执行匿名函数(2)外部调用方式示例,/Public Propertiesconsole.log(skillet.ingredient);/Bacon Strips/Public Methodsskillet.fry();/Adding Butter/isHot is not defined,对象和数组初始化,/建议申明对象或数组的写法var person=,keys=;/申明复杂

13、对象或数组的写法var person=firstName:Elijah,lastName:Manor,sayFullName:function()console.log(this.firstName+this.lastName);,keys=123,676,242,4e3;,判断对象是否为NULL(c#),/C#例子.不要在Javascript中这样写if(someString!=null&someString.length 0)/Do something here./C#例子 检查字符串是否为空if(!string.IsNullOrEmpty(someString)/Do something

14、 here.,判断对象是否为NULL(javascript),Javascript中的正确写法/Simplified JavaScript syntax to check for/undefined,null,&empty string valuesif(someString)/Do something here.,设置缺省值(c#),/C#例子,不要在Javascript这样写if(someString=null)someString=default Value;/Slightly better,but dont do this eithersomeString=someString?som

15、eString:default value;,设置缺省值(javascript),请在Javascript按如下格式写/JavaScript syntax to set a default valuesomeString=someString|default value;,不同类型的比较操作符(=,!=),/Unexpected Comparisons using the=Operator0=/true0=0/truefalse=0/truenull=undefined/true trn=0/true,不同类型的比较操作符(=,!=),/Expected Comparisons using t

16、he=Operator0=/false0=0/falsefalse=0/falsenull=undefined/false trn=0/false,不可取的数组遍历操作符forin,var myArray=,name;myArray5=test;console.log(myArray.length);/6for(name in myArray)console.log(name,myArrayname);/Outputs./5,test,正确的数组遍历操作符for;,var myArray=,name;myArray5=test;console.log(myArray.length);/6for

17、(var i=0,length=myArray.length;i length;i+)console.log(i,myArrayi);/Outputs./0,undefined/1,undefined/2,undefined/3,undefined/4,undefined/5,test,对象遍历操作符,for(var name in object)/Your code here/*Check if object has property beforeiterating,because functions inheritedfrom prototype are also included*/for(var name in object)if(object.hasOwnProperty(name)/Your code here,NuGet快捷获取软件包,充分利用开源软件包,避免重复制造轮子;也可以自己发布软件包,回馈社区,先进技术的积累可以节约项目成本。,学习要点及资源:,A MVC WebAPIRestful Web Service的发展Jquery官网插件开发RequrieJSJavascript模块化开发框架Dapper 微型ORMapping 框架EntityFramework Microsoft 实体框架,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号