自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (6)
  • 收藏
  • 关注

原创 .net core跨平台的实现

.net core一、.net framework二、.net framework下不同平台间的代码复用2.1 源代码复用2.2 程序集复用2.3 PCL一、.net framework.net framework由以下两部分构成common language runtime(CLR)公共语言的运行环境,相当于java中的虚拟机为托管程序提供执行环境,内存管理、垃圾回收等framework class library(FCL)由以下两部分构成basic class librar

2021-07-03 11:02:41 1041

原创 .net framework的组成及跨平台的实现

.net framework的组成及跨平台的实现一、.net framework的组成二、.net framework的问题三、.net framework实现跨语言和跨平台四、.net framework下的跨平台代码复用2.1 源代码复用2.2 程序集复用2.2.1 托管模块与程序集2.2.2 CLR加载程序集的规则2.2.3 Retargetable程序集2.2.4 类型转移2.3 PCL项目一、.net framework的组成.net framework由以下两部分构成common la

2021-07-03 10:11:51 1679

原创 OAuth 2.0

一、OAuth 2.01.1 概述认证授权协议,明确了授权流程认证Authentication is knowing the identity of the user授权指的是resource owner同意client访问其拥有的受保护的资源与请求处理过程中的Authorization有所区别Authorization is deciding whether a user is allowed to perform an actionOAuth包含四个角色r

2021-02-20 18:14:21 200

原创 SSL/TSL

一、SSL/TSLSSLTLS的前身,由netscape开发的安全协议TLS与具体的网络传输协议无关既可以用于HTTP,也可以用于TCP1.1 加密算法1.1.1 对称加密双方使用同一个密钥进行加解密;加解密速度快,通常在消息发送方需要加密大量数据时使用;问题:在第一次与陌生人进行通信时,如何安全的传递密钥1.1.2 非对称加密(公钥加密)双方使用不同的密钥进行加解密;公钥公开给所有需要与自己通信的对象;公钥加密的内容只能通过对应的私钥进行解密;

2021-02-11 09:23:00 877 2

原创 asp.net Forms Authentication

一、Forms Authentication概述相比于windows authentication,forms authentication不需要windows账号,可以面向internet应用程序通过表单提交的用户名和密码进行登录验证密码在网络中传播,不安全基于会话的cookiesIIS提供默认实现,即FormsAuthenticationModule认证过程客户端向服务端发起请求服务端返回302以及重定向地址客户端重定向到登录页面用户输入账号、密码后提交到服

2021-02-10 21:36:01 285

原创 asp.net Windows Authentication

一、Windows Authentication1.1 概述authentication——认证作用是识别用户身份Windows Authentication用户提供windows账户信息进行身份验证包括basic、digest以及集成windows认证主要用于局域网内部1.2 basic采用“质询-应答”的方式认证过程客户端向服务器请求资源服务端向客户端索要身份凭证,并在响应报头的WWW-Authenticate中标识认证方式为basic浏览器识别到该报头,自

2021-02-10 16:34:23 783

原创 asp.net webapi中action的选择与参数绑定

一、action的选择action的选择主要包含三个步骤第一步:Http Method首先根据请求方法,例如Get、Post等,从controller中所有有效的action方法中筛选出actionName是以请求方法开头的action,例如GetXXX或者action上由attribute显式标注了对哪种方式的请求进行响应,例如[HttpGet]如果actionName既没有以请求方法开头,action也没有attribute显式标注,则默认支持Post请求第二步:路由匹配值路由

2021-02-07 10:53:46 717

原创 asp.net webapi内容协商

一、内容协商概述根据请求头中的信息,选择合适的形式返回结果例如,针对ajax请求,返回json形式的数据IContentNegotiatorNegotiate()根据Formatters、返回结果以及Request进行内容协商返回协商机制筛选后的Formatter以及mediaType协商机制从HttpConfiguration中注册的所有Formatter中选择出能对返回结果进行序列化的Formatter判断依据是调用 MediaTypeFormatter

2021-02-06 22:47:56 153

原创 webapi 跨域资源共享CORS

一、同源策略浏览器为了阻止恶意网站通过ajax请求访问其他网站的敏感数据而设定的同源策略限制同源指发起访问请求的网站和提供资源的网站的以下信息必须一致协议 scheme主机名 host端口 port同源策咯如果发起请求的网站和提供资源的网站不是同源的如果是简单请求请求能发出,服务器也能响应,但浏览器不会将响应数据暴露出来,应用无法获取到数据如果不是简单请求则在发起正式请求之前,会先发起预检请求,请求方法为OPTIONS得到服务器能够支持的操作此时服务器的响应数

