Silverlight 的 I/O 系統

*** Silverlight 技術養成顧問系列- I/O 篇 ***
I/O 是所有程式語言最重要且最基礎的功能,在程式開發技術的發展史中, Java 結合物件導向設計與串流觀念,更是將 I/O 功能的設計推展至近乎完美的境界,後起之秀 .NET 亦不遑多讓(有興趣者請參考 「.NET 網路與 I/O 技術手冊」一書)。

Silverlight 承襲了.NET 平台,它的 I/O 功能均由.NET Framework 的 IO 命名空間裏面的類別所提供,如果你已經是一個有經驗的 .NET 開發人員,對於這一部份應該相當熟悉, Silverlight 的 System.IO 命名空間內容與 .NET 平台幾乎是相同的,只是它比較陽春,同時有一些安全上的限制。

Silverlight本身是一種Client端應用程式的發展平台,它透過網路下載至客戶端的電腦端的瀏覽器上面執行,這導致了非常嚴重的安全性問題,例如:開發人員可以藉由I/O系統的功能,撰寫惡意程式,於使用者操作Silverlight應用程式的過程中,破壞使用者電腦的檔案系統。

為了兼顧安全上的問題,當我們討論 Silverlight 的 I/O 系統時,讀者會發現它有諸多的限制,例如無法直接執行讀取、異動或是刪除檔案目錄架構等相關動作,無論如何,這是與 .NET Framework 的 I/O 系統最大的差異,除此之外,它的類別內容、提供的功能以及運作原理,甚至類別名稱均是相同的,因此有經驗的開發人員對於這一部份應該很容易進入狀況。

基本的 I/O 作業主要包含兩種類型:分別是「檔案目錄架構的存取操作」以及「資料來源的讀寫作業」。前者針對檔案總管的組成項目(包含檔案與目錄),進行操作,例如新增、刪除、修改以及複製、移動等等。另外,資料來源的讀寫則是將資料寫入檔案、或是從檔案讀取資料內容。

不同於傳統的 .NET 平台,在 Silverlight ,目錄檔案作業的相關功能由另外一個稱為隔離儲存的機制所提供,相關的類別位於System.IO.IsolatedStorage 命名空間,針對一些檔案的存取功能,同時搭配 System.IO 命空間才能提供完整的存取效果,後續的文章,我們將陸續討論相關的細節。

沒有留言: