.NET框架體繫結構

来源:http://www.cnblogs.com/roucheng/archive/2016/05/06/netkuangjia.html
-Advertisement-
Play Games

剛開始接觸.NET很疑惑,看完視頻也不是太懂,通過總結和反覆,從概括和概念入手,慢慢變得清晰了。這篇博客主要是我對.NET基礎知識的瞭解,算作積累吧。 .NET框架體繫結構 由四個主要部分組成 公共語言運行時(CLR)是.NET框架應用程式的執行引擎..NET框架的關鍵作用在於,它提供了一個跨編程語 ...


剛開始接觸.NET很疑惑,看完視頻也不是太懂,通過總結和反覆,從概括和概念入手,慢慢變得清晰了。這篇博客主要是我對.NET基礎知識的瞭解,算作積累吧。

 

.NET框架體繫結構

由四個主要部分組成

    公共語言運行時(CLR).NET框架應用程式的執行引擎..NET框架的關鍵作用在於,它提供了一個跨編程語言的統一編程環境,這也是它能獨樹一幟的根本原因。

          .NET框架為開發人員提供了一個統一、面向對象、層次化、可擴展的類庫集,即基底類別庫(BCL

    而ADO.NET是一個新的數據訪問框架,滿足了ADO無法滿足的三個重要需求:提供了斷開的數據訪問模型,這對Web環境至關重要;提供了與XML的緊密集成;還提供了與.NET框架的無縫集成.

    活動服務企頁面(ASP.NET)提供了一個統一的Web開發模型,其中包括為開發人員生成企業級Web應用程式所需的各種服務和全新控制項.它是一個已編譯的、基於.NET環境的、可以用任何與.NET相容語言創建的應用程式。

 

 

.NET程式的編譯與運行

 

    在編譯使用.NET框架創建的代碼時,不是立即創建成操作系統特定的本機代碼,而是把代碼編譯為微軟中間語言(MSIL)代碼。在執行應用程式時由JIT編譯器把MSIL編譯為專用於某種操作系統和目標機器結構的本機代碼,然後操作系統才能執行應用程式。 

程式集

    在編譯應用程式時,創建的MSIL代碼存儲在一個程式集中,程式集包括可執行的應用程式文件(.exe)和其他應用程式使用的庫(.dll),還包括元數據和可選資源。

托管代碼

    托管是什麼意思,說白了就是讓CLR管理著應用程式,從源代碼到MSIL,再到本機代碼,再到程式執行,由.NET與操作系統進行交互。不在CLR控制之下運行的應用程式時非托管的。 

托管代碼最重要的一個功能是無用存儲單元收集(garbage collection),也稱垃圾回收,確保應用程式不再使用某些記憶體時,這些記憶體會被完全釋放。

   下麵這張圖是.NET程式的編譯與運行時的情況:

 

 

 

 

 

.NET  VS J2EE

.NET框架與SUN公司的J2EE體繫結構是當今企業應用的兩大體繫結構,它們有很多相似之處,如下圖(左側為.NET框架,右側為J2EE):

 

 

 

 

    可以看出,對於.NET框架的每一部分,J2EE體繫結構都有所體現,他們都是企業級開發平臺,並且廣泛應用於Web開發領域。.NET框架和Java都使用了托管的運行時環境,都將源代碼轉換為一種中間語言,然後將其編譯為 本地的可執行代碼,兩種體繫結構都提供了無用存儲的單元收集器、動態類載入和異常處理等。

 

下麵是關於.NET的幾個小問題:

  1. .NET框架可以運行於哪些平臺?

目前可以運行在windows95/98/MEwindowsNT4.0windows2000windowsXPwindows2003windowsvista、windows 7、windows 10上。

此外還有一個稱為.NET精簡框架的.NET框架版本,它運行在WindowsCE和其他嵌入式操作系統上。

  1. .NET框架支持哪些編程語言?

.NET框架與編程語言無關。事實上任何語言都可以支持.NET框架。目前可以用許多語言來創建.NET程式,包括:C++VB.netJScriptC#。以後也會有大量的第三方語言可以用來創建.NET框架應用程式,包括CobolEiffelPerlPythonSmalltalk等。

  1. .NET框架可以創建哪些類型的應用程式?

並不限制應用程式的類型,可以創建控制台應用程式、windows應用程式、Web應用程式、Web服務和其他各種類型的應用程式。

  1. .NET框架和COM+服務之間是什麼關係?

.NET框架中,不僅可以完全訪問COM+服務,而且也更容易創建服務組件。.NET框架組件還可以利用COM+中所提供的服務,如事務、對象池、排列組件、事件等。

 

    那麼“什麼是.NET?”

    微軟董事長兼首席軟體設計師比爾蓋茨的回答:“.NET是指連接信息、人群、系統和設備的軟體。”

    微軟原總裁兼首席執行官鮑爾默說:“.NET代表了一個集合、一個環境、一個可以作為平臺支持下一代Internet的可編程結構。”

 

現在再看這兩個解釋,確實是這麼回事,好像沒有那麼抽象了。。。

推薦:http://www.cnblogs.com/roucheng/p/3521864.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 性能測試排查定位問題,分析調優過程中,會遇到要分析gc日誌,人肉分析gc日誌有時比較困難,相關圖形化或命令行工具可以有效地幫助輔助分析。 Gc日誌參數 通過在tomcat啟動腳本中添加相關參數生成gc日誌 -verbose.gc開關可顯示GC的操作內容。打開它,可以顯示最忙和最空閑收集行為發生的時間 ...
  • 一、簡單裝飾器: 執行步驟: 1、@W1 執行W1,把自己裝飾的函數的函數名當做參數,即@W1 等價於W1(show)。 show()函數重新定義,即重新定義的show()函數等價於W1(show)返回值。 在重新定義的show()函數中去執行之前定義的函數。 二、帶參數裝飾器: 執行步驟: 1、執 ...
  • 採用gradle構建和發佈bboss版本及從maven中央庫下載bboss方法介紹 1.概述 bboss是國內最早採用gradle來構建和發佈版本的開源框架之一,那麼gradle是個什麼東東?以下公式可以大概表述一下意思: gradle=ant+maven 尤其是通過gretty插件直接可以在ecl ...
  • A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ num[i+1], find a peak element and return its inde ...
  • 如果有介面,寫在介面方法上即可。滑鼠滑過方法名時時會顯示 如果沒有介面,寫在每個方法上方。 eclipse 分三步 ① 找到方法,並將游標移動至方法名的上方 ②/** ③回車 那,效果是醬紫 ...
  • 本來用之前也過的堆直接實現比較好,這裡我直接重新寫一了函數融入進去了 註釋部分的代碼,是用來進行哈夫曼編碼的,這種編碼方式就不需要使用三叉鏈的樹了(帶有parent指針的三叉樹) ...
  • 05年第一次接觸要做彩票項目的客戶,見面談了下,客戶給了一些各彩種各玩法的獎金文檔,並給了一個正在運營的彩票網站,客戶要求我們對照功能上評估工作量然後報價。 半個月後再次見面,通過評估後報價7W(當時客戶只要求做,重慶、天津、江西以及廣東、江西、山東11選、福彩3D、上海時時樂、北京快樂8)。敲定價 ...
  • 好書不能只讀一遍,這兩天又翻看了一遍《你必須知道的.NET》,重溫了下基礎,重溫了下經典,簡單記錄了下來。 記憶體分配:CLR 管理記憶體的區域,主要有三塊,分別為: 線程的堆棧,用於分配值類型實例。堆棧主要由操作系統管理,而不受垃圾收集器的控制,當值類型實例所在方法結束時,其存儲單位自動釋放。棧的執行 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...