複習知識點

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)

相關文章
相關標籤/搜索