程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .NET Compact Framework 概述

.NET Compact Framework 概述

編輯:關於.NET

 .NET Compact Framework 是 .NET Framework 全功能版的子集。它實現了約 30% 的 .Net Framework 全功能版類庫,還包含特定於移動開發和嵌入式開發的功能和類。

  本主題並沒有囊括兩個框架間的所有差異,而是列出開發應用程序所需的一些重要差異。

  應用程序域

  .NET Compact Framework 目前不支持將程序集加載到非特定於域的代碼區域中供多個 .Net Compact Framework 中的應用程序域 使用。

  數組

  盡管某些語言支持不為零的數組下界,但是公共語言運行庫不提供這樣支持,當第一個元素不是 0 時,它將引發 MissingMethodException。

  ASP.Net

  .NET Compact Framework 主要是胖客戶端平台,不提供 ASP.NET 支持。要開發用於移動設備的網頁,可以使用 ASP.NET 移動 Web 控件。要開發用於個人計算機或 Web 服務提供程序的網頁,請參見 ASP.Net 文檔。

  程序集和文件格式

  這兩個 Framework 的應用程序都使用程序集。這兩個 Framework 都訪問可移植可執行 (PE) 文件,這類文件包含 Microsoft 中間語言 (MSIL) 和定義 .Net Framework 應用程序的元數據。PE 文件可以引用由其他程序集文件定義和共享的編程命名空間。

  有關更多信息,請參見與 .Net Framework 全功能版的二進制兼容性。

  程序集和全局程序集緩存

  .Net Compact Framework 目前不支持多模塊程序集,但確實支持附屬程序集。

  類和類型

  .NET Compact Framework 支持 .NET Framework 類庫的一個子集。此子集適合於旨在資源受限制的設備上運行的應用程序,並且在語義上與 .Net Framework 中的同名類兼容。

  有關確定 .NET Compact Framework 支持內容的信息,請參見如何:使用 .Net Compact Framework 的類庫。

  COM Interop

  .NET Compact Framework 2.0 版支持 COM interop。該版本還具有增強的封送功能。有關更多信息,請參見 .Net Compact Framework 中的互操作性。

  公共語言運行庫

  這兩個 Framework 中的公共語言運行庫都具有托管代碼執行、實時 (JIT) 代碼編譯和垃圾回收的優點。它們支持公共語言規范 (CLS)。

  這兩個 Framework 都有內置的基元類型,以及其他在生成應用程序時可以使用和派生新類型的類型。

  .NET Compact Framework 的公共語言運行庫的大小大約是 .Net Framework 全功能版公共語言運行庫的 12%。

  控件

  .NET Compact Framework 支持 .NET Framework 全功能版中的大部分 Windows 窗體控件,並且包含特定於 .Net Compact Framework 的控件。

  Windows 窗體控是專門為 .NET Compact Framework 生成的。有關更多信息,請參見.Net Compact Framework 中的控件。

  當前目錄

  Windows CE 操作系統中不存在當前目錄的功能,因此 .Net Compact Framework 不支持 GetCurrentDirectory 和 SetCurrentDirectory 方法。

  .Net Compact Framework 支持 ProcessStartInfo 的 WorkingDirectory 屬性。但是,後續啟動和文件加載時運行的可執行文件不保留該屬性的上下文。

  數據

  .NET Compact Framework 提供 ADO.Net 的子集實現並且包含 SQL Server Mobile 數據提供程序。System.Data.OleDb 命名空間不受支持。

  有關數據支持的更多信息,請參見數據訪問和 XML 支持

  數據類型和浮點精度

  .Net Compact Framework 不支持 MidpointRounding 枚舉。

  在除法運算中,如果除數非常大或是最大浮點值,或者除數非常小或是最小浮點值,則運算返回零而不是正確的計算結果。

  MIPS 平台不支持二進制浮點算術標准規范指定的完全精度,可能會導致不可預知的結果。出於性能考慮,.Net Compact Framework 不為此平台提供浮點模擬功能。

  在命令提示符處進行調試

  .NET Compact Framework 不支持 .NET Framework 2.0 版提供的新的 .Net Framework 命令行調試器 (MDbg.exe)。兩個 Framework 的 2.0 版都否決了舊的 CLR 調試器 (DbgCLR.exe)。

  部署應用程序

  部署非常容易,只需通過以下幾種方式之一將程序集復制到目標設備即可:使用桌面計算機的電纜連接或紅外端口連接;使用無線 Internet 或 Intranet 連接。在 Microsoft Visual Studio 2005 中,可在調試時直接部署到設備。

  診斷跟蹤

  .Net Compact Framework 不支持用於跟蹤的配置文件,但您可以使用性能計數器。有關更多信息,請參見性能和診斷。

  已釋放對象

  .NET Framework 全功能版不保證對已釋放對象的屬性或方法的訪問總能成功。但是,在 .NET Framework 中訪問 Text 之類的某些屬性通常確實能夠成功。由於 .NET Framework 與 .NET Compact Framework 之間的實現差異,在 .Net Compact Framework 中訪問已釋放對象的方法或屬性差不多總是失敗。

  編碼和本地化

  本地化或全球化支持(如適合於區域設置的日期格式和排序表)盡可能服從基礎操作系統以實現兼容性和精簡高效。

  .Net Compact Framework 依賴於操作系統進行數據排序,因此對於某些區域性,有可能出現意外的排序結果。

  .Net Compact Framework 不支持每個線程一個 CurrentUICulture 設置。

  有關全球化支持的更多信息,請參見 .Net Compact Framework 中的編碼和本地化。

  事件

  .Net Compact Framework 支持 GotFocus 和 LostFocus 事件,但不支持 Activated 和 Deactivated 事件。

  異常說明字符串

  .Net Compact Framework 在一個單獨的 DLL (System.SR.DLL) 中提供異常錯誤消息字符串,從而可以節省內存。

  也可以提供適合其他區域性的異常字符串,使應用程序得以本地化。

