【ASP.NET MVC系列】淺談ASP.NET框架
一
.NET框架概述

1.作用:提供了基于.NET框架開發(fā)的基礎(chǔ)平臺和模板,為.NET開發(fā)的基架;
2.基本構(gòu)成:可支持語言,CLS,模板框架,基本模板,基本操作,基本類庫,公共需要運(yùn)行時,CTS和CLS,OS等;
(1)可支持語言:.NET框架可支持vb,c++,c#,F(xiàn)#,js等語言開發(fā);
(2)CLS:通用語言規(guī)范,使多種語言開發(fā)成為了可能,可參考:https://docs.microsoft.com/en-us/dotnet/standard/language-independence-and-language-independent-components
(3)模板框架:B/S模式開發(fā),C/S模式開發(fā),App開發(fā),接口開發(fā)
? ? ? ? ? ? B/S:WebForm和MVC,.NET Core;主要是PC運(yùn)用程序;
? ? ? ? ? ? C/S:Winform和WPF,主要是桌面運(yùn)用程序;
? ? ? ? ? ? APP:當(dāng)前主流的一種開發(fā)模式;
(4)基本操作:對DB操作(ADO.NET和EF),I/O操作等;
(5)BCL:基本類庫,供調(diào)用;
(6)CLR:公共語言運(yùn)行時,是IL形成EXE必不可少的環(huán)節(jié),也是JIT實(shí)現(xiàn)一次編譯,多次且跨平臺運(yùn)行的必不可少的環(huán)境,在.NET框架中扮演著及其重要的角色,且技術(shù)比較難且晦澀;
(7)CTS 和 CLS:CTS,即通用類型系統(tǒng),實(shí)現(xiàn)COM組件兼容等;
(8)OS:屏蔽底層實(shí)現(xiàn),高度抽象,OS類型:Win XP(基本淘汰,微軟官方都不維護(hù)了)、Win 7 ,Win 8,Win 10;
3..NET兩大產(chǎn)品:Dynamic CRM 和SharePoint;
ADO.NET

1.作用:程序與數(shù)據(jù)交互的方式之一。.NET框架中,ADO.NET抽象化了程序與Database的交互,在進(jìn)行基本的CRUD操作時,只需調(diào)用具體的類,方法即可;
2.基本構(gòu)成:主要由五大對象構(gòu)成。Conneciton對象,DataAdapter對象,Command對象,DataSet對象,DataReader對象構(gòu)成;
3.五大對象的基本概述:
? ?(1)Connection對象:連接數(shù)據(jù)庫的通道,主要方法為Open()和Close(),前者負(fù)責(zé)打開數(shù)據(jù)庫入口,后者負(fù)責(zé)關(guān)閉數(shù)據(jù)庫入口;
? ?(2)Command對象負(fù)責(zé)對DB的具體操作,CRUD就是通過它實(shí)現(xiàn)的;
? ?(3)DataAdapter對象負(fù)責(zé)將DB與DataSet適配,使基本的CRUD得以實(shí)現(xiàn);
? ?(4)DataSet對象扮演虛擬內(nèi)存的角色,也扮演緩存的角色,是實(shí)現(xiàn)Application與DB數(shù)據(jù)交互的必要環(huán)節(jié)之一;
? ?(5)DataReader主要解決讀取數(shù)據(jù)的問題,性能比較高;
4.建議:具體詳細(xì)信息,大家可以參照MSDN,其概述比較詳細(xì);
EF框架

1.作用:為程序員提供更加方便快捷的數(shù)據(jù)操作,對于初級程序員來說,能很快的上手,極其方便(當(dāng)然,有經(jīng)驗(yàn)的EF開發(fā)人員可能經(jīng)歷過EF的各種坑);
2.三種模式:DB First,Code First,Model First;
3.基本構(gòu)成:操作工具(Linq To Entity,Entity SQL),ObjectServices,Entity Client,EDM,ADO.NET ?Data Provider;
? ?(1)Linq To ?Entity 和Entity SQL:提供了對數(shù)據(jù)操作的兩種不同方式;
? ?(2)ObjectServices:DB訪問入口,實(shí)現(xiàn)實(shí)體與數(shù)據(jù)的轉(zhuǎn)換;
? (3)Entity Client:負(fù)責(zé)將Linq To Entity和Entity SQL轉(zhuǎn)化為標(biāo)準(zhǔn)的SQL;
? ?(4)EDM:實(shí)現(xiàn)概念模型向存儲模型的轉(zhuǎn)換;
? ?(5)ADO.NET Data Provider:實(shí)現(xiàn)對DB的交互;
程序編譯過程

1.程序編譯過程大致可概述
2.在控制臺中操作
Code:
?View Code

下面我們將AddSum()方法編譯成dll文件

通過反編譯工具.NET Reflector查看IL代碼

?下面我們用NotePad++編譯源代碼,用VS的csc.exe編譯器編譯

提示:當(dāng)在Dos命令中中提示:‘csc’不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件。
請將.net csc.exe 路徑添加到系統(tǒng)環(huán)境變量中,我的csc.exe路徑為
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
列舉幾個比較常用的csc.exe命令
CLR

1.作用:內(nèi)存管理,異常管理,多線程管理,GC管理等。CLR為.NET中極其重要的組成部分,也是.NET框架中比較難且晦澀技術(shù)之一。
MSIL

1.IL是.cs代碼經(jīng)過VS編譯器csc.exe編譯而成的;
二
?基于.NET Framework框架的B/S程序運(yùn)行解析
總體流程概述

?
CLR和Pipe

TCP/IP模型


End