2021-02-01 22:17:42 201

原创 Asp.net WebApi注册路由

一、概述asp.net webapi采用的抽象管道处理模型只具备处理消息的能力,需要寄宿于IIS或者控制台应用程序中,利用宿主环境下的监听与响应请求的功能完成一次完整的Http请求响应过程提供了默认的路由系统实现一、路由注册Web Host模式当webapi寄宿在web host中时,其本质是对webapi默认的路由系统进行了拓展和适配,使其能够利用asp.net的路由系统进行注册(或者说是兼容),同时指定自身的IHttpHandler,使其利用webapi中的消息管道模型S

2021-01-27 21:45:27 411

原创 Asp.net WebApi消息处理管道

一、抽象消息处理管道asp.net webapi中的抽象消息处理管道模型,不依赖于搭载的环境,可以寄宿于IIS、控制台应用程序以及windows服务中,消息管道主要由HttpMessageHandler构成,如图所示:DelegatingHandler继承自HttpMessageHandler,内部保存了指向下一个HttpMessageHandler的引用如果内部的HttpMessageHandler依然是DelegatingHandler类型,则可以构造起一个委托链,形成一个消息处理管道

2021-01-27 21:13:03 318

原创 IHttpModule和IHttpHandler

@

2021-01-21 20:23:52 184 1

原创 asp.net mvc ActionResult的处理及View页面的生成

ActionResult的处理ActionResult封装了向HttpResponse写入数据的操作,而controller和action则负责决定以何种形式对请求进行响应以及准备生成最终的响应结果所需要的数据

2021-01-20 20:12:33 220

原创 asp.net mvc action执行

action执行流程action最终是通过method解析成表达式树,编译成委托进而执行action方法,而不是直接进行反射

2021-01-19 21:19:00 116

原创 asp.net mvc controller激活

一、controller激活过程controller的激活过程在MvcHandler中的BeginProcessRequest()中进行controller激活完成后,会调用ControllerActionActivator.Invoke()方法执行action

2021-01-16 21:47:27 130

原创 asp.net mvc路由注册

一、路由路由的作用就是将一个对虚拟路径的请求映射到对应的HttpHandler,由HttpHandler对请求进行处理二、路由注册过程

2021-01-13 21:59:58 268

原创 asp.net mvc中的filter——2.IExceptionFilter

