复习知识点

WCF服务web

引用命名空间 system.servcemodelredis

后缀SVC数据库

终结点endpoint编程

A  address   WCF服务地址windows

B  binding   绑定  实如今ClientService通讯的全部底层细节,好比用什么通信协议,传递什么数据格式设计模式

C  Contract  合同  Contract的主要的做用是暴露某个WCF Service所提供的全部有效的方法。Contract其实是把每一个方法的转化成为相对应的消息。api

 

 

Service配置节[必须有]:配置服务、接口和终结点。每一个Service都会有如下两个属性。name:名称空间.类名[服务的具体实现类]behaviorConfiguration:一个在behaviors节点中找到的名称。数组

Binding配置节[无关紧要]:配置绑定,如httptcp等。缓存

Behavior配置节[无关紧要]:配置行为,如认证等。安全

WCF在通讯过程当中有三种模式:请求与答复(默认)、单向、双工通讯。

  1. 客户端发送请求,而后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务端有了答复后才能继续执行其余程序

2.客户端向服务端发送求,可是无论服务端是否执行完成就接着执行下面的程序

WEBAPI(restful)

webapimvc 的区别

Web API更倾向于基于HTTP协议的服务,直接返回用户的数据请求。MVC是建站的一种框架,倾向于返回用户的页面请求。WebApi更加轻量级。

寄宿方式不一样:mvc只能寄宿在IIS上,而webapi能够寄宿在IISwindows服务

SOA  面向服务的架构

SOAP  webservce  通信协议

Http请求方式使用特性

