l Windows上:dynamic link library(DLL)
l UNIX或Linux上:Shared Library
managed code vs unmanaged code | |
1. .NET
2. .NET Core
3. Standard Library
.NET Framework
² C#, VB.net, other .net Language and the .NET Framework
² C# Language and the .NET Framework
l .NET 架構標準:CLS(Common Language Specification)通用語言架構
l CLR (Common Language Runtime)特點:(類似java的虛擬機器,jvm)
² 在記憶體回收堆積上具現化
² 基礎類別庫支援 Base Class Library Support
² 記憶體管理 Memory Management
² 執行緒管理 Thread Management
² 記憶體自動回收 Garbage Collection
² 安全性 Security
² 型別檢查 Type Checker
² 異常管理 Exception Manager
² 除錯管理 Debug Engine
² 中間碼(MSIL)到機器碼(Native)編譯
² 類別裝載 Class Loader
MSIL:中繼語言(Microsoft InterMediate Language)
Native code:原生碼(機器碼)
² CTS(Common Type System)
CTS,共通型態系統,主要是所有.NET 語言所共通使用的資料型態,這也是跨語言的重要關鍵。
不管是哪一種語言,原本資料型態的定義可能不盡相同,但是經過符合 CLS 的編譯器編譯後,
所產生的結果,包括 MSIL 和 Metadata(詳見後述),都要符合 CTS 的型態
例如,C#的整數型態為 int,Visual Basic 的整數資料型態為 integer,將來只要經過
符合 CLS 的編譯器編譯後,其整數資料型態將會是 int32,因為 int32 是 CTS 標準的資料型態
【Managed Code】
代表受到 CLR (Common Languages Runtime) 的管理,泛指基於 .net framework 平台所開發的程式。
【UnManaged Code / Native Code】
相對於Managed Code, 表示未受到 CLR 的管理,例如:Win32 API、C++、VB 6...。
【COM Interop】
可以將.net所寫的組件(Assembly)「偽裝」成一般的COM元件,提供Unmanaged Code使用,或者反回來在Managed Code裡引用非.net開發的COM元件。在 Managed Code 與 Unmanaged Code之間,比較簡單的互動即是透過COM元件處理,大多數的windows程式平台幾乎都支援。
【Registration Free(Reg-Free) COM】
免註冊型的COM元件;通常會需要產生 mainifest 檔案,裡面存放組件相關的metadata。
l .NET Framework:Windows與Windows Server的.NET Framework版要
l .NET Core:使用於Windows Store App開發的.NET Framework版本。
l NET參照類型使用一個「控制代碼」來取得南
l 使用新的語法「類名^」代替了MC++的「類名*」
ref:
/MD、/MT、/LD (使用執行階段程式庫)
https://msdn.microsoft.com/zh-tw/library/2kzt1wy3.aspx
十分鐘了解.NET
http://www.mpinfo.com.tw/TechnologyColumnFiles/PB_T_201006.pdf
通用語言運行庫
https://zh.wikipedia.org/wiki/%E9%80%9A%E7%94%A8%E8%AA%9E%E8%A8%80%E9%81%8B%E8%A1%8C%E5%BA%AB
C# Language and the .NET Framework
https://msdn.microsoft.com/zh-tw/library/z1zx9t92.aspx
The opinions and views expressed in this e-mail are solely those of the author and do not necessarily represent our company and its affiliates. If this e-mail is not originally intended for you, or received by you in error, do not disclose its content to anyone and delete it immediately. This e-mail may contain information that is legally privileged, confidential or exempt from disclosure.
沒有留言:
張貼留言