微軟一站式開發(fā)技術(shù)框架解決方案 2009年7月8號(hào)更新:
http://cfx.codeplex.com/Wiki/View.aspx?title=All-In-One%20Code%20Framework%20Examples
下載地址:
http://cfx.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29921
如果您是第一次聽說All-In-One Code Framework這個(gè)項(xiàng)目,請(qǐng)參閱主頁(yè)上的相關(guān)介紹http://cfx.codeplex.com/,以及這兩篇blog
CodeFx:一站式微軟開發(fā)技術(shù)框架解決方案
微軟一站式開發(fā)技術(shù)框架解決方案 中文說明
讓我們一起來看看這次更新中新增了哪些sample code。
CppSparseFile, CSSparseFile, VBSparseFile
這三個(gè)example演示了如何使用不同編程語(yǔ)言(C++, C#, VB.NET)操作NTFS 稀疏文件(sparse file)。所謂稀疏文件指的是文件中出現(xiàn)大量的0數(shù)據(jù)。這些數(shù)據(jù)對(duì)我們用處不大,但卻占用了我們好幾GB甚至TB的空間。NTFS文件系統(tǒng)對(duì)此進(jìn)行了優(yōu)化,那些無用的0字節(jié)可以被標(biāo)志為稀疏區(qū)域,使得這些0字節(jié)幾乎不占用任何空間。所以你會(huì)發(fā)現(xiàn),一個(gè)稀疏文件可能表面上有100GB,實(shí)際占用的磁盤空間卻只有幾KB。CppSparseFile, CSSparseFile, VBSparseFile 包含了稀疏文件的所有常見操作,如創(chuàng)建,查詢稀疏區(qū)域,獲得稀疏文件實(shí)際大小,檢查一個(gè)文件是否是稀疏文件等等。
CppFileHandle
這是一個(gè)和文件句柄相關(guān)的例子。我們?cè)贛SDN論壇作技術(shù)支持過程中,經(jīng)常遇到客戶詢問如何用編程方法枚舉某一個(gè)進(jìn)程打開的所有文件,或者給定一個(gè)文件,如何知道哪些進(jìn)程正打開著它。雖然Process Explorer可以很輕松地回答上述兩個(gè)問題,仍有不少客戶追問如何自行編程實(shí)現(xiàn)這樣的功能。這就需要用到WMI class Win23_Process,或者用到undocumented API,NtQuerySystemInformation。CppFileHandle演示的就是后者。WMI的解決方案我們會(huì)在近期加入到CppFileHandle中。
CSListFilesInDirectory
這個(gè)sample code同樣源于一個(gè)在論壇里經(jīng)常被問到的問題:.NET BCL中的Directory.GetFiles 方法可以枚舉某個(gè)文件夾下的文件,但它有個(gè)很致命的缺點(diǎn)。Directory.GetFiles是等枚舉到所有文件以后才會(huì)返回。如果該文件夾下的文件很多,或者這是一個(gè)網(wǎng)絡(luò)文件夾,即訪問速度比較慢,Directory.GetFiles就會(huì)hang在那里。你可能就需要同步地等待它的返回。一個(gè)理想的解決方案是,每枚舉到一個(gè)文件,就立刻返回這個(gè)文件,而不是等待枚舉到所有文件。CSListFilesInDirectory就演示了如何做到這一點(diǎn)。
CSImpersonateUser, VBImpersonateUser
這兩個(gè)是在.NET中做impersonation的例子。其中封裝了一個(gè)簡(jiǎn)單安全的impersonation的類,讓你輕松模擬某個(gè)用戶帳號(hào)進(jìn)行操作。
VBUac
這是Vista UAC相關(guān)的一個(gè)VB.NET的例子。和CSUac、CppUac例子對(duì)應(yīng),演示了如何判斷當(dāng)前進(jìn)程的Integrity level,以及如何通過ShellExecute(Ex)或者manifest文件來elevate一個(gè)進(jìn)程。
CSSMTPSendEmail, VBSMTPSendEmail
顧名思義,CSSMTPSendEmail 和 VBSMTPSendEmail 演示了如何使用SMTP發(fā)送電子郵件。示例中還演示了兩個(gè)經(jīng)常問到的場(chǎng)景:添加附件和在郵件中嵌入圖片。
ATLCOMClient
這是一個(gè)ATL編寫的COM客戶端。其中重點(diǎn)演示了如何在ATL中處理COM的event。
最后,如果您對(duì)新版的CodeFx有任何建議和反饋,請(qǐng)?jiān)诖颂岢觥Vx謝!