复习知识点

WCF服务

引用命名空间 system.servcemodel

后缀SVC

终结点endpoint

A  address   WCF服务地址

B  binding   绑定  实现在ClientService通信的所有底层细节,比如用什么通讯协议,传递什么数据格式

C  Contract  合同  Contract的主要的作用是暴露某个WCF Service所提供的所有有效的方法。Contract实际上是把每个方法的转化成为相对应的消息。

 

 

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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章