2016年11月24日 星期四

[Microsoft] [NET]managed, unmanaged, CLR, CLS,CTS, Framework

l   Windows:dynamic link libraryDLL

l   UNIXLinux: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#的整數型態為 intVisual Basic 的整數資料型態為 integer,將來只要經過

符合 CLS 的編譯器編譯後,其整數資料型態將會是 int32,因為 int32 CTS 標準的資料型態

 

 

 

Managed Code

代表受到 CLR (Common Languages Runtime) 的管理,泛指基於 .net framework 平台所開發的程式。

 

UnManaged  Code / Native Code

相對於Managed Code, 表示未受到 CLR 的管理,例如:Win32 APIC++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:WindowsWindows 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

**********************Confidentiality Notice************************
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.

沒有留言:

張貼留言