特性路由(2.0Attribute Route   [Route(“api/controller/action”)]

可使用[FromUri]属性,使Web API来从查询字符串中获取复杂类型的值,

使用[FromBody]属性可使Web API从请求主体获取原始类型的值

 

接口安全知识

Accesstoken:客户端使用给定的帐号密码请求服务,服务端对帐号密码按必定加密规则进行加密,而后缓存到服务端并设置过时时间,最后返回给客户端,客户端可将accesstoken进行缓存,须要是没必要没都要去从新请求。

时间戳:每一次请求带上请求的时间戳,和服务端时间进行比较,超过必定时间可视为请求超时。

签名:客户端按照必定的加密规则将accesstoken、请求的参数进行加密生成签名,在服务端可验证签证是否正确来保证请求的参数没有被篡改。

网站安全知识

XSS(跨站点脚本攻击)

攻击方式:写入脚本到数据库

解决方法:对请求的参数作过滤

CSRF 跨站点请求伪造

攻击方式:用户登陆网址A之后,而后在未登出的状况下打开网站B,网站B经过带有网站A的登陆的登陆信息伪造请求网站A

解决方法

使用POST请求,每一次请求都要一个TOKEN参数,TOKEN是一个随机加密的参数.

每次刷新页面TOKEN也会刷新

C#基础知识 (封装、继承、多态)

值类型:直接在栈中开辟空间存放数据

整数:小数,boolcharstuct

引用类型 在堆中开辟空间存放数据,在栈中存放指向堆中数据的地址

字符串,类,数组

GC回收机制:当内存堆中数据没有被栈中任何地址引用,则堆中数据就会被回收掉

String/StringBuilder的区别

  1. 使用String不须要实例化一个对象而StringBuilder须要实例化一个对象后才能使用
  2. 每次给String赋值是都会在堆中开辟新的空间,栈中引用指向堆的新地址(每次给String赋值实际上是生成了一个新的String)。而StringBuilder实例化后会在堆中开辟初始化大小的空间,每次像里面增长新的内容都是在该空间后面增长,而不须要开辟新的空间,若是内存不够了则在此基础上增长一倍的内存空间。

const 常量/Readonly 只读

区别const声明一个变量时必须初始化,而readonly声明一个变量能够在构造方法里面初始化

const只能在初期就使用常量初始化好。对于每一次编译后的结果,const的值是固定的,而readonly的值是能够在运行的时候才肯定值的

抽象方法(abstract/虚方法(virtual

抽象方法必须在派生类中重写,虚方法在派生类中重写也可不进行重写(override

接口(interface/抽象类(abstract class

相同点

  1. 接口和抽象类都不可被实例化
  2. 抽象类和接口中都包含有抽象方法

区别

  1. 一个类可继承多个接口,可是只能继承一个抽象类
  2. 接口中只能包含抽象方法(只有声明,没有方法体),而抽象类中不只能包含抽象方法还可包含普通方法。

 委托(delegate)、事件(event

Action:无返回值的委托

Void NoParaMethod(string para){}

Action<string> a=new Action<string>(NoParaMethod);

Func:有返回值的委托

Bool HaveParaMethod(string para){return false;}

Func<string,bool> a=new Func<string,bool>(HaveParaMethod);

 

多播委托:同时指向几个方法的委托

Void MethodA(string para){}

Void MethodB(string para){}

Action<string> a=new Action<string>(MethodA);

a+=MethodB;

泛型约束(where TClass

T:结构  

类型参数必须是值类型。能够指定除 Nullable 之外的任何值类型。有关更多信息,请参见使用能够为 null 的类型(C# 编程指南)。  

T:类  

类型参数必须是引用类型;这一点也适用于任何类、接口、委托或数组类型。  

T:new()  

类型参数必须具备无参数的公共构造函数。当与其余约束一块儿使用时,new() 约束必须最后指定。  

  

T:<基类名>  

类型参数必须是指定的基类或派生自指定的基类。  

  

T:<接口名称>  

类型参数必须是指定的接口或实现指定的接口。能够指定多个接口约束。约束接口也能够是泛型的。  

  

T:U  

 T 提供的类型参数必须是为 U 提供的参数或派生自为 U 提供的参数。这称为裸类型约束 

LinqLambda 表达式

特性 Attribute    Sealed Class MyAttribute:Attribute

多线程、Lock

四种建立多线程的方式

设计模式(单例模式,工厂模式,观察者模式)

 

SQL相关

优化

减小没必要要的查询字段

关联查询和排序尽可能使用主键,由于主键通常是索引

查询条件尽可能使用到索引,避免使用模糊查询

复杂的业务和查询尽可能使用视图和存储过程

使用存储过程的好处

维护方便(不用修改程序)、执行快(预编译)

数据库读写分离(高并发)

主(负责写、一台、负责同步数据到从数据库)从(负责读、可多台)数据库

对于读操做为主的应用,使用读写分离是最好的场景,由于能够确保写的服务器压力更小,而读又能够接受点时间上的延迟(同步有延时)。

ADO.NET五大对象

Connection  链接对象
Command   命令对象,指示要执行的命令和存储过程 
DataReader  是一个向前的只读的数据流 
DataAdapter 是功能强大的适配合器,支持增删改查的功能 
DataSet     是一个数据级对象,至关于内存中的一张表或多张表

索引

汇集索引(惟一索引)

非汇集索引

存储过程

 Create proc_page(@pagesize int,@pageindex)

 As

 Select  num.* from (select row_number() over(order by id desc)  num,* from tablename) info

 Where between @pagesize*(@pageinde-1)+1 and @pagesize*@pageindex

事务

Begin transaction

Commit transaction

Rollback transaction

视图

Create View View_name

As

Select * from A

A表数据插到B

B表存在 insert into B select * from A

B表不存在 select *  into B from A

关键字

Convert(char(10),getdate())

Select  @@Identity

Decalre  @page int

Select distinct name from A

If exsits()

Row_number() over(order by id desc)

Case when 条件 then A else B  end

Select a from A group by a having max(a)>0

Average 平均值

 ASP.NET MVC 路由机制(Route)和过滤器(Filter)

Http请求

HttpMoudle

HttpHander

Httpapplication

Httpcontext

Resqust

Response

 

 

四种过滤器 

IAuthorizationI进入contrlleraction以前

IActionFilter

IExceptionFilterI

ResultFilter

 缓存相关(redis)

相关文章
相关标签/搜索