二、IExceptionFilter2.1 HandleErrorAttributeHandleErrorAttribute部分源码public class HandleErrorAttribute: FilterAttribute, IExceptionFilter{ public string View { get { if (string.IsNullOrEmpty(this._view)) { return "Error"; } return

2021-01-09 19:08:15 322

原创 asp.net mvc中的filter——1.分类及执行顺序

一、asp.net mvc中的filter1.1 filter分类 filter 描述 Attribute 描述 IAuthenticationFilter 权限相关 AuthorizeAttribute特性提供了默认实现 可以标注在全局、controller、action上 IActionFilter 在action()方法前后执行 ActionFilterAttribute特性提供了默认实现

2021-01-09 19:06:14 278

原创 aps.net mvc中的Global.asax文件

一、Global.asaxGlobal.asax文件会被动态编译成HttpApplication的实例,其Global.asax.cs文件中是一个MvcApplication类,继承自HttpApplicationpublic class MvcApplication : System.Web.HttpApplication{ protected void Application_Start() { AreaRegistration.RegisterAllAreas

2021-01-09 11:12:58 324

原创 ASP.NET MVC请求处理流程

IIS请求处理流程一、IIS管道模型1.1 IIS 6.01.2 IIS 7.0二、管道事件三、ASP.NET MVC请求到响应的基本流程一、IIS管道模型1.1 IIS 6.0在IIS 6.0和早期版本中,ASP.NET被实现为IIS的ISAPI扩展。对于ASP.NET内容类型的请求,会被转发到承载ASP.NET请求管道和页面框架的ASP.NET的 isapi.dll对非ASP.NET内容(例如ASP页或静态文件)的请求则由IIS或其他ISAPI扩展进行处理,并且对ASP.NET不可见1

2021-01-08 20:45:34 930

原创 PowerDesigner自动根据字段名生成注释

PowerDesigner中找到 Tools -> Execute Comand -> Edit/Run Script,运行以下代码Option ExplicitValidationMode = TrueInteractiveMode = im_BatchDim mdl ' the current model' get the current active model Set mdl = ActiveModel I.

2020-12-27 15:47:54 210 1

原创 设计模式(结构型——Decorator模式)

设计模式八、Decorator模式8.1 Decorator模式的概念8.2 Decorator模式的实现八、Decorator模式8.1 Decorator模式的概念使用场景与Bridge模式的应用场景有些许类似。都是由于类需要在不同维度上进行拓展,如果单单通过继承的方式,每种组合的关系都定义出一个类,耦合程度非常高,且类的数量也会非常庞大。不同之处Bridge模式应对的是多维度且固定的拓展,例如,坦克游戏中的坦克模型有型号之分,且每种型号的坦克在不同的平台上都有对应的实现;一辆坦克,必

2020-12-13 21:56:40 286 1

原创 设计模式(结构型——Composite模式)

设计模式八、Composite模式8.1 Composite模式的概念8.2 Composite模式的实现八、Composite模式8.1 Composite模式的概念使用场景针对容器类型的层次结构,使用Composite模式封装内部实现例如,一个盒子,它内部还可以套一个盒子,直到盒子足够小,变成不可再分的单一对象,而不是再是容器对象。客户端使用该类型时,通常会先判断该类型是单一对象还是容器对象,如果是容器对象,需要不断递归遍历容器。8.2 Composite模式的实现将遍历过程

2020-12-12 11:28:21 130

原创 设计模式(结构型——Bridge模式)

设计模式四、Bridge模式4.1 Bridge模式的概念4.2 Bridge模式的实现四、Bridge模式4.1 Bridge模式的概念使用场景涉及多个维度上的剧烈变化,将各个维度解耦例如,游戏中的坦克模型,在型号维度上可以有较大变化,在游戏运行平台上也可以有较大变化,PC端、手机端、TV端等体现设计模式的原则——合成复用少用继承,多用组合若用继承的方式,会将不同维度的变化强烈耦合在一起4.2 Bridge模式的实现通过聚合的方式,将多个维度的变化组合在一起pu

2020-12-10 21:23:02 230 1

原创 设计模式(结构型——Adapter模式)

设计模式四、Adapter模式4.1 Adapter模式的概念4.2 Adapter模式的实现四、Adapter模式4.1 Adapter模式的概念使用场景在不修改现有类的情况下,复用现有类,并使其符合新环境的要求例如,现在需要调用某个方法,该方法满足某个接口规范,现有的一个类并不满足该接口规范遗留代码复用、类库迁移分类对象适配器通过组合的方式,将对象封装成满足条件的新对象合成复用原则:尽量使用合成/聚合的方式,而不是使用继承类适配器比较少使用;通过继承的方式以满足

2020-12-09 19:40:06 92

原创 设计模式(创建型——ProtoType模式)

设计模式四、ProtoType模式4.1 ProtoType模式的概念4.2 ProtoType模式的实现四、ProtoType模式4.1 ProtoType模式的概念定义用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。使用场景与工厂模式类似,都是用于创建同类对象不同点工厂模式需要单独定义一个工厂来创建对象ProtoType模式将创建对象的过程与类的定义(即原型)耦合在一个类中,且新创建的对象与原型实例的各部分都是相同的4.2 ProtoType模

2020-12-06 21:55:44 110

原创 设计模式(创建型——Builder模式)

设计模式四、Builder模式4.1 Builder模式的概念4.2 Builder模式的实现四、Builder模式4.1 Builder模式的概念定义将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示应用场景复杂对象由多个子对象组成,子对象的创建因需求不同而不同,但调用子对象的创建并将子对象组装成一个整体对象的逻辑算法是不变的。例如,生产手机,手机屏幕、CPU的规格型号会有所不同,会有不同的创建方式,但组装手机的过程是不变的。使用条件条件一:是一个对

2020-12-06 12:19:38 104

原创 设计模式(创建型——简单工厂、工厂方法、抽象工厂模式)

设计模式一、设计模式概述1.1核心二、单例模式2.1 应用场景2.2 变化点三、抽象工厂模式2.1 使用条件2.2 应用场景一、设计模式概述1.1核心发现并封装变化点二、单例模式2.1 应用场景只能创建一个对象2.2 变化点变化点在于new创建对象上不能依靠类的使用者去控制只创建一个对象三、抽象工厂模式2.1 使用条件条件一:涉及多系列对象的构建如果系列只有一个对象,则应该使用简单的静态工厂模式条件二:同一系列不同对象之间相互依赖2.2 应用场景

2020-12-05 18:57:13 112

原创 设计模式(概述、单例模式)

设计模式一、设计模式概述1.1 设计模式与面向对象1.2 设计模式的分类二、创建型模式2.1 单例模式2.1.1 单例模式的概念2.2.2 单例模式的使用2.2.2.1 单线程中的使用2.2.2.2 多线程中的使用2.2.2.3 多线程实现的简化一、设计模式概述1.1 设计模式与面向对象设计模式前人对于面向对象开发的经验总结面向对象一种编程思想,通过继承、封装、多态的方式,应对需求的变化设计模式的本质发现并封装变化点1.2 设计模式的分类创建型负责对象创建

2020-12-02 20:49:34 74

原创 C# 6.0本质论(多线程处理)

C#十八、多线程处理18.1 多线程概述18.2 使用System.Threading18.3 异步任务18.3.1 调用任务18.3.2 任务延续18.3.3 未处理异常18.3.4 任务取消18.3.5 TPL异步调用高延迟操作18.3.6 TAP ( Task-based Asynchronous Pattern )18.3.7 异步Lambda18.3.8 自定义异步方法18.3.9 任务调度器和同步上下文18.3.10 并行迭代18.3.11 TPL性能调整18.4 PLINQ十八、多线程处理

2020-09-20 11:24:06 1170

原创 Microsoft SQL Server 2008技术内幕:T-SQL语言基础(可编程对象)

T-SQL语言基础十、可编程对象10.1 变量10.1.1 变量的声明与赋值10.1.2 对多个变量赋值10.2 批处理10.2.1 批处理是语句分析的单元10.2.2 批处理和变量10.2.3 不能在同一批处理中编译的语句10.2.4 批处理是语句解析的单元10.2.5 go n 选项10.3 流程控制元素10.3.1 if...else... 流程控制元素10.3.2 while流程控制元素10.4 游标10.5 临时表10.6 动态SQL十、可编程对象10.1 变量10.1.1 变量的声明与赋值

2020-09-13 10:16:28 649

原创 Microsoft SQL Server 2008技术内幕:T-SQL语言基础(事务和并发)

T-SQL语言基础九、事务和并发9.1 事务9.2 锁定和阻塞9.2.1 锁9.2.1.1 锁模式及其兼容性9.2.1.2 可锁定资源的类型及意向锁9.2.1.3 并发性与系统资源的平衡9.2.2 检测阻塞9.2.2.1 获取锁信息9.2.2.2 获取联接信息9.2.2.3 获取会话信息9.2.2.4 获取请求信息9.2.2.5 设置超时期限及终止阻塞进程9.3 隔离级别9.3.1 read uncommitted 未提交读9.3.2 read committed 已提交读9.3.3 repeatable

2020-08-27 22:17:34 660

原创 Microsoft SQL Server 2008技术内幕:T-SQL语言基础(数据修改)

T-SQL语言基础

2020-08-23 19:37:01 375

原创 Microsoft SQL Server 2008技术内幕:T-SQL语言基础(透视、逆透视及分组集)

T-SQL语言基础七、透视、逆透视及分组集7.1 透视转换7.1.1 概念及作用7.1.2 使用标准SQL进行透视转换7.1.3 使用T-SQL PIVOT运算符进行透视转换7.2 逆透视转换7.2.1 概念及作用7.2.2 使用标准SQL进行逆透视转换7.2.3 使用T-SQL的unpivot运算符进行逆透视转换7.3 分组集7.3.1 grouping sets从属子句7.3.2 cube从属子句7.3.3 rollup从属子句7.3.4 grouping和grouping_id函数七、透视、逆透视及

2020-08-19 23:58:56 302

原创 Microsoft SQL Server 2008技术内幕:T-SQL语言基础(集合运算)

T-SQL语言基础六、集合运算6.1 集合运算的特点6.1.1 集合查询不允许包含order by6.1.2 null相等6.2 all 和 distinct6.2.1 all6.2.2 distinct6.3 union(并集)集合运算6.3.1 union all6.3.2 union distinct6.4 intersect(交集)集合运算6.4.1 intersect distinct6.4.2 intersect all6.5 except(差集)集合运算6.5.1 except distinc

2020-08-17 22:17:10 460

原创 Microsoft SQL Server 2008技术内幕:T-SQL语言基础(表表达式)

T-SQL语言基础五、表表达式5.1 派生表5.1.1 分配列别名5.1.2 嵌套5.1.3 派生表的多引用5.2 公用表表达式5.2.1 定义格式5.2.2 不需要嵌套5.2.3 多引用不需要重复5.2.4 递归5.3 视图5.3.1 视图的定义5.3.2 视图选项5.3.2.1 encryption5.3.2.2 schemabinding5.3.2.3 check option5.4 内联表值函数5.5 apply运算符五、表表达式表表达式将表达式的查询结果作为表进行使用分类派生表

2020-08-16 23:06:33 301

原创 Microsoft SQL Server 2008技术内幕:T-SQL语言基础(子查询)

T-SQL语言基础四、子查询4.1 独立子查询4.1.1 独立标量子查询4.1.2 独立多值子查询4.2 相关子查询4.2.1 相关子查询4.2.2 exists4.3 高级子查询4.3.1 返回前一个或后一个记录4.3.2 连续聚合4.3.3 行为不当的子查询4.3.3.1 null的问题4.3.3.2 子查询列名中的替换错误四、子查询分类独立子查询返回值标量多个值整个表相关子查询返回值标量多个值整个表作用避免将查询操作分为多个步骤,并在变量中

2020-08-16 08:57:03 455

原创 Microsoft SQL Server 2008技术内幕:T-SQL语言基础(联接查询)

T-SQL语言基础一、表运算符一、交叉联接二、内联接三、特殊的联接实例3.1 组合联接3.2 不等联接3.3 多表联接四、外联接4.1 外联接基础4.2 外联接的高级主题4.2.1 包含缺少值的数据4.2.2 对外联接中非保留表的列值进行过滤4.2.3 在多表联接中使用外联接4.2.4 随外联接一起使用count聚合函数一、表运算符from子句内可以用表运算符对输入的表进行操作表运算符ANSIjoinSQL Serverapplypivotunpivot一、交叉联接

2020-08-15 23:47:04 147

原创 Microsoft SQL Server 2008技术内幕:T-SQL语言基础(单表查询)

T-SQL语言基础一、select语句的元素1.1 分隔标识符名称1.2 where子句1.3 group by子句1.4 having子句1.5 select子句1.5.1 别名1.5.2 重复表达式1.5.3 distinct子句1.5.4 星号的使用1.5.5 order by子句1.5.6 top选项1.5.7 over子句一、select语句的元素各子句的逻辑处理顺序fromwheregroup byhavingselectoverdistincttoporder

2020-08-15 17:55:33 420

原创 Microsoft SQL Server 2008技术内幕:T-SQL语言基础(T-SQL查询和编程基础)

T-SQL语言基础一、SQL Server体系结构1.1 SQL Server实例1.2 数据库1.2.1 系统数据库和用户数据库1.2.2 数据库的物理结构1.3 架构和对象二、创建表和定义数据完整性2.1 创建数据库2.2 创建表2.3 定义数据完整性2.3.1 主键约束2.3.2 唯一约束2.3.3 外键约束2.3.4 检查约束2.3.5 默认约束一、SQL Server体系结构1.1 SQL Server实例概念指安装的一个SQL Server数据库引擎/服务特点每个实例之间相

2020-08-09 22:15:23 838 2

透视、逆透视及分组集.sql

Microsoft SQL Server 2008技术内幕:T-SQL语言基础(透视、逆透视及分组集)练习sql文件

2020-08-20

sqlserver集合运算.sql

Microsoft SQL Server 2008技术内幕:T-SQL语言基础(集合运算)练习sql文件

2020-08-20

sqlserver表表达式.sql

Microsoft SQL Server 2008技术内幕:T-SQL语言基础(表表达式)练习sql文件

2020-08-17

sqlserver子查询练习.sql

Microsoft SQL Server 2008技术内幕:T-SQL语言基础(子查询)练习sql文件

2020-08-16

联接查询练习.sql

Microsoft SQL Server 2008技术内幕:T-SQL语言基础(联接查询)练习sql文件

2020-08-15

单表查询练习.sql

Microsoft SQL Server 2008技术内幕:T-SQL语言基础(单表查询)练习sql文件

2020-08-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除