一,、WebForm,、WinForm,、Win32之間關(guān)系 1.WebForm WebForm是.net中用于開(kāi)發(fā)web應(yīng)用的一系列技術(shù)的通稱,。特點(diǎn)是使用統(tǒng)一的UI,就是web頁(yè)面,,統(tǒng)一的client端(客戶端),,瀏覽器。沒(méi)有平臺(tái)和瀏覽器限制(因?yàn)閣ebform產(chǎn)生的頁(yè)面是html 3.2兼容的),。WebForm頁(yè)面構(gòu)架是一個(gè)可升級(jí)的公用語(yǔ)言運(yùn)行程序模型,,被用來(lái)在服務(wù)器端動(dòng)態(tài)地建立Web頁(yè)面,。 WebForm是純文本文件,,以.aspx為文件擴(kuò)展名,。當(dāng)客戶端瀏覽器請(qǐng)求一個(gè).aspx文件時(shí),,Asp.net將解析并編譯目標(biāo)文件為.net構(gòu)架類,,接著這個(gè)類動(dòng)態(tài)處理客戶端的請(qǐng)求。相對(duì)Asp ,,Asp.net引入了全新的的HTML編程模式,,包括全新的服務(wù)器端控件,表單的事件驅(qū)動(dòng),,數(shù)據(jù)綁定等,。 WebForm的出現(xiàn)在很大程度上為了實(shí)現(xiàn)web上RAD(快速應(yīng)用程序開(kāi)發(fā))開(kāi)發(fā),傳統(tǒng)的b/s程序中程序員要做界面時(shí)往往要與網(wǎng)頁(yè)制做人員結(jié)合,,現(xiàn)在ms給了你一個(gè)和vb或delphi一樣所見(jiàn)即所得的web開(kāi)發(fā)界面,,它是運(yùn)行在.net架構(gòu)之上. 2.WinForm WinForm是.Net開(kāi)發(fā)平臺(tái)中對(duì)Windows Form的一種稱謂。.Net 為開(kāi)發(fā)WinForm的應(yīng)用程序提供了豐富的Class Library(類庫(kù)),。這些WinFrom 類庫(kù)支持RAD(快速應(yīng)用程序開(kāi)發(fā)),,這些類庫(kù)被封裝在一個(gè)名稱空間之中,這個(gè)名稱空間就是System.Windows.Forms,。在此名稱空間中定義了許多類,,在開(kāi)發(fā)基于.Net的GUI應(yīng)用程序的時(shí)候,就是通過(guò)繼承和擴(kuò)展這些類才使得我們的程序有著多樣的用戶界面,。本文就試圖通過(guò)一個(gè)最基本的類--Form. 3.Win32 Win32是建立 Win32 Windows 應(yīng)用程序,,包括主控臺(tái)應(yīng)用程序、可執(zhí)行的 Windows 架構(gòu)應(yīng)用程序,、動(dòng)態(tài)鏈接庫(kù) (DLL) 以及靜態(tài)鏈接庫(kù),。 4.WebForm和 WinForm的最大區(qū)別是: WebForm應(yīng)用程序部署在服務(wù)器端,用戶通過(guò)瀏覽器與其交互,;WinForm應(yīng)用程序需要部署到客戶端,,用戶通過(guò)專門為該程序打造的用戶界面與其交互。 WebForm是基于Web瀏覽器的網(wǎng)絡(luò)應(yīng)用程序窗體,WinForm是基于Windows桌面應(yīng)用程序窗體. 二,、ASP.Net和C#.Net的區(qū)別 C#.net是ADO.net,,主要用于做C/S架構(gòu)的窗體,也就是winform,。 asp.net主要是做B/S架構(gòu)web窗體,,現(xiàn)在大部分都是網(wǎng)站和系統(tǒng)都是面向web的,所以現(xiàn)在基本上用asp.net的人比較多,,而ADO個(gè)別的內(nèi)容也是在web中使用的 三,、asp.net與C#及.NET Framework的關(guān)系? c#是一種編程語(yǔ)言,由微軟開(kāi)發(fā)的,,其寫出的程序需要.NET Framework的支撐才能運(yùn)行,。 c#有兩個(gè)開(kāi)發(fā)方向:.net和winform,。前者主要是用于網(wǎng)站的開(kāi)發(fā),,只在運(yùn)行此網(wǎng)站的機(jī)子上安裝.NET Framework即可,,瀏覽網(wǎng)站的機(jī)子不用。后者主要是用于應(yīng)用軟件(桌面軟件或者是服務(wù))的開(kāi)發(fā),,所有運(yùn)行程序的機(jī)子上都需要安裝.NET Framework .NET Framework:支持winform或者win32(多時(shí)服務(wù))程序運(yùn)行的框架 四,、C#、 winform以及 .NET之間關(guān)系,。 net包括一個(gè)解析應(yīng)用程序代碼的類庫(kù)以及一個(gè)支持程序運(yùn)行的平臺(tái),。 何謂平臺(tái): 比方說(shuō)exe可執(zhí)行文件可以在Windows上運(yùn)行,卻不能在Linux上面運(yùn)行,。操作系統(tǒng)本身就是一個(gè)運(yùn)行平臺(tái)。底層的API等可以看做類庫(kù),。所有在Windows上運(yùn)行的程序其實(shí)都只是對(duì)底層API直接或間接地調(diào)用,擴(kuò)展了操作系統(tǒng)的功能而已,。 .net之前的Windows程序在寫完后被編譯成二進(jìn)制的exe文件,。它們可以直接被操作系統(tǒng)解釋并送到CPU里面運(yùn)行。也就是說(shuō)Windows就是這些程序運(yùn)行的平臺(tái)。 問(wèn)題1: 不光Windows與Linux是不同的運(yùn)行平臺(tái)。Windows的不同版本也是不同的運(yùn)行平臺(tái),。因?yàn)樗鼈兊牟僮飨到y(tǒng)內(nèi)核或多或少不一樣,。API的類庫(kù)也存在差異,。如果各個(gè)版本的Windows內(nèi)核不能完全兼容,就會(huì)導(dǎo)致如下問(wèn)題:如果某程序編寫的時(shí)候調(diào)用了某個(gè)特定版本W(wǎng)indows的某個(gè)函數(shù),并且該函數(shù)在其它版本的Windows內(nèi)核中都沒(méi)有,,那么把該程序發(fā)布到其它版本的Windows至上就會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤,。運(yùn)行到一半發(fā)現(xiàn)找不到某個(gè)函數(shù),,這是一個(gè)問(wèn)題。 另一個(gè)顯著的問(wèn)題是: 編程語(yǔ)言何其之多,。如果寫C語(yǔ)言的人能夠調(diào)用B語(yǔ)言編寫的組件,。那么代碼的重用性就得到了極大程度上的增強(qiáng)。 .net .net出現(xiàn)后解決了很多問(wèn)題,。當(dāng)然包括這兩個(gè)問(wèn)題,。.net支持很多種語(yǔ)言。但是C#才是為.net量身定做的語(yǔ)言,。 .net本質(zhì)也只是對(duì)API進(jìn)行了更安全的封裝,,也只是Windows的一種擴(kuò)展而已。但是它之所以獨(dú)立于Windows之上成為一個(gè)運(yùn)行平臺(tái),,是因?yàn)?net編寫的程序并沒(méi)有直接編譯成Windows能夠理解的二進(jìn)制文件,。而是編譯成了.net的中間語(yǔ)言。好比我們重新定義了一種國(guó)際語(yǔ)言,。它既不是英語(yǔ)也不是漢語(yǔ),,不是現(xiàn)存的任何語(yǔ)言。但是它可以用來(lái)翻譯現(xiàn)存的所有語(yǔ)言,。正因?yàn)槌绦虮痪幾g成了中間語(yǔ)言,,它們?cè)谶@個(gè)層面上可以自由地交流。所以C#之類的C型語(yǔ)言可以跟VB型的B型語(yǔ)言等互相訪問(wèn),。也正因?yàn)樗鼈儽痪幾g成了一種操作系統(tǒng)不認(rèn)識(shí)的中間語(yǔ)言,,它們才需要有一個(gè)解析平臺(tái)(公共語(yǔ)言運(yùn)行時(shí),也是.net的一個(gè)部分)。.net相當(dāng)于同時(shí)充當(dāng)了程序與Windows之間的翻譯官與字典的功能,。 轉(zhuǎn)載自:u012092924博客 |
|