經常,會有一些人搞不清楚.NET和c#和ASP.NET這三者之間的關係,她們都是什麼呢?他們之間有什麼關係呢?今天我簡單給大家總結一下吧。 首先:什麼是.NET? .NET是微軟公司下的一個開發平臺,.NET核心就是.NET Framwork(.NET框架)是.NET程式開發和運行的環境,在這個平臺 ...
經常,會有一些人搞不清楚.NET和c#和ASP.NET這三者之間的關係,她們都是什麼呢?他們之間有什麼關係呢?今天我簡單給大家總結一下吧。
首先:什麼是.NET?
.NET是微軟公司下的一個開發平臺,.NET核心就是.NET Framwork(.NET框架)是.NET程式開發和運行的環境,在這個平臺下可以用不同的語言進行開發,因為.NET是跨語言的一個平臺。語言可以是C#,f#,j#,vb.net等等。順便說一下sum公司的JAVA和.NET不同的一點是java是跨平臺的,不跨語言的。.NET跨平臺僅限於安卓系統和IOS蘋果系統。
1..net框架的組成分為兩部分:CLR:公共語言運行時,-提供內在管理,代碼安全性檢測等功能
FLC:.NET框架類庫,類庫中有很多線程的資源可使用(比如:類,方法,屬性),提供大量應用類庫,提高開發效率
2.CLR的結構:CLS:公共語言規範,獲取各種語言轉換成統一的語法規範。
CTS:公共類型系統,將各種語言中的數據類型轉換成統一的類型
JIT:實時編譯器(即時編譯器)用於將轉換之後的語言編譯為二進位語言,交給CPU執行。
3 .NET運行的機制流程
各種語言(c#,F#,j#等對應的源程式)——-—經過CLS,CTS第一次編譯———————>統一規範語言(中間語言)MSIL(.EXE,.DLL)————JIT第二次編譯————>二進位語言——————>運行在CPU中
舉一反三,知道了.net的運行機制就順便可以瞭解下java的運行機制,原理其實差不多
.java————編譯———>位元組碼文件(.CLASS)———jvm解釋(jvm虛擬機)———>二進位語言——————>運行在CPU中
有人說:學習.NET Framework 是所有.NET 開發人員都必須的,否則開發.NET程式永遠都是停留在‘外功’的招式,.NET Framework 是.NET開發高手的‘內功’修行之一。
4.C#是一個.NET平臺下的一個程式設計語言,只是一個語言,僅此而已。 程式設計語言是為了方便開發人員和電腦溝通的工具。 從上面.net的運行機制流程就可以看出C#和.NET之間的關係,畫面閱讀者自己進行補腦想象吧!
5.ASP.NET是一個網站開發的技術,是.NET框架中的一個應用模型。(它的歷史挺長遠的,我就不寫它的由來了,個人理解是它的媽媽是ASP,不懂問度娘吧)使用ASP.NET開發Web應用程式並維持其運行,比其他開發語言更加簡單。與Java、PHP和Perl等高級技術相比,ASP.NET具有方便性、靈活性、生產效率高、安全性高及面向對象等優點,是目前主流的網路編程技術之一。
6.關於ASP.NET MVC,剛開始接觸這個技術的時候我經常不理解他們的名字,我相信許多學ASP.NET開發人員開始接觸MVC應該也和我一樣產生很多為什麼,也會誤認為認為MVC與ASP.NET完全沒有關係,是一個全新的Web開發,深入學習後我才知道事實上A SP.NET是創建WEB應用的框架而MVC是能夠用更好的方法來組織並管理代碼的一種更高級架構體系,所以可以稱之為ASP.NET MVC。我們可將原來的ASP.NET稱為 ASP.NET Webforms,新的MVC 稱為ASP.NET MVC。
MVC是軟體架構的一種模式,可以說就相當於我們常說的設計模式吧。其中主要包括三個模塊,顧名思義。就如MVC名字所顯示的那樣:模型(Model),視圖(View),控制器(Controller)。mvc中的模型(Model)和視圖(View )是完全區別於三層架構中的模型(Model)和視圖(View)的。
MVC中模型(Model)的特點:
①有對數據直接訪問的權利,如:對資料庫的訪問;
②模型(Model)“不依賴”視圖(View)和控制器(Controller),即模型(Model)不關心它會被如何顯示或者如何被操作;
③模型(Model)中數據的變化一般會通過一種刷新機制被“公佈”;
④為了實現③中的“機制”用於監視此模型的視圖必須事先在此模型上註冊。從而,視圖可以瞭解在數據模型上發生的改變。
視圖(View),這裡的視圖基本跟三層中的視圖一樣,都是為了顯示數據,沒有程式上的邏輯。為了實現視圖上數據的刷新,視圖(View)需要訪問它監視的模型(Model),所以應該事先在被它監視的數據那裡進行註冊。
控制器(Controller),這個概念是在三層中不存在的概念。它主要起到不同層面的組織作用,用於控制應用程式的流程。主要處理事件並作出相應。“事件”主要包括:用戶的行為和數據的改變。
以上就是三層結構和mvc在概念上的一點區別吧。(什麼是三層結構?百度一下,你就知道。)
有句話說的好:學而不思則罔,思而不學則殆,學編程不僅要知其然,還要知其所以然,才能更好的領悟和體會到編程的神奇和美妙。