文件名和路徑

  Windows CE 將未指定路徑信息的文件名解析為位於設備的根目錄下,而不是在應用程序目錄下。

  為了確保操作成功,請指定絕對路徑信息。

  .NET Compact Framework 處理以 file:// 方案為前綴的 URI 字符串的方式與 .Net Framework 全功能版不同。相對的 file://myfile 解析為 \\myfile。使用 file:///myfile(三個斜槓)將解析為根目錄中的 \myfile。

  可通過 Version 獲取程序集的版本,但其支持依賴於設備制造商,並且無法保證。

  若要獲取包含應用程序的目錄的名稱,請參見如何:獲取應用程序目錄。

  高分辨率

  在 .Net Compact Framework 2.0 版中,將在 Visual Studio 2005 項目中自動處理 DPI 分辨率。有關高分辨率的更多信息,請參見如何:處理方向和分辨率更改。

  輸入/輸出 (I/O)

  由於設備操作系統的差異,I/O 模型存在約束和限制。.Net Compact Framework 不提供文件更改通知。

  由於設備 I/O 在 RAM 中發生,因此無法設置或訪問文件和目錄屬性。

  安裝和 CAB 文件

  可以使用 CAB 文件並創建 MSI 應用程序來分發應用程序。

  語言

  .Net Compact Framework 支持使用 Visual Basic 和 Visual C# 進行開發,但是目前不支持 C++。

  Math

  並不是所有的 Math 方法在所有的設備平台上都可以得到支持,但為了兼容起見,將這些方法包括在 API 中。

  內存

  .Net Compact Framework 經過了優化,特別適合於用電池供電的系統,並且避免了高強度地使用 RAM 和 CPU 周期。有關節省內存的更多信息,請參見設備內存管理和如何:提高性能。

  網絡

  .NET Compact Framework 提供了用於建立紅外連接的“紅外數據協會”(IrDA) 類,以及用於為設備的 HTTP 請求提供服務的 Web 偵聽類。這些類僅在 .Net Compact Framework 中可用。有關更多信息,請參見網絡和連接。

  性能測試

  .Net Compact Framework 不支持代碼分析或系統監視器中的 Perfmon.exe 文件。但是,您可以使用性能計數器。請參見

  性能和診斷了解更多信息。

  代理代碼

  .Net Compact Framework 不支持所有由 Web 服務描述語言工具 (Wsdl.exe) 生成的代碼。若要確定不支持哪些代碼,請參見如何:使用 Wsdl.exe 生成的代理。

  反射

  .Net Compact Framework 不支持 System.Reflection.Emit 命名空間。

  在比較 MethodInfo、FIEldInfo、PropertyInfo、EventInfo、MemberInfo、MethoDBase、ConstructorInfo 和 ParameterInfo 等反射對象時,.Net Compact Framework 目前不支持相等運算符 (==)。作為替代方法,請參見實現 Equals 方法。

  遠程處理

  .NET Compact Framework 不支持遠程處理。可以為其他解決方案使用 .Net Compact Framework 中的消息隊列。

  安全消息傳遞

  .Net Compact Framework 不支持使用 HTTPS 的客戶端證書和身份驗證。使用基本身份驗證。

  安全性

  .Net Compact Framework 中的安全中介紹了一些重要的安全性差異和注意事項。

  序列化

  出於大小和性能方面的考慮,.Net Compact Framework 不支持使用 BinaryFormatter 的二進制序列化和使用 SoapFormatter 的 SOAP 序列化。

  但是,對於在 XML Web services 中使用 SOAP 傳輸對象數據提供序列化支持,並且支持將數據集序列化為 XML。

  大小

  .NET Compact Framework 的大小是 .Net Framework 全功能版可再發行包的 8%。由於 Windows CE 文件系統壓縮,因此,在磁盤上的大小要小 50%。

  套接字

  不是所有的套接字選項都受支持。有關更多信息,請參見套接字編程。

  字符串處理,正則表達式

  使用 .NET Compact Framework 的正則表達式的應用程序與使用 .Net Framework 全功能版的正則表達式的應用程序的二進制代碼不兼容,但它們的源代碼兼容。

  線程

  一個 .Net Compact Framework 應用程序最多可以創建四個線程:

  主應用程序線程。

  用來控制可由系統或應用程序安排的各種時間段計時器和超時的線程。

  用來跟蹤活動 TCP/IP 接口更改的線程(模擬 Windows XP 中提供而 Windows CE 中未提供的介質檢測行為)。

  用來運行對象終結器的線程。在對第一個可終結對象進行垃圾回收時創建該線程。

  有關線程處理支持的更多信息,請參見 .Net Compact Framework 中的線程處理。

  時間間隔

  Now 返回的值只精確到秒而不是毫秒。可以使用 TickCount 屬性獲得更精確的度量值。

  計時器

  不支持 System.Timers.Timer 的 Start 和 Stop 方法,但是,將 System.Windows.Forms.Timer 的 Enabled 屬性設置為 true 或 false,可以啟動和停止計時。

  Visual Basic My

  .Net Compact Framework 支持 Visual Basic 的 My 功能(請參見使用 My 開發),但下列 My 對象除外:

  1.   My.Application
  2.   My.Computer
  3.   My.User
  4.   My.Settings

  Web 服務

  Web 服務客戶端直接運行 wsdl.exe 生成的程序集。

  請不要使用 localhost 在設備上創建 Web 服務,因為 localhost 是指運行應用程序的設備,即該設備本身。應使用計算機名稱或其 IP 地址。

  XML

  出於大小方面的考慮,.Net Compact Framework 不支持 XML 架構驗證。它確實支持 XML 文檔對象模型 (DOM)。有關更多信息,請參見數據訪問和 XML 支持。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved