1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 3231字,需瀏覽 7分鐘

         ·

        2020-11-19 17:57

        本篇文章稍微偏原理且底層,有一定難度和且比較晦澀,文章粒度稍微粗些,更細粒度的,會在后續(xù)的文章中,結(jié)合具體的Demo實例分析。感興趣的朋友,可以先收藏。

        .NET框架概述

        1.作用:提供了基于.NET框架開發(fā)的基礎(chǔ)平臺和模板,為.NET開發(fā)的基架;

        2.基本構(gòu)成:可支持語言,CLS,模板框架,基本模板,基本操作,基本類庫,公共需要運行時,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運用程序;

        ? ? ? ? ? ? C/S:Winform和WPF,主要是桌面運用程序;

        ? ? ? ? ? ? APP:當(dāng)前主流的一種開發(fā)模式;

        (4)基本操作:對DB操作(ADO.NET和EF),I/O操作等;

        (5)BCL:基本類庫,供調(diào)用;

        (6)CLR:公共語言運行時,是IL形成EXE必不可少的環(huán)節(jié),也是JIT實現(xiàn)一次編譯,多次且跨平臺運行的必不可少的環(huán)境,在.NET框架中扮演著及其重要的角色,且技術(shù)比較難且晦澀;

        (7)CTS 和 CLS:CTS,即通用類型系統(tǒng),實現(xiàn)COM組件兼容等;

        (8)OS:屏蔽底層實現(xiàn),高度抽象,OS類型:Win XP(基本淘汰,微軟官方都不維護了)、Win 7 ,Win 8,Win 10;

        3..NET兩大產(chǎn)品:Dynamic CRM 和SharePoint;

        ADO.NET

        1.作用:程序與數(shù)據(jù)交互的方式之一。.NET框架中,ADO.NET抽象化了程序與Database的交互,在進行基本的CRUD操作時,只需調(diào)用具體的類,方法即可;

        2.基本構(gòu)成:主要由五大對象構(gòu)成。Conneciton對象,DataAdapter對象,Command對象,DataSet對象,DataReader對象構(gòu)成;

        3.五大對象的基本概述:

        ? ?(1)Connection對象:連接數(shù)據(jù)庫的通道,主要方法為Open()和Close(),前者負責(zé)打開數(shù)據(jù)庫入口,后者負責(zé)關(guān)閉數(shù)據(jù)庫入口;

        ? ?(2)Command對象負責(zé)對DB的具體操作,CRUD就是通過它實現(xiàn)的;

        ? ?(3)DataAdapter對象負責(zé)將DB與DataSet適配,使基本的CRUD得以實現(xiàn);

        ? ?(4)DataSet對象扮演虛擬內(nèi)存的角色,也扮演緩存的角色,是實現(xiàn)Application與DB數(shù)據(jù)交互的必要環(huán)節(jié)之一;

        ? ?(5)DataReader主要解決讀取數(shù)據(jù)的問題,性能比較高;

        4.建議:具體詳細信息,大家可以參照MSDN,其概述比較詳細;


        EF框架

        1.作用:為程序員提供更加方便快捷的數(shù)據(jù)操作,對于初級程序員來說,能很快的上手,極其方便(當(dāng)然,有經(jīng)驗的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訪問入口,實現(xiàn)實體與數(shù)據(jù)的轉(zhuǎn)換;

        ? (3)Entity Client:負責(zé)將Linq To Entity和Entity SQL轉(zhuǎn)化為標準的SQL;

        ? ?(4)EDM:實現(xiàn)概念模型向存儲模型的轉(zhuǎn)換;

        ? ?(5)ADO.NET Data Provider:實現(xiàn)對DB的交互;

        程序編譯過程

        1.程序編譯過程大致可概述

        2.在控制臺中操作

        Code:

        ?View Code

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

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

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

        提示:當(dāng)在Dos命令中中提示:‘csc’不是內(nèi)部或外部命令,也不是可運行的程序或批處理文件。

        請將.net csc.exe 路徑添加到系統(tǒng)環(huán)境變量中,我的csc.exe路徑為

        C:\Windows\Microsoft.NET\Framework64\v4.0.30319

        列舉幾個比較常用的csc.exe命令
        關(guān)于csc.exe的命令,大家可以參照MSDN:
        https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/compiler-options/command-line-building-with-csc-exe
        3.編譯過程大致可分為兩個階段:
        第一階段:.cs代碼=>IL代碼,這個編譯時間比較慢
        第二階段:IL+dll通過CRL形成目標代碼,這個過程比較快
        大家想想:為什么第一階段比較慢,第二階段比較快呢?將在下面的IL中講到。

        CLR

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

        2.可以把CLR看成是Java虛擬機;
        3.JIT即時編譯,主要由三部分構(gòu)成(主編譯器,PreJit和EconoJit)
        4.JIT+CLR實現(xiàn)一次編譯,多次運行且可跨平臺;
        5.CLR中比較重要的一個環(huán)節(jié),就是管道(Pipes)(HttpModule和HttpHandler)

        MSIL

        1.IL是.cs代碼經(jīng)過VS編譯器csc.exe編譯而成的;

        2.IL比較接近機器代碼但非機器代碼(這個特點使其IL=》.exe過程比較快);
        3.IL代碼是指令無關(guān)的;
        4.可以通過反匯編工具查看IL代碼;


        ?基于.NET Framework框架的B/S程序運行解析

        總體流程概述

        ?

        ?1.IIS在處理請求時,將資源分為兩大類型:靜態(tài)資源和動態(tài)資源
        ? ? ?靜態(tài)資源:IMG,JS,CSS,HTML等;
        ? ? 動態(tài)文件:ASP,ASP.NET,.aspx,..ashx,asax等;
        ?2.IIS處理靜態(tài)資源:
        ? ? 當(dāng)IIS收到來自瀏覽器的請求,識別為靜態(tài)資源時,IIS直接處理,將處理結(jié)果以HTML形式返回給瀏覽器;
        ?3.IIS如何處理動態(tài)資源?
        ? ?當(dāng)IIS收到來自瀏覽器的請求,識別為動態(tài)資源時,此時IIS不能處理,轉(zhuǎn)交給ISAPI Extensions(ISAPI 擴展程序)擴展程序,該擴展程序根據(jù)請求資源擴展名,尋找響應(yīng)的程序處理,如為.asp文件,則asp_isapi處理
        ,若為.aspx,則aspnet_isapi處理,
        ?4.IIS如何處理WebForm和MVC?
        ??當(dāng)IIS收到來自瀏覽器的請求,識別為動態(tài)資源時,此時IIS不能處理,轉(zhuǎn)交給ISAPI Extensions處理,此時ASP.NET MVC HTTP處理程序識別請求資源是否為MVC,若是,則交給MVC路由,按照處理MVC方式處理,否則
        ,按照WebForm流程處理;
        5.CLR里面的管道(Pipes)是怎樣的呢?
        ? ?管道的本質(zhì)是HttpModule和HttpHandler(一般處理程序.ashx);

        CLR和Pipe

        TCP/IP模型



        End


        瀏覽 35
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日本黄色视频在线看 | 狠狠穞A片一區二區三區 | 97超碰在线免费观看 | 成人v精品秘 蜜桃久久一区 | 国产主播精品 | 欧美操逼手机视频 | 成人AV一区二区三区婷婷 | 欧美性爱XXXX黑人XYX性爽 | 26uuu精品一区二区在线观看 | 嫩草嫩草嫩草嫩草嫩草 |