1. 程式人生 > >復習知識點

復習知識點

ODB sealed ins 圖片 數據庫讀寫分離 name har ons dap

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)

復習知識點