#
微軟一站式開發技術框架解決方案 (CodeFx) 自成立至今已有半年。在這半年里,我們完成了130個代碼示例,主要覆蓋了COM、數據訪問、庫加載、進程間通信、Office開發、WinForms等技術。在接下去一年里,CodeFx 部門定下了如下目標:
1. CodePlex上排名前20
2. 新加200個代碼示例
3. 18個Release (平均2.5到3周一個release)
4. 示例覆蓋熱門技術如Windows 7, Visual Studio, WPF, WCF, ASP.NET, Silverlight 3, Azure.
5. 100篇MSDN blog介紹示例代碼
6. 嘗試將CodeFx本地化至中文
7. 明年Visual Studio 2010發布后,將已有的示例移植到Visual Studio 2010上
8. CodeFx 客戶端界面程序,方便用戶管理sample和更新CodeFx
另外,我們還會推出一系列有獎活動以鼓勵大家使用和學習CodeFx。謝謝支持!
微軟一站式開發技術框架解決方案 2009年7月8號更新:
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這個項目,請參閱主頁上的相關介紹http://cfx.codeplex.com/,以及這兩篇blog
CodeFx:一站式微軟開發技術框架解決方案
微軟一站式開發技術框架解決方案 中文說明
讓我們一起來看看這次更新中新增了哪些sample code。
CppSparseFile, CSSparseFile, VBSparseFile
這三個example演示了如何使用不同編程語言(C++, C#, VB.NET)操作NTFS 稀疏文件(sparse file)。所謂稀疏文件指的是文件中出現大量的0數據。這些數據對我們用處不大,但卻占用了我們好幾GB甚至TB的空間。NTFS文件系統對此進行了優化,那些無用的0字節可以被標志為稀疏區域,使得這些0字節幾乎不占用任何空間。所以你會發現,一個稀疏文件可能表面上有100GB,實際占用的磁盤空間卻只有幾KB。CppSparseFile, CSSparseFile, VBSparseFile 包含了稀疏文件的所有常見操作,如創建,查詢稀疏區域,獲得稀疏文件實際大小,檢查一個文件是否是稀疏文件等等。
CppFileHandle
這是一個和文件句柄相關的例子。我們在MSDN論壇作技術支持過程中,經常遇到客戶詢問如何用編程方法枚舉某一個進程打開的所有文件,或者給定一個文件,如何知道哪些進程正打開著它。雖然Process Explorer可以很輕松地回答上述兩個問題,仍有不少客戶追問如何自行編程實現這樣的功能。這就需要用到WMI class Win23_Process,或者用到undocumented API,NtQuerySystemInformation。CppFileHandle演示的就是后者。WMI的解決方案我們會在近期加入到CppFileHandle中。
CSListFilesInDirectory
這個sample code同樣源于一個在論壇里經常被問到的問題:.NET BCL中的Directory.GetFiles 方法可以枚舉某個文件夾下的文件,但它有個很致命的缺點。Directory.GetFiles是等枚舉到所有文件以后才會返回。如果該文件夾下的文件很多,或者這是一個網絡文件夾,即訪問速度比較慢,Directory.GetFiles就會hang在那里。你可能就需要同步地等待它的返回。一個理想的解決方案是,每枚舉到一個文件,就立刻返回這個文件,而不是等待枚舉到所有文件。CSListFilesInDirectory就演示了如何做到這一點。
CSImpersonateUser, VBImpersonateUser
這兩個是在.NET中做impersonation的例子。其中封裝了一個簡單安全的impersonation的類,讓你輕松模擬某個用戶帳號進行操作。
VBUac
這是Vista UAC相關的一個VB.NET的例子。和CSUac、CppUac例子對應,演示了如何判斷當前進程的Integrity level,以及如何通過ShellExecute(Ex)或者manifest文件來elevate一個進程。
CSSMTPSendEmail, VBSMTPSendEmail
顧名思義,CSSMTPSendEmail 和 VBSMTPSendEmail 演示了如何使用SMTP發送電子郵件。示例中還演示了兩個經常問到的場景:添加附件和在郵件中嵌入圖片。
ATLCOMClient
這是一個ATL編寫的COM客戶端。其中重點演示了如何在ATL中處理COM的event。
最后,如果您對新版的CodeFx有任何建議和反饋,請在此提出。謝謝!
微軟一站式開發技術框架 解決方案(代號 CodeFx)通過不同編程語言和典型示例勾畫出微軟幾乎所有開發技術的骨架。身處微軟MSDN技術支持團隊,我們有豐富的客服經驗。項目中每一個示例都經我們精心設計、篩選、編排和文檔化,從而演示那些經常被客戶問到、或被測試人員測試到的編程場景。如果您是一位軟件開發工程師,您可以向這個框架填充您的業務邏輯;如果您是測試人員,您可以對某個技術骨架稍作擴展以滿足您的實際測試需要;如果您和我們一樣,是技術支持工程師,您可以考慮將本項目中的示例代碼推薦給您的客戶。
項目范圍
本項目的目的是通過經常被問到、測試到和使用到的典型事例勾勒出微軟開發技術的骨架。您可以將開發技術想象成一棟建筑。技術的細節(即建筑的內部設施)不在CodeFx項目范圍內。CodeFx除了為初學者描述了技術的基礎(即建筑的地基)外,還繪制出技術的骨架(即建筑的整體結構和外觀)。
項目特點
- 一站式:微軟所有開發技術的最典型示例都可以在CodeFx中找到。所有代碼、文檔和參考資料可以在一個Visual Studio實例中測試和閱讀。
- 骨架:該項目勾勒的是技術骨架。其中的示例并不演示任何特定的業務邏輯,如使用Silverlight開發交通游戲或使用ATL設計炫目的煙火。這些特定的業務邏輯可能會分散讀者的注意力,令讀者沒有注意到該技術最核心的東西。
- 示例的來源:絕大多數示例都來源于我們在微軟新聞組和MSDN論壇中處理過的客戶提問。和FAQ(常見問題解答)相比,您可以把CodeFx想象成常見編碼場景。
- 風格統一:
- 所有示例遵循統一的命名規范。這不僅體現在變量和函數的命名上,還體現在示例名字上,如CSUseADONET, CppUseADONET。
- 所有示例遵循統一的編碼、注釋和文檔規范。比如,每一個示例都附帶一個ReadMe.txt文檔。其中包含梗概、示例關系(即當前示例和其他示例的依賴關系)、部署、創建步驟、代碼邏輯和經典的參考資料。
- 各個示例有統一的輸出。比如,ATLActiveXDll, ATLActiveXExe, CSDllCOMServer, VBDllCOMServer, MFCActiveX, MFCSafeActiveX, CSActiveX,和VBActiveX是不同語言編寫的COM組件骨架。它們輸出統一的界面和相同原型的方法、屬性以及事件。讀者可以比較它們的實現。
- 相互依賴:部分示例相互之間有依賴關系,共同演示一些特定的技術。比如,CppDllExport是一個C++動態鏈接庫的例子。CppImplicitlyLinkDll依賴于CppDllExport,演示了C++如何隱式鏈接DLL;CppDelayloadDll同樣依賴于CppDllExport,演示了如何延遲加載DLL。
以上五大特點是絕大多數示例庫(如codeproject和MSDN)所沒有的。除此之外,微軟一站式開發技術框架中的示例是典型的、可擴展的、結構化的、完整的、文檔齊全和易于理解的。
項目現狀
本項目自2009年三月一日啟動以來,已完成140余個代碼示例,涵蓋COM、數據訪問、庫加載、進程間通信、Office開發、Windows Forms、安全等數十項技術。同時,CodeFx正以每周六個示例的速度增長。
以下圖示為CodeFx在2009年6月15日時的縮影。要了解最新的示例列表,請點擊 微軟一站式開發技術框架示例.
獲獎情況
Brothersoft 

Download.hr
名列榜首
Jialiang Ge (
Jialiang)
Lingzhi Sun (
LingzhiSun)
ZhiXin Ye (
ZhiXin)
Riquel Dong (
Riquel)
Hongye Sun (
hongyes)
Ji Zhou (
Colbert)
Jie Wang (
midnightfrank)
Rongchun Zhang (
RongchunZhang)
Fisnik Hasani (
Fisnik)
特別感謝!
來自瑞典的Fisnik Hasani為我們設計了簡潔漂亮的 "CodeFx" 徽標。
反饋和建議
我們期望聽到您的反饋和建議。請將您對這個項目的看法發至討論區或直接聯系我們。
謝謝!
-MSDN 論壇支持團隊 2009年6月20日