置頂隨筆
#

您還在為找不到所需的示例代碼而苦惱嗎?
當(dāng)您遇到困難的時(shí)候,您是否曾希望有人免費(fèi)地為您量身提供示例代碼?
今天,微軟一站式示例代碼庫項(xiàng)目組宣布了一個(gè)全新而且免費(fèi)的示例代碼請(qǐng)求服務(wù)。希望能通過這個(gè)服務(wù)為廣大的開發(fā)者分擔(dān)解憂。
您可以提交任何和微軟開發(fā)技術(shù)有關(guān)的示例代碼需求。需求的描述中英文皆可。同時(shí),您還可以對(duì)已提交的示例代碼需求進(jìn)行投票。微軟工程師會(huì)優(yōu)先考慮那些票數(shù)最高的需求,提供示例代碼。這一切都是免費(fèi)的!
反饋
您的反饋對(duì)微軟一站式示例代碼庫項(xiàng)目組非常重要。作為一個(gè)全新的服務(wù),項(xiàng)目組希望在大家的關(guān)注和建議下不斷改進(jìn),為廣大開發(fā)者更好地服務(wù)。反饋郵箱: onecode@microsoft.com
該服務(wù)更多的信息以及使用方法,請(qǐng)參見官方申明:
http://1code.codeplex.com/wikipage?title=Sample%20Request%20Service%20%28CHS%29
您還等什么?快來試試微軟全新免費(fèi)示例代碼索取服務(wù)吧!
微軟一站式示例代碼庫下載地址:http://1code.codeplex.com/releases
應(yīng)園友在這篇博文中的要求,我們項(xiàng)目組里的蔣里京同學(xué)已將VC++, VC#, VB.NET 編碼規(guī)范 (微軟一站式示例代碼庫) 翻譯成中文。你可以在以下鏈接下載到中文版的編碼規(guī)范:
下載
原版:http://1code.codeplex.com/releases/view/51868#DownloadId=148423
譯版:http://1codechs.codeplex.com/releases/view/51227#DownloadId=148734
注:在這篇博文的評(píng)論中,園友還給出了不少技術(shù)方面的建議。由于時(shí)間緊迫,此版本的編碼規(guī)范尚還沒有根據(jù)那些技術(shù)意見做出相應(yīng)調(diào)整。望您能諒解。
本文檔為一站式示例代碼庫項(xiàng)目組所使用的C++ 以及 .NET 編碼規(guī)范 。該規(guī)范源自于產(chǎn)品開發(fā)過程中的經(jīng)驗(yàn),并在不斷完善。如果您發(fā)現(xiàn)一些最佳實(shí)踐或者話題并沒有涵蓋在本文檔中,請(qǐng)聯(lián)系我們一站式示例代碼庫項(xiàng)目組 ,以不斷充實(shí)完善本文檔。
任何指導(dǎo)準(zhǔn)則都可能會(huì)眾口難調(diào)。本規(guī)范的目的在于幫助社區(qū)開發(fā)者提高開發(fā)效率,減少代碼中可能出現(xiàn)的bug,并增強(qiáng)代碼的可維護(hù)性。萬事開頭難,采納一個(gè)不熟悉的規(guī)范可能在初期會(huì)有一些棘手和困擾,但是這些不適應(yīng)很快便會(huì)消失,它所帶來的好處和優(yōu)勢很快便會(huì)顯現(xiàn),特別是在當(dāng)您接手他人代碼時(shí)。

微軟一站式開發(fā)技術(shù)框架 解決方案(代號(hào) CodeFx)通過不同編程語言和典型示例勾畫出微軟幾乎所有開發(fā)技術(shù)的骨架。身處微軟MSDN技術(shù)支持團(tuán)隊(duì),我們有豐富的客服經(jīng)驗(yàn)。項(xiàng)目中每一個(gè)示例都經(jīng)我們精心設(shè)計(jì)、篩選、編排和文檔化,從而演示那些經(jīng)常被客戶問到、或被測試人員測試到的編程場景。如果您是一位軟件開發(fā)工程師,您可以向這個(gè)框架填充您的業(yè)務(wù)邏輯;如果您是測試人員,您可以對(duì)某個(gè)技術(shù)骨架稍作擴(kuò)展以滿足您的實(shí)際測試需要;如果您和我們一樣,是技術(shù)支持工程師,您可以考慮將本項(xiàng)目中的示例代碼推薦給您的客戶。
項(xiàng)目范圍
本項(xiàng)目的目的是通過經(jīng)常被問到、測試到和使用到的典型事例勾勒出微軟開發(fā)技術(shù)的骨架。您可以將開發(fā)技術(shù)想象成一棟建筑。技術(shù)的細(xì)節(jié)(即建筑的內(nèi)部設(shè)施)不在CodeFx項(xiàng)目范圍內(nèi)。CodeFx除了為初學(xué)者描述了技術(shù)的基礎(chǔ)(即建筑的地基)外,還繪制出技術(shù)的骨架(即建筑的整體結(jié)構(gòu)和外觀)。
項(xiàng)目特點(diǎn)
- 一站式:微軟所有開發(fā)技術(shù)的最典型示例都可以在CodeFx中找到。所有代碼、文檔和參考資料可以在一個(gè)Visual Studio實(shí)例中測試和閱讀。
- 骨架:該項(xiàng)目勾勒的是技術(shù)骨架。其中的示例并不演示任何特定的業(yè)務(wù)邏輯,如使用Silverlight開發(fā)交通游戲或使用ATL設(shè)計(jì)炫目的煙火。這些特定的業(yè)務(wù)邏輯可能會(huì)分散讀者的注意力,令讀者沒有注意到該技術(shù)最核心的東西。
- 示例的來源:絕大多數(shù)示例都來源于我們?cè)?a >微軟新聞組和MSDN論壇中處理過的客戶提問。和FAQ(常見問題解答)相比,您可以把CodeFx想象成常見編碼場景。
- 風(fēng)格統(tǒng)一:
- 所有示例遵循統(tǒng)一的命名規(guī)范。這不僅體現(xiàn)在變量和函數(shù)的命名上,還體現(xiàn)在示例名字上,如CSUseADONET, CppUseADONET。
- 所有示例遵循統(tǒng)一的編碼、注釋和文檔規(guī)范。比如,每一個(gè)示例都附帶一個(gè)ReadMe.txt文檔。其中包含梗概、示例關(guān)系(即當(dāng)前示例和其他示例的依賴關(guān)系)、部署、創(chuàng)建步驟、代碼邏輯和經(jīng)典的參考資料。
- 各個(gè)示例有統(tǒng)一的輸出。比如,ATLActiveXDll, ATLActiveXExe, CSDllCOMServer, VBDllCOMServer, MFCActiveX, MFCSafeActiveX, CSActiveX,和VBActiveX是不同語言編寫的COM組件骨架。它們輸出統(tǒng)一的界面和相同原型的方法、屬性以及事件。讀者可以比較它們的實(shí)現(xiàn)。
- 相互依賴:部分示例相互之間有依賴關(guān)系,共同演示一些特定的技術(shù)。比如,CppDllExport是一個(gè)C++動(dòng)態(tài)鏈接庫的例子。CppImplicitlyLinkDll依賴于CppDllExport,演示了C++如何隱式鏈接DLL;CppDelayloadDll同樣依賴于CppDllExport,演示了如何延遲加載DLL。
以上五大特點(diǎn)是絕大多數(shù)示例庫(如codeproject和MSDN)所沒有的。除此之外,微軟一站式開發(fā)技術(shù)框架中的示例是典型的、可擴(kuò)展的、結(jié)構(gòu)化的、完整的、文檔齊全和易于理解的。
項(xiàng)目現(xiàn)狀
本項(xiàng)目自2009年三月一日啟動(dòng)以來,已完成140余個(gè)代碼示例,涵蓋COM、數(shù)據(jù)訪問、庫加載、進(jìn)程間通信、Office開發(fā)、Windows Forms、安全等數(shù)十項(xiàng)技術(shù)。同時(shí),CodeFx正以每周六個(gè)示例的速度增長。
以下圖示為CodeFx在2009年6月15日時(shí)的縮影。要了解最新的示例列表,請(qǐng)點(diǎn)擊 微軟一站式開發(fā)技術(shù)框架示例.
獲獎(jiǎng)情況
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為我們?cè)O(shè)計(jì)了簡潔漂亮的 "CodeFx" 徽標(biāo)。
反饋和建議
我們期望聽到您的反饋和建議。請(qǐng)將您對(duì)這個(gè)項(xiàng)目的看法發(fā)至討論區(qū)或直接聯(lián)系我們。
謝謝!
-MSDN 論壇支持團(tuán)隊(duì) 2009年6月20日
2010年10月28日
#

您還在為找不到所需的示例代碼而苦惱嗎?
當(dāng)您遇到困難的時(shí)候,您是否曾希望有人免費(fèi)地為您量身提供示例代碼?
今天,微軟一站式示例代碼庫項(xiàng)目組宣布了一個(gè)全新而且免費(fèi)的示例代碼請(qǐng)求服務(wù)。希望能通過這個(gè)服務(wù)為廣大的開發(fā)者分擔(dān)解憂。
您可以提交任何和微軟開發(fā)技術(shù)有關(guān)的示例代碼需求。需求的描述中英文皆可。同時(shí),您還可以對(duì)已提交的示例代碼需求進(jìn)行投票。微軟工程師會(huì)優(yōu)先考慮那些票數(shù)最高的需求,提供示例代碼。這一切都是免費(fèi)的!
反饋
您的反饋對(duì)微軟一站式示例代碼庫項(xiàng)目組非常重要。作為一個(gè)全新的服務(wù),項(xiàng)目組希望在大家的關(guān)注和建議下不斷改進(jìn),為廣大開發(fā)者更好地服務(wù)。反饋郵箱: onecode@microsoft.com
該服務(wù)更多的信息以及使用方法,請(qǐng)參見官方申明:
http://1code.codeplex.com/wikipage?title=Sample%20Request%20Service%20%28CHS%29
您還等什么?快來試試微軟全新免費(fèi)示例代碼索取服務(wù)吧!
微軟一站式示例代碼庫下載地址:http://1code.codeplex.com/releases
2010年10月14日
#
微軟一站式示例代碼庫2010年10月10日更新
下載地址: http://1code.codeplex.com/releases/view/53729
如果您是第一次聽說All-In-One Code Framework這個(gè)項(xiàng)目,請(qǐng)參閱主頁上的相關(guān)介紹http://1code.codeplex.com/, 以及這兩篇blog
All-In-One Code Framework:一站式微軟開發(fā)技術(shù)框架解決方案
微軟一站式開發(fā)技術(shù)框架解決方案 中文說明
Windows Shell 擴(kuò)展 新示例

(Shell Infotip 擴(kuò)展)

(Shell Drag-and-drop 擴(kuò)展)
這是 使用.NET 4編寫Windows Shell Extension 系列示例的第二部分。在.NET 4發(fā)布之前,因?yàn)橐粋€(gè)進(jìn)程最多只能host一個(gè)CLR runtime, 您是不可以使用.NET語言編寫shell extension的。.NET 4.0加入了CLR In-process Side-by-Side 特性。張羿寫過一篇相當(dāng)不錯(cuò)的介紹.NET 4 In Process Side By Side的文章:http://blogs.msdn.com/b/yizhang/archive/2009/08/25/net-4-0-in-process-side-by-side.aspx。>=4.0的CLR是可以多個(gè)并存的,也就是說V4.0,V5.0,v6.0,等等,都是可以和平共處在同一個(gè)進(jìn)程內(nèi)。這使得基于.NET Framework 4.0, 5.0, … 開發(fā)的managed Windows Shell 擴(kuò)展成為可能。在這次發(fā)布中,我們添加了使用.NET 4 C#, VB.NET 語言 和 native C++ 編寫Shell infotip 擴(kuò)展的例子。
CppShellExtInfotipHandler Shell Infotip handler (C++)
CSShellExtInfotipHandler Shell Infotip handler (C#)
VBShellExtInfotipHandler Shell Infotip handler (VB.NET)
CppShellExtDragDropHandler Shell drag-and-drop handler (C++)
ASP.NET 新示例
CSASPNETImagePreviewExtender, VBASPNETImagePreviewExtender
Microsoft Ajax 擴(kuò)展程序控件增強(qiáng)了標(biāo)準(zhǔn) ASP.NET Web 服務(wù)器控件的客戶端功能。通過使用一個(gè)或多個(gè)擴(kuò)展程序控件可以實(shí)現(xiàn)標(biāo)準(zhǔn)的 Web 服務(wù)器控件(如 TextBox 控件、Button 控件和 Panel 控件),從而在瀏覽器中提供更豐富的用戶體驗(yàn)。例如,若要使用戶在向服務(wù)器提交表單之前進(jìn)行確認(rèn),可以使用將客戶端功能添加到 Button 控件的擴(kuò)展程序控件。
一些ASP.NET社區(qū)中的程序員經(jīng)常會(huì)問如何寫一個(gè)自己的ASP.NET Ajax擴(kuò)展控件,就像AjaxControlToolkit里的空間一樣。在這個(gè)例子中,我就一步步地描述了如何創(chuàng)建這么一個(gè)控件。ASPNETImagePreviewExtender擴(kuò)展了標(biāo)準(zhǔn)的Image控件,它讓Image初始化為一個(gè)縮略圖,當(dāng)用戶點(diǎn)擊這個(gè)縮略圖時(shí),客戶端會(huì)自動(dòng)顯示完整的圖片而無需回傳獲取。
CSASPNETAJAXHTMLEditorExtender
HTML編輯器時(shí)AjaxControlToolkit中的一個(gè)AJAX控件。它讓我們可以輸入一些HTML格式的數(shù)據(jù)。由于這是個(gè)非常復(fù)雜的控件,經(jīng)常有人問如何添加一個(gè)自定義的工具欄控件來使HTML編輯器實(shí)現(xiàn)一些自定義的功能。在這個(gè)例子中,我一步步地添加了一個(gè)自定義的工具欄按鈕,并且點(diǎn)擊這個(gè)按鈕,可以讓一個(gè)<H1>標(biāo)記環(huán)繞 所選取的字符串。
CSASPNETAddControlDynamically, VBASPNETAddControlDynamically
此示例演示了如何在ASP.NET頁面中動(dòng)態(tài)地添加各種控件.由于HTTP是無狀態(tài)網(wǎng)絡(luò)傳輸協(xié)議,我們無法知道控件何時(shí)被創(chuàng)建,已經(jīng)控件的狀態(tài)何時(shí)被改變.但所有的這些屬性都可以通過ViewState保存在頁面中.在頁面下一次回調(diào)的時(shí)候,通過讀取ViewState中的信息,我們可以重建這些控件以使得用戶們能夠使用它們。
CSASPNETBingMaps
在某些時(shí)候我們需要在頁面中使用地圖來表示位置以及周圍的信息.而Bing Maps地圖API提供了毫不遜色于Google Map 的地圖控件,并能夠通過編程輕松的控制地圖的地點(diǎn)位置,縮放尺度,顯示模式等屬性.此示例便演示了如何通過簡單的AJAX在ASP.NET頁面中嵌入Bing Maps地圖。
CSASPNETAutoComplete
此事例演示如何使用Ajax Control Toolkit里面的AutoComplete Control,AutoComplete可以和一個(gè)TextBox控件相結(jié)合實(shí)現(xiàn)類似google suggest的功能;當(dāng)你在TextBox中輸入若干個(gè)字時(shí)在其下面會(huì)彈出一個(gè)panle,里面包含以文本框中文字開頭的關(guān)鍵字列表。
CSASPNETTheme
CSASPNETTheme 示例展示了如何在同一頁面上套用主題布局, 這樣就可以給用戶不同風(fēng)格的頁面而不用重寫頁面代碼。
Office 新示例
CSOfficeRibbonAccessibility, VBOfficeRibbonAccessibility
此示例演示了如何通過Microsoft Active Accessibility API 來做Office 2010的Ribbon用戶界面自動(dòng)化。程序顯示一個(gè)自定義的主窗體,以層次結(jié)構(gòu)來顯示整個(gè)Ribbon界面的架構(gòu)。每頁包含若干組, 每組包含若干控件, 以及如何調(diào)用這些控件的功能。

Windows Base 新示例
CSProcessWatcher,VBProcessWatcher
有時(shí)候我們需要在.Net應(yīng)用程序中監(jiān)控某個(gè)進(jìn)程的創(chuàng)建,修改或者刪除事件。除了使用復(fù)雜的P/Invoke 調(diào)用Native API 之外,有沒有更容易的方式呢?該示例給出了一個(gè)非常簡便的方式達(dá)到該目的 -- 使用WMI輕松的實(shí)現(xiàn)對(duì)某個(gè)進(jìn)程的創(chuàng)建,修改,刪除事件的監(jiān)控。
CppPlatformDetector, CSPlatformDetector, VBPlatformDetector
這些示例演示了
1。 如何獲取當(dāng)前操作系統(tǒng)的名字,如"Microsoft Windows 7 Enterprise"
2。 如何獲取當(dāng)前操作系統(tǒng)的版本號(hào),如"Microsoft Windows NT 6.1.7600.0”
3。 如何判斷當(dāng)前操作系統(tǒng)是32位的還是64位的。
4。 如何判斷當(dāng)前進(jìn)程或者是當(dāng)前系統(tǒng)上運(yùn)行著的任何一個(gè)進(jìn)程是運(yùn)行在32位模式上,還是64位模式。
WPF 新示例
VBWPFMVVMPractice
這個(gè)示例通過一個(gè)小游戲, 演示了如何在WPF程序中使用MVVM模式.
Windows Forms 新示例
CSWinFormGroupRadioButtons and VBWinFormGroupRadioButtons
我們?yōu)榱藢?shí)現(xiàn)某些功能而在我們的WinForm項(xiàng)目中使用RadioButton,但是我們只能將一組RadioButton放在同一個(gè)容器內(nèi),否則對(duì)于這些RadioButton單選功能將失效。這個(gè)限制使得板面設(shè)計(jì)有些不便。此例子演示了怎樣將不同容器內(nèi)的RadioButton組成一個(gè)組而實(shí)現(xiàn)單選功能。
下載
http://1code.codeplex.com/releases/view/53729
最后,感謝園子里的朋友的一貫支持。如您對(duì)這些示例有任何建議,請(qǐng)聯(lián)系我們: onecode@microsoft.com
2010年10月10日
#
在這個(gè)release中我們的團(tuán)隊(duì)完成了15篇示例的翻譯工作。在接下來的日子里,我們會(huì)陸續(xù)翻譯完成更多的例子。我們計(jì)劃在2011年7月前總共翻譯完成200篇示例。
下載: http://1codechs.codeplex.com/releases/
如果您對(duì)翻譯內(nèi)容有任何的意見或建議,歡迎Email 聯(lián)系我們。
九月新增中文版示例:
CppUACSelfElevation\CSUACSelfElevation\VBUACSelfElevation
用戶賬戶控制 (UAC)是Windows Vista及后續(xù)操作系統(tǒng)中的一個(gè)新安全組件。當(dāng)UAC被完全開啟時(shí),管理員的交互操作通常運(yùn)行在普通用戶權(quán)限下。這個(gè)示例演示了如何去檢測當(dāng)前進(jìn)程的權(quán)限等級(jí),和如何通過許可驗(yàn)證對(duì)話框來確認(rèn)并自我提升此線程的權(quán)限等級(jí)。
CSLinqToXml\VBLinqToXml
本例闡述了如何在C#中使用Linq to XML從內(nèi)存對(duì)象和SQL Server數(shù)據(jù)庫來創(chuàng)建XML文檔。它還同時(shí)闡明了在C#中如何寫Linq to XML查詢語句。當(dāng)從SQL Server數(shù)據(jù)庫查詢數(shù)據(jù)時(shí)它使用了Linq to SQL。 在本例中,您將看到創(chuàng)建XML文檔的基本的Linq to XML方法,核心的查詢方法以及如何編輯XML文檔。
CSSL3SocketClient\VBSL3SocketClient
本項(xiàng)目創(chuàng)建一個(gè)套接字客戶端示例,它能異步發(fā)送字符串消息到服務(wù)器和從服務(wù)器接收字符串消息 CSSL3SocketServer\VBSL3SocketServer
本項(xiàng)目創(chuàng)建一個(gè)套接字socket服務(wù)器的示例,它能服務(wù)于silverlight和標(biāo)準(zhǔn)的套接字socket客戶端。這個(gè)套接字socket服務(wù)器接受客戶端的連接,接收字符串消息和回發(fā)響應(yīng)消息。
CSSL3IsolatedStorage\VBSL3IsolatedStorage
本項(xiàng)目創(chuàng)建一個(gè)獨(dú)立存儲(chǔ)器瀏覽器。使用這個(gè)瀏覽器,用戶能查看應(yīng)用程序獨(dú)立存儲(chǔ)器的虛擬文件結(jié)構(gòu),也提供如下的文件管理功能:
創(chuàng)建目錄
上傳本地文件到獨(dú)立存儲(chǔ)器
打開和播放儲(chǔ)存在獨(dú)立存儲(chǔ)器中的媒體流
刪除目錄/文件
增加獨(dú)立存儲(chǔ)器的磁盤配額
從獨(dú)立存儲(chǔ)器保存文件到本地
使用獨(dú)立存儲(chǔ)器設(shè)置IsolatedStorageSettings存儲(chǔ)/加載配置
CSASPNETAjaxExtender\VBASPNETAjaxExtender
這個(gè)CSASPNETAjaxExtender示例演示了如何創(chuàng)建一個(gè)ASP.Net Ajax ExtenderControl, 即一個(gè)TimePicker允許用戶在一個(gè)鐘面上拖動(dòng)時(shí)針或分針選擇一天內(nèi)的時(shí)間.
CSWinFormControls\VBWinFormControls
這個(gè)示例闡述了怎樣自定義Windows Forms控件。
本示例中,有4個(gè)小例子:
1. 擁有多列的組合框。
展示了怎樣在組合框的下拉列表中顯示多列數(shù)據(jù)。
2. 每個(gè)列表項(xiàng)擁有不同提示的列表框。
展示了怎樣為列表框中的每個(gè)列表項(xiàng)顯示不同的提示。
3. 只能輸入數(shù)字的文本框。
展示了怎樣使文本框只允許輸入數(shù)字。
4. 一個(gè)橢圓形的按鈕。
展示了怎樣創(chuàng)建一個(gè)不規(guī)則形狀的按鈕。
2010年9月14日
#
應(yīng)園友在這篇博文中的要求,我們項(xiàng)目組里的蔣里京同學(xué)已將VC++, VC#, VB.NET 編碼規(guī)范 (微軟一站式示例代碼庫) 翻譯成中文。你可以在以下鏈接下載到中文版的編碼規(guī)范:
下載
原版:http://1code.codeplex.com/releases/view/51868#DownloadId=148423
譯版:http://1codechs.codeplex.com/releases/view/51227#DownloadId=148734
注:在這篇博文的評(píng)論中,園友還給出了不少技術(shù)方面的建議。由于時(shí)間緊迫,此版本的編碼規(guī)范尚還沒有根據(jù)那些技術(shù)意見做出相應(yīng)調(diào)整。望您能諒解。
本文檔為一站式示例代碼庫項(xiàng)目組所使用的C++ 以及 .NET 編碼規(guī)范 。該規(guī)范源自于產(chǎn)品開發(fā)過程中的經(jīng)驗(yàn),并在不斷完善。如果您發(fā)現(xiàn)一些最佳實(shí)踐或者話題并沒有涵蓋在本文檔中,請(qǐng)聯(lián)系我們一站式示例代碼庫項(xiàng)目組 ,以不斷充實(shí)完善本文檔。
任何指導(dǎo)準(zhǔn)則都可能會(huì)眾口難調(diào)。本規(guī)范的目的在于幫助社區(qū)開發(fā)者提高開發(fā)效率,減少代碼中可能出現(xiàn)的bug,并增強(qiáng)代碼的可維護(hù)性。萬事開頭難,采納一個(gè)不熟悉的規(guī)范可能在初期會(huì)有一些棘手和困擾,但是這些不適應(yīng)很快便會(huì)消失,它所帶來的好處和優(yōu)勢很快便會(huì)顯現(xiàn),特別是在當(dāng)您接手他人代碼時(shí)。

2010年6月1日
#
微軟一站式開發(fā)技術(shù)框架2010年5月31日更新。
下載地址:
http://1code.codeplex.com/releases/view/46212#DownloadId=124539
如果您是第一次聽說All-In-One Code Framework這個(gè)項(xiàng)目,請(qǐng)參閱主頁上的相關(guān)介紹http://1code.codeplex.com/, 以及這兩篇blog
All-In-One Code Framework:一站式微軟開發(fā)技術(shù)框架解決方案
微軟一站式開發(fā)技術(shù)框架解決方案 中文說明
在這次release中,我們除了新加了不少示例代碼,還應(yīng)園子里朋友們的建議,對(duì)每個(gè)編程語言增加了該語言的示例包。比如對(duì)于Silverlight 示例包:All-In-One Silverlight Samples.sln,我們?cè)黾恿薈# 包:All-In-One Silverlight Samples (C#).sln, VB.NET包:All-In-One Silverlight Samples (VB.NET).sln。
Azure 新示例
CSAzureTableStoragePaging, VBAzureTableStoragePaging
我們經(jīng)常需要在使用Table Storage的時(shí)候同時(shí)使用分頁功能。然而,因?yàn)楫?dāng)前Table Storage的功能限制,我們只能使用繼續(xù)令牌來實(shí)現(xiàn)簡單的前一頁/后一頁分頁。這個(gè)例子示范了如何在一個(gè)MVC程序中實(shí)現(xiàn)Table Storage的該分頁功能。
ASP.NET 新示例
CSASPNETMVCPager
這個(gè)例子介紹了如何通過自定義htmlhelper擴(kuò)展方法來實(shí)現(xiàn)分頁。
在這個(gè)例子中我們首先定義了一個(gè)Pager的泛型類,該類用來初始化分頁的一些基本屬性,如總頁數(shù),每頁顯示多少記錄等。接著我們?cè)贑ustomizePager類中定義了一個(gè)htmlhelper擴(kuò)展方法,該方法用于輸出頁碼。
Silverlight 4 新示例
CSSL4COMInterop, VBSL4COMInterop
CSSL4COMInterop和VBSL4COMInterop 示例展示了Silverlight4的一個(gè)新特性: COM交互。示例程序通過使用AutomationFactory類,將數(shù)據(jù)導(dǎo)出到notepad或 MS Word并打印。
Windows 7 新示例
CppWin7MultiTouch
本示例演示如何使用Windows 7的多點(diǎn)觸摸功能創(chuàng)建一個(gè)簡單但是現(xiàn)代化的圖片瀏覽器。你可以用手指對(duì)圖片進(jìn)行平移,縮放,旋轉(zhuǎn),以及傾斜。圖片本身使用Windows 7的新技術(shù):Direct2D和WIC來顯示。
假如你沒有觸摸屏,也可以使用ribbon上的命令和圖片進(jìn)行簡單的互動(dòng)。為了保持示例代碼的簡潔性,本示例并未實(shí)現(xiàn)在諸如Expression Design中可以找到的復(fù)雜的鼠標(biāo)交互功能。
CSWPF3DMultiTouch, VBWPF3DMultiTouch
本示例演示如何使用WPF 4的多點(diǎn)觸摸功能操作一個(gè)3D場景。它繪制了一個(gè)地球。你可以用手指讓地球沿任意方向旋轉(zhuǎn)(并不只是沿經(jīng)緯度旋轉(zhuǎn))。你也可以使用標(biāo)準(zhǔn)的縮放手勢來縮放地球。如果你點(diǎn)中了一個(gè)Windows Azure的數(shù)據(jù)中心,一條提示消息會(huì)顯示出來。
假如你沒有觸摸屏,也可以使用鼠標(biāo)來模擬操作。在示例源代碼中,你將發(fā)現(xiàn)事實(shí)上使用WPF的manipulation framework實(shí)現(xiàn)多點(diǎn)觸摸實(shí)要比處理鼠標(biāo)事件還要簡單。
WPF 新示例
CSWPFNavigationUsage
這個(gè)例子展示了在WPF應(yīng)用程序中如何實(shí)現(xiàn)瀏覽。
Data Platform 新示例
CSEFLazyLoading, VBEFLazyLoading
CSEFLazyLoading和VBEFLazyLoading向您展示了如何使用Lazy Loading這一EF4中新增的特性。同時(shí)這兩個(gè)示例也展示了如何使用我們?cè)贓F1中早已使用的eager loading和explicit loading,并且對(duì)這三種導(dǎo)入相關(guān)實(shí)體的方法進(jìn)行了比較。
.NET CLR 4 新示例
CppHostCLR, CSClassLibrary, CSNET2ClassLibrary
.NET 4的CLR引入了in-process side-by-side的新特性。允許你在同一個(gè)進(jìn)程內(nèi)host多個(gè)CLR。CppHostCLR演示了如何在一個(gè)native C++的程序里使用CLR 4 的CLR Hosting API, 在一個(gè)進(jìn)程內(nèi),載入CLR 4和CLR 2,并在兩個(gè)CLR內(nèi)分別調(diào)用一個(gè).NET 2.0的class library (CSNET2ClassLibrary)。
Windows Forms 新示例
CSWinFormTreeViewTraversal, VBWinFormTreeViewTraversal
這個(gè)示例演示了如何遍歷TreeView控件并找尋特定的結(jié)點(diǎn)。 有時(shí)候我們有列出一棵樹的所有節(jié)點(diǎn)以及查詢某個(gè)特定節(jié)點(diǎn)的需求。 示例中有一個(gè)算法使用了非遞歸方式來完成這個(gè)任務(wù)。具體請(qǐng)看FindNode方法的代碼邏輯。
CSWinFormDesignerCodeDom, VBWinFormDesignerCodeDom
這個(gè)示例演示了如何為控件添加你自己的生成代碼。
在這個(gè)示例中,如果我們不進(jìn)行代碼自定義,系統(tǒng)將對(duì)MyList屬性生成如下代碼
this.myComponent1.MyList =
((System.Collections.Generic.List<string>)(resources.GetObject("myComponent1.MyList")));
But now we want the code with following format
this.myComponent1.MyList.Add("string5");
this.myComponent1.MyList.Add("string4");
this.myComponent1.MyList.Add("string3");
this.myComponent1.MyList.Add("string2");
this.myComponent1.MyList.Add("string1");
但現(xiàn)在我們希望Visual Studio可以生成以下格式的代碼
this.myComponent1.MyList.Add("string5");
this.myComponent1.MyList.Add("string4");
this.myComponent1.MyList.Add("string3");
this.myComponent1.MyList.Add("string2");
this.myComponent1.MyList.Add("string1");
在這里,我們創(chuàng)建了CodeDomSerializer的繼承類MyCodeGenerator來完成這個(gè)任務(wù)。請(qǐng)參看CodeGenerator.cs/CodeGenerator.vb來得到具體信息。
Windows Service 新示例
CppInteractiveWindowsService
該示例演示了Windows Service和用戶session 交互的正確做法。Windows Vista 引入了session 0 isolation的概念。運(yùn)行在Windows Vista和更新的操作系統(tǒng)上的Windows Service便不能直接和用戶交互了。如果你的service非得要和用戶交互,推薦的方法有如下兩個(gè):
1. 調(diào)用WTSSendMessage在用戶session里顯示一個(gè)對(duì)話框。
2. 通過調(diào)用CreateProcessAsUser在用戶session里創(chuàng)建一個(gè)新的可交互的進(jìn)程。該進(jìn)程再和Windows Service進(jìn)行進(jìn)程間通信。
CppInteractiveWindowsService便是演示了上述兩種solution。
最后,如果您對(duì)新版的All-In-One Code Framework有任何建議和反饋,請(qǐng)?jiān)诖颂岢龌虬l(fā)郵件至onecode@microsoft.com 。謝謝!
2010年3月30日
#
微軟一站式開發(fā)技術(shù)框架2010年3月29日更新。下載地址:
http://1code.codeplex.com/releases/view/42689
在這次release中, 我們加入了不少Windows Azure 云計(jì)算相關(guān)的示例代碼。
如果您是第一次聽說All-In-One Code Framework這個(gè)項(xiàng)目,請(qǐng)參閱主頁上的相關(guān)介紹http://1code.codeplex.com/, 以及這兩篇blog
All-In-One Code Framework:一站式微軟開發(fā)技術(shù)框架解決方案
微軟一站式開發(fā)技術(shù)框架解決方案 中文說明
Windows Azure 新示例
下載地址:http://1code.codeplex.com/releases/view/42689#DownloadId=113179
CSAzureServiceBusWCFDS, VBAzureServiceBusWCFDS
演示了如何使用Service Bus和WCF Data Services在云端程序訪問本地的SQL Server數(shù)據(jù)。這個(gè)項(xiàng)目也提供了一個(gè)ASP.NET客戶端用于測試服務(wù)。你可以很輕松的將這個(gè)客戶段轉(zhuǎn)換成一個(gè)Windows Azure的Web Role,真正的在云端進(jìn)行測試。
CSAzureTableStorageWCFDS, VBAzureTableStorageWCFDS
演示了如何使用WCF Data Services將存放在Windows Azure Table Storage中的數(shù)據(jù)發(fā)布至全世界。該示例也提供了一個(gè)Silverlight客戶端用于測試服務(wù)。
CSAzureServiceBusSLRest, CSAzureStorageRESTAPI
在一些情況下我們需要調(diào)用REST API而不是直接使用SDK提供的StorageClient類。比如,往Table Storage中插入無固定模式的數(shù)據(jù),使用其他編程語言些一個(gè)”StorageClient”類,等等。本例子說明了如何創(chuàng)建HTTP 消息來調(diào)用List Blobs API。你可以重用部分代碼來為調(diào)用其他REST API添加authentication HTTP消息頭。
CSAzureServiceBusSLRest, VBAzureServiceBusSLRest
本示例演示了如何使用Windows Azure platform AppFabric Service Bus將運(yùn)行與本機(jī)的WCF服務(wù)暴露給internet上的Silverlight客戶端。本示例使用的是一個(gè)WCF REST Service,但是同樣的方法也適用于其它類型的WCF服務(wù)。
WPF 新示例
CSWPFCascadeDataGridComboBoxColumns, VBWPFCascadeDataGridComboBoxColumns
這個(gè)例子展示了如何在DataGrid的兩個(gè)的ComboBox列的下拉列表中顯示級(jí)聯(lián)數(shù)據(jù)。編譯和運(yùn)行這個(gè)sample前,你需要安裝WPF Toolkit。
Security 新示例
CppCreateLowIntegrityProcess, CSCreateLowIntegrityProcess, VBCreateLowIntegrityProcess
這些是和 UAC 相關(guān)的例子。演示了如何通過VC++ 或 C# 或 VB.NET 代碼創(chuàng)建一個(gè)低integrity level的進(jìn)程。低integrity level的進(jìn)程所能訪問的資源是非常有限的。比如它們不能往LocalAppData known folder (C:\Users\<username>\AppData\Local)里寫數(shù)據(jù)文件,而只能往LocalAppDataLow known folder (C:\Users\<username>\AppData\LocalLow\)里寫。這樣的進(jìn)程是非常安全的。你可以完全相信這樣的進(jìn)程不會(huì)對(duì)你的系統(tǒng)造成破壞。Protected Mode IE 就是一個(gè)典型的low integrity process。
進(jìn)程間通信 新示例
VBNamedPipeClient, VBNamedPipeServer
這是過去發(fā)布的Named Pipe示例的VB.NET版本。演示了如何通過named pipe在進(jìn)程間傳遞數(shù)據(jù)。
VBFileMappingServer, VBFileMappingClient
這是過去發(fā)布的 file mapping示例的VB.NET版本。演示了如何通過 file mapping 在進(jìn)程間共享數(shù)據(jù)。
線程相關(guān)的新示例
CSThreadingBasic, VBThreadingBasic
演示了C#和VB.NET操縱線程的最基本的操作,如創(chuàng)建線程,使用線程池,等。
CSThreadingMonitor, VBThreadingMonitor
演示了C#和VB.NET中如何使用Monitor來做到線程同步。
窗口程序 新示例
CppWindowsOwnerDrawnMenu
演示了如何在C++窗口程序中 owner-draw 菜單項(xiàng)
Data Platform 新示例
VBLinqExtension
VBLinqExtension對(duì)LINQ查詢的數(shù)據(jù)源進(jìn)行了拓展,其中包括了幾個(gè)簡單的LINQ拓展庫,比如LINQ to CSV、LINQ to File System、LINQ to Reflection以及LINQ to String。LINQ to CSV的功能是將CSV文件的數(shù)據(jù)逐行解析成字符串?dāng)?shù)組;LINQ to File System可以將文件夾中的文件以拓展名進(jìn)行歸類并得到其中最大的文件;LINQ to Reflection的功能是在.NET Assembly中,按函數(shù)返回值類型對(duì)導(dǎo)出類的函數(shù)進(jìn)行歸類;LINQ to String的功能包括了過濾字符串中的數(shù)字字符,統(tǒng)計(jì)單詞的出現(xiàn)頻率,以及搜索含有特定單詞集合的句子。在今后的發(fā)布的All-In-One Code Framework(AIO)中,我們還將新增一些其他的LINQ拓展庫,比如LINQ to WMI。
VBUseADO
演示了VB.NET中如何使用ADO (非ADO.NET) 訪問數(shù)據(jù)庫。
Windows Forms 新示例
VBWinFormDesigner
都是些Winforms designer相關(guān)的典型sample: Adornment (演示了如何在Designer上進(jìn)行繪制), CustomPropertyTab (演示了如何在屬性窗口上添加一個(gè)標(biāo)簽頁), EnableDesignTimeFuncForChildCtrl (演示了如何讓子控件具有設(shè)計(jì)時(shí)的功能), MouseEvents (演示了如何捕捉設(shè)計(jì)時(shí)時(shí)的鼠標(biāo)事件), SmartTags (演示了設(shè)計(jì)時(shí)的智能標(biāo)簽功能), PropertDisplayOrder (演示了如何改變對(duì)象的屬性在屬性窗口上的顯示順序)和CustomUITypeEditor (演示了如何自定義一個(gè)設(shè)計(jì)時(shí)的屬性編輯器)。
最后,如果您對(duì)新版的AIO有任何建議和反饋,請(qǐng)?jiān)诖颂岢龌虬l(fā)郵件至codefxf@microsoft.com。謝謝!
2009年11月20日
#
微軟一站式開發(fā)技術(shù)框架2009年11月15日更新。下載地址:
http://cfx.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35920
如果您是第一次聽說All-In-One Code Framework這個(gè)項(xiàng)目,請(qǐng)參閱主頁上的相關(guān)介紹http://cfx.codeplex.com/, 以及這兩篇blog
CodeFx:一站式微軟開發(fā)技術(shù)框架解決方案
微軟一站式開發(fā)技術(shù)框架解決方案 中文說明
CSASPNETMVCCustomActionFilter
CSASPNETMVCCustomActionFilter 事例代碼主要演示了如何使用自定義的ActionFilter對(duì)ASP.NET MVC的處理流程進(jìn)行擴(kuò)展處理。其中包括對(duì) MVC Controller Action類的方法執(zhí)行進(jìn)行預(yù)處理和后續(xù)處理,以及對(duì)于Model中的數(shù)據(jù)進(jìn)行展示前的修改控制。
VBASPNETImageMap
這段代碼演示了如何使用ImageMap控件以及VB.NET語言建立一個(gè)介紹太陽系各個(gè)行星的網(wǎng)頁.當(dāng)圖片中各個(gè)行星的圖形被點(diǎn)擊之后,圖片下方的Label會(huì)顯示出你所選擇的行星,并且關(guān)于這顆行星的介紹(引自wikipedia)將會(huì)在圖片下方的iframe區(qū)域中顯示出來.
CSASPNETReportViewerExport
這個(gè)ASP.NET示例演示了如何通過編程手段從ReportViewer控件導(dǎo)出報(bào)表到PDF或Excel文件中。
CSASPNETFormViewUpload
這個(gè)例子介紹了怎樣在一個(gè)ASP.NET FormView 控件中顯示和上傳圖片以及怎樣實(shí)現(xiàn)插入,編輯,更新,刪除和分頁功能。 所有的圖片和數(shù)據(jù)都存儲(chǔ)在一個(gè)SQL Server 數(shù)據(jù)庫中。
項(xiàng)目包括了2個(gè)頁面: Default 和 Image
Default 頁面從SQL Server 數(shù)據(jù)庫中接受數(shù)據(jù)然后填充FormView控件,并且提供數(shù)據(jù)操作界面。
Image頁面從SQL Server 數(shù)據(jù)庫中接受圖像并且顯示在頁面中。
CSASPNETCacheAPI
這個(gè)示例演示了如何使用ASP.NET Cache API的功能:依賴文件的Cache,依賴其他Cache對(duì)象的Cache,基于absolute and sliding 時(shí)間的Cache。
CSASPNETAjaxScriptControl
CSASPNETAjaxScriptControl 實(shí)例顯示了如何利用Asp.net Ajax ScriptControl模型創(chuàng)建一個(gè)Ajax Control。
實(shí)例中,實(shí)現(xiàn)了一個(gè)日程安排控件,允許用戶在日歷控件中設(shè)置不同的任務(wù),并允許用戶拖動(dòng)任務(wù)窗口實(shí)現(xiàn)修改刪除功能。
CSSL3HTMLBridge, VBSL3HTMLBridge
此項(xiàng)目演示了silverlight與JavaScript之間的互操作。項(xiàng)目包含如下4個(gè)例子:
• 用托管代碼調(diào)用JavaScript函數(shù)
• 在托管代碼中處理html對(duì)象事件
• 用JavaScript調(diào)用托管代碼函數(shù)
• 用JavaScript處理托管代碼事件
CSWPFDataBinding
CSWPFDataBinding示例展示了在WPF中如何使用XAML語言 和 C# 過程語言來實(shí)現(xiàn)數(shù)據(jù)綁定。
CSWPFMasterDetailBinding
演示了WPF中主從(Master-Detail)綁定的實(shí)現(xiàn)。
CSWPFAutoCompleteTextBox
CSWPFAutoCompleteTextBox 示例展示了如何在WPF中實(shí)現(xiàn)自動(dòng)完成輸入的TextBox(文本框)控件。
VBVstoGetWrapperObject, VBVstoServerDocument, VBVstoExcelWorkbook, VBVstoVBAInterop
這些sample是過去發(fā)布的C# VSTO sample的VB.NET版本。演示了如何得到VSTO Wrapper對(duì)象,如何通過ServerDocument類從VSTO Word或Excel文件中提取信息,如何制作VSTO document-level Excel workbook,如何通過VSTO調(diào)用VBA macro等等。
CSEFEntityDataModel, VBEFEntityDataModel
這兩個(gè)示例介紹了如何通過Visual C#和Visual Basic并使用各種不同的方式來操作實(shí)體數(shù)據(jù)模型。它們包含了多對(duì)多聯(lián)系,一對(duì)多聯(lián)系,一對(duì)一聯(lián)系,合并表,拆分表,TPH(table per hierarchy)繼承, TPT(table per type)繼承。在這兩個(gè)示例中,你將看到如何使用這些方式,來對(duì)實(shí)體進(jìn)行插入,更新,和查詢操作。
CSVSService
VS服務(wù)是兩個(gè)不同的VSPackage之間通信的一種方式。 一個(gè)VSPackage可以通過支持一組特定的接口,以COM的形式給別的VSPackage提供服務(wù)。Visual Studio本身就是很多服務(wù)的提供者,通過查詢這些服務(wù)的接口,我們可以定制Visual Studio的許多功能模塊和實(shí)現(xiàn)自動(dòng)化。例如,我們可以通過SVsActivityLog服務(wù)獲得IVsActivityLog接口,從而調(diào)用IVsActivityLog接口提供的方法去寫活動(dòng)日志。 CSVSService示例包括幾下的內(nèi)容:
• 實(shí)現(xiàn)了一個(gè)VSPackage作為服務(wù)提供者,本示例同時(shí)提供了一個(gè)全局服務(wù)和一個(gè)本地服務(wù)。
• 如何注冊(cè)我們的服務(wù)。
• 如何在其它的VSPackage中使用這個(gè)服務(wù)。
CppDllCOMServer
COM是Windows下應(yīng)用非常廣泛的技術(shù),許許多多的技術(shù)都是基于COM的。例如,ActiveX控制,WMI,甚至是CLR,其本身就是一個(gè)巨大的COM服務(wù)器。本示例展示了怎樣在Win32 DLL工程中創(chuàng)建一個(gè)進(jìn)程內(nèi)的COM組件,詳細(xì)的介紹了COM進(jìn)程內(nèi)組件的幾個(gè)基本要素,包括:
• 使用IDL(接口描述語言)定義我們的接口和類型庫。
• 介紹IUnknow接口的三個(gè)方法:AddRef(),Release(),QueryInterface() 以及如何實(shí)現(xiàn)它。
• 如何實(shí)現(xiàn)類工廠。
• 全局導(dǎo)出函數(shù)的作用以及如何實(shí)現(xiàn)它們。
VBExeCOMServer
該示例演示了如何通過VB.NET代碼編寫進(jìn)程外COM組件。
CSXPath, VBXPath
演示了如何通過XPath在XML文件中導(dǎo)航和篩選數(shù)據(jù)。
MFCTaskDialog
這是一個(gè)VS2010 Beta2的sample。演示了VS2010 MFC中新增加的類CTaskDialog。
.png)
MFCDialog
該示例演示了MFC中模式和無模式對(duì)話框的顯示。
CSVSPackageInvokeCoreEditor
Visual Studio核心編輯器是Visual Studio默認(rèn)的編輯器。它支持文字編輯功能包括插入,刪除,復(fù)制和粘貼。它能與language service結(jié)合支持像:語法高亮,代碼縮進(jìn)和智能感知功能。
此示例展示了核心編輯器的基本操作,其中包括了:
1. 初始化核心編輯器,加入IVsTextBuffer和IVsCodeWindow
2. 綁定核心編輯器文件名后綴名,例如:.codefx
3. 在工具/選項(xiàng)中提供選項(xiàng)頁面,使用戶可以選擇核心編輯器中的語言(VB, CS和XML)
CSWFLocalService
通過一個(gè)猜數(shù)游戲演示了Windows Workflow Foundation 3.5中Local Service的特性。
CSIISAdminWMI
演示了通過WMI來配置IIS應(yīng)用程序。
如果您對(duì)新版的CodeFx有任何建議和反饋,請(qǐng)?jiān)诖颂岢觥Vx謝!
2009年9月21日
#
微軟一站式開發(fā)技術(shù)框架2009年9月17日更新。下載地址:
http://cfx.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33087
如果您是第一次聽說All-In-One Code Framework這個(gè)項(xiàng)目,請(qǐng)參閱主頁上的相關(guān)介紹http://cfx.codeplex.com/,以及這兩篇blog
CodeFx:一站式微軟開發(fā)技術(shù)框架解決方案
微軟一站式開發(fā)技術(shù)框架解決方案 中文說明
CSWin7TaskbarAppID,VBWin7TaskbarAppID,CppWin7TaskbarAppID
Application User Model ID (AppID) 是Windows 7任務(wù)欄新引入的一大特性。擁有同一個(gè)AppID的應(yīng)用程序,其在Windows 7的任務(wù)欄按鈕會(huì)被定義在同一個(gè)分組中,彼此重疊在一起。同時(shí)AppID也是定義應(yīng)用程序Jump List的重要依據(jù)。CSWin7TaskbarAppID、VBWin7TaskbarAppID演示了如何通過Windows API Code Pack設(shè)置進(jìn)程級(jí)別的AppID,以及修改進(jìn)程中特定窗口的AppID。CppWin7TaskbarAppID則演示了使用C++和Windows API設(shè)置進(jìn)程級(jí)別的AppID,以及修改進(jìn)程中特定窗口的AppID,此范例需要安裝Windows 7 SDK才能成功編譯。
CSWin7TaskbarOverlayIcons,,VBWin7TaskbarOverlayIcons,CSWin7TaskbarProgressbar,VBWin7TaskbarProgressbar
應(yīng)用程序可以在其Windows 7的任務(wù)欄按鈕上設(shè)置Overlay Icons與Progressbar以顯示其不同的工作狀態(tài)與任務(wù)進(jìn)度。CSWin7TaskbarOverlayIcons,,VBWin7TaskbarOverlayIcons,CSWin7TaskbarProgressbar,VBWin7TaskbarProgressbar演示了如何應(yīng)用Windows API Code Pack設(shè)置應(yīng)用程序任務(wù)欄按鈕的Overlay Icons以及Progressbar的進(jìn)度與狀態(tài)。
CSWin7TaskbarThumbnail,VBWin7TaskbarThumbnail
應(yīng)用程序可自定義其任務(wù)欄Thumbnail預(yù)覽效果和Thumbnail工具欄按鈕是Windows 7新引入的特性。CSWin7TaskbarThumbnail,VBWin7TaskbarThumbnail演示了如何應(yīng)用Windows API Code Pack設(shè)置應(yīng)用程序任務(wù)欄Thumbnail預(yù)覽的效果以及自定義Thumbnail工具欄按鈕。
CSWin7TaskbarJumpList,VBWin7TaskbarJumpList
Jump List是Windows 7新引入的又一特性。通過Jump List,用戶可以更方便快捷地找到自己近期或經(jīng)常通過某一個(gè)應(yīng)用程序打開的文件。應(yīng)用程序還可以在Jump List中添加用戶任務(wù)以方便用戶打開其他相關(guān)的應(yīng)用程序,在Jump List中自定義類別、文件項(xiàng)目、文件鏈接。CSWin7TaskbarJumpList,VBWin7TaskbarJumpList演示了如何以AppID注冊(cè)應(yīng)用程序以及文件句柄,通過Window API Code Pack設(shè)置Jump List用戶任務(wù)和自定義Jump List類別、文件項(xiàng)目和文件鏈接。
XAMLSL3SplashScreen
XAMLSL3SplashScreen 演示了如何為Silverlight程序設(shè)置自定義的啟動(dòng)畫面。當(dāng)Silverlight程序正在下載時(shí),默認(rèn)情況下會(huì)有一個(gè)自帶的啟動(dòng)畫面。如果想要改變這個(gè)啟動(dòng)畫面,我們可以自己定義一個(gè)。此外,在ReadMe.txt中還談到了一些使用SplashScreen的限制。
CSSL3Animation, VBSL3Animation
CSSL3Animation和VBSL3Animation演示了如何在Silverlight中創(chuàng)建動(dòng)畫效果。由于Silverilght中自帶的動(dòng)畫效果類很多,不可能在一個(gè)項(xiàng)目中全部涉及。因此項(xiàng)目中只包括了Point和 Double數(shù)據(jù)類型相關(guān)的動(dòng)畫。其他動(dòng)畫效果的代碼大同小異,不在此贅述。
項(xiàng)目演示了:
• 如何通過XAML來進(jìn)行PointAnimation
• 如何通過Code Behind來進(jìn)行PointAnimation
• 如何用PointAnimation來對(duì)自定義的屬性做動(dòng)畫效果
• 如何使用Silverlight 3新功能: Easing
• 如何使用關(guān)鍵幀做出動(dòng)畫效果
CSSL3DeepZoom, VBSL3DeepZoom
Silverlight deep zoom 提供了一種高效的方式來展示高分辨率的圖片以及大量圖片的集合。用戶在一開始下載的是大型圖片(集合)的縮略圖,這個(gè)縮略圖的分辨率比較低。隨著他們漸漸放大圖片上的某一部分,分辨率較高的圖片中的那一部分會(huì)被下載到客戶端。此外,你還可以在自己的程序中對(duì)deep zoom進(jìn)行大量的自定義,使deep zoom的場景完美地融合到你的程序中。這個(gè)例子展示了一些常見的deep zoom的自定義方法。它包括:
• 使用Deep Zoom Composer來創(chuàng)建deep zoom場景。
• 下載并解析metadata。
• 在一個(gè)collection場景中實(shí)現(xiàn)hit test。
• 創(chuàng)建一個(gè)非位圖的UIElment,并且讓它和MultiScaleImage一起移動(dòng),協(xié)同縮放。
• 在一個(gè)collection場景中移動(dòng)一張sub image。
• 使用DeepZoomTools.dll在代碼中動(dòng)態(tài)創(chuàng)建deep zoom場景。
CSSL3WriteableBitmap
WriteableBitmap是Silverlight 3的一個(gè)新功能。你可以用它來操作位圖中的每一個(gè)像素。你可以想到很多很多應(yīng)用場景,不過,出于安全性考慮(例如,Silverlight不允許你寫使用指針的unsafe代碼),和同樣的桌面程序相比,你可能需要寫更多的代碼。這個(gè)例子包括3個(gè)小的示例,展示了使用WriteableBitmap的常見場景:
• Gun shoot。你可以選擇兩張不同大小的圖片。該示例將會(huì)把他們縮放到相同的分辨率,并且將一張圖片覆蓋于另一張上方。當(dāng)你點(diǎn)擊上方的圖片開槍時(shí),一個(gè)槍痕將會(huì)顯現(xiàn),并且你會(huì)射穿上面那幅畫,從而可以看到下面的畫的內(nèi)容。該示例展示了如何將不同分辨率的元圖片縮放到相同的分辨率,以及如何修改某個(gè)單獨(dú)的像素。
• Fill color。該示例實(shí)現(xiàn)了繪圖軟件中常見的一個(gè)場景:油漆桶,也就是為某塊區(qū)域填充上同樣的色彩。它展示了如何在Silverlight WriteableBitmap中應(yīng)用常見的圖形學(xué)算法,并且還通過模擬CLR調(diào)用堆棧的方式解決了過深的遞歸可能造成的stack overflow問題。
• Screenshot。該示例展示了WriteableBitmap的另一功能:創(chuàng)建屏幕截圖,并且把結(jié)果保存為一個(gè)bmp文件。它也說明了該功能的一些局限性。
為了發(fā)掘出WriteableBitmap的強(qiáng)大潛力,你需要一些圖形學(xué)的知識(shí)。例如,你必須掌握位圖是如何在內(nèi)存中存儲(chǔ)的,必須了解關(guān)于像素和顏色的基本知識(shí),等等。為了提高效率,你還必須學(xué)會(huì)位移運(yùn)算。
CSSL3CustomControl
CSSL3CustomControl 是一個(gè)silverlight library 項(xiàng)目。 通過實(shí)現(xiàn)一個(gè)可顯示高亮文本的HighLightTextBlock,項(xiàng)目展示了如何創(chuàng)建自定義控件。以及通過關(guān)聯(lián)項(xiàng)目XAMLSL3StyleControlTemplate,展示如何利用style來更改HighLightTextBlock外觀。
CSADONETDataServiceSL3Client, VBADONETDataServiceSL3Client
CSADONETDataServiceSL3Client和VBADONETDataServiceSL3Client 演示了如何在Silverlight中訪問ADO.NET Data Services。在項(xiàng)目中,使用ADO.NET Data Services暴露出的URL來生成代理類,然后通過代理類與服務(wù)器端進(jìn)行通信,進(jìn)行查詢、修改、添加、刪除的操作。在項(xiàng)目中一共生成了三個(gè)代理類,分別對(duì)應(yīng)服務(wù)器端程序CSADONETDataService中的三個(gè)服務(wù)。此外,項(xiàng)目中的ReadMe.txt還介紹了一些在使用Silverlight訪問ADO.NET Data Services時(shí)可能遇到的情況。
CSASPNETMVCFileDownload
這是CodeFx中第一個(gè)ASP.NET MVC例子。10月份我們會(huì)有更多的ASP.NET MVC示例問世。CSASPNETMVCFileDownload演示了一個(gè)文件下載的例子。其中包括注冊(cè)自定義URL路由,以及自定義ActionResult。
CSASPNETGridView, CSASPNETDataPager, CSASPNETMenu
這三個(gè)示例分別演示了ASP.NET GridView, DataPager, Menu控件的用法。
VBASPNETMasterPage
這個(gè)例子示范了在ASP.NET模板頁的使用。使用 ASP.NET 母版頁可以為應(yīng)用程序中的頁創(chuàng)建一致的布局。單個(gè)母版頁可以為應(yīng)用程序中的所有頁(或一組頁)定義所需的外觀和標(biāo)準(zhǔn)行為。然后可以創(chuàng)建包含要顯示的內(nèi)容的各個(gè)內(nèi)容頁。當(dāng)用戶請(qǐng)求內(nèi)容頁時(shí),這些內(nèi)容頁與母版頁合并以將母版頁的布局與內(nèi)容頁的內(nèi)容組合在一起輸出。
CSASPNETOutputCache
CSASPNETOutputCache演示了ASP.NET Output Cache以增加頁面響應(yīng)速度。相關(guān)blog: http://blogs.msdn.com/codefx/archive/2009/09/07/asp-net-output-cache.aspx。
VBListFilesInDirectory
這是CSListFilesInDirectory示例的VB.NET版本。其源于一個(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和VBListFilesInDirectory演示了如何做到這一點(diǎn)。
ATLShellExtIconHandler, ATLShellExtIconOverlayHandler
這兩個(gè)Windows Shell Extension的例子分別演示了Icon Handler和Icon Overlay Handler的開發(fā)。
CSVSPackage
VSPackages 是用來擴(kuò)展Visual Studio集成開發(fā)環(huán)境的模塊。通過VSPackage, 我們可以提供自定義的UI元素,比如工具欄,定制的代碼編輯器以及UI設(shè)計(jì)器,還通過VSPackage來提供自定義的service。實(shí)際上,VSPackage是構(gòu)成Visual Studio的最基本的單元,Visual Studio 本身就是由眾多VSPackage構(gòu)成的。本例就是演示如何通過Visual Studio Integration Package Wizard 來創(chuàng)建一個(gè)簡單的VSPackage。在以后的CodeFx示例中,我們還將增一些示例來說明如何通過VSPackage來擴(kuò)展Visual Studio。
CSVSPackageState
此示例展示了插件選項(xiàng)狀態(tài)持久化,和屬性窗口狀態(tài)。此示例并不包含解決方案和項(xiàng)目文件的狀態(tài)管理,它們將會(huì)在項(xiàng)目文件插件示例中演示。
• 工具/選項(xiàng) 頁面
在Visual Studio中選擇 工具/選項(xiàng) 目錄打開選項(xiàng)窗口。樹狀導(dǎo)向面板中包含了選項(xiàng)分類和每個(gè)分類中的選項(xiàng)頁面。當(dāng)你選擇頁面時(shí),選項(xiàng)出現(xiàn)在右邊面板。此頁面使用戶可以改變選項(xiàng)值,也就是VS插件的狀態(tài)。DialogPage類實(shí)現(xiàn)了IProfileManager,它提供了選項(xiàng)頁面和用戶設(shè)定的持久化功能。LoadSettingsFromStorage和SaveSettingsToStorage方法默認(rèn)實(shí)現(xiàn)了把屬性存入注冊(cè)表中用戶部分,前提是屬性是可以被轉(zhuǎn)化為字符串形式。

• 屬性窗口
在此示例中,我們將使用ToolWindow來展示屬性窗口。當(dāng)用戶選中Visual Studio中的對(duì)象時(shí), 對(duì)象上所有公共的屬性都會(huì)像是在屬性窗口中。如要用代碼來選中一個(gè)對(duì)象時(shí),需要將此對(duì)象放入一個(gè)選擇容器中。我們使用STrackSelection 服務(wù)來通知Visual Studio。
![clip_image001[4] clip_image001[4]](http://images.cnblogs.com/cnblogs_com/Jialiang/WindowsLiveWriter/CodeFx2009917_833D/clip_image001%5B4%5D_thumb.jpg)
最后,如果您對(duì)新版的CodeFx有任何建議和反饋,請(qǐng)?jiān)诖颂岢觥Vx謝!
2009年8月27日
#
微軟一站式開發(fā)技術(shù)框架解決方案 2009年8月26號(hào)更新。下載地址:
http://cfx.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32006
如果您是第一次聽說All-In-One Code Framework這個(gè)項(xiàng)目,請(qǐng)參閱主頁上的相關(guān)介紹http://cfx.codeplex.com/,以及這兩篇blog
CodeFx:一站式微軟開發(fā)技術(shù)框架解決方案
微軟一站式開發(fā)技術(shù)框架解決方案 中文說明
在這次更新中,我們新增了不少Windows 7以及Windows 7 應(yīng)用程序兼容性相關(guān)的sample。其中C++編寫時(shí)代碼示例,你需要安裝Windows 7 SDK才能成功編譯。
CSWin7TriggerStartService, VBWin7TriggerStartService
Trigger-start Service是Windows 7中的一大新特性。在Win7中Windows Service可以注冊(cè)一些事件如USB插入。當(dāng)這些事件觸發(fā)時(shí),Windows Service自動(dòng)啟動(dòng)或關(guān)閉。如此一來,Service可以按需啟動(dòng),從而提高系統(tǒng)的整體性能。CSWin7TriggerStartService和VBWin7TriggerStartService 演示的就是如何編寫.NET代碼開發(fā)Trigger Start Service。示例中你可以看到如何注冊(cè)USB插入事件,以及如何注冊(cè)網(wǎng)絡(luò)連接和斷開事件。
CppWin7ShellLibrary, CSWin7ShellLibrary
Shell Library同樣是Windows 7中新引入的概念。Library是從過去的My Documents這個(gè)概念自然演變過來的。A library is a common store of user defined locations that applications can leverage to manage user content as their part of the user experience. CppWin7ShellLibrary和CSWin7ShellLibrary演示如何創(chuàng)建、打開、刪除、重命名shell library,以及如何添加、刪除、枚舉shell library中的用戶自定義文件夾。
CppCheckOSVersion, CSCheckOSVersion
這兩個(gè)示例演示了如何正確檢測當(dāng)前操作系統(tǒng)版本。系統(tǒng)版本的檢測和應(yīng)用程序兼容性有著密切的關(guān)系。順便說一下,Windows Vista的系統(tǒng)版本號(hào)是6.0。Windows7的操作系統(tǒng)版本是6.1,而不是7.0或7.1。
CSASPNETCascadingDropDownList
CSASPNETCascadingDropDownList 示例包含了兩個(gè)例子:有頁面刷新的級(jí)聯(lián)下拉框 和無頁面刷新的級(jí)聯(lián)下拉框。前者主要是利用DropDown List 的SelectedIndexChanged 事件來綁定子DropDown List;第二個(gè)主要是使用XMLHttpRequest和JavaScript在客戶端實(shí)現(xiàn)無刷新的級(jí)聯(lián)DropDown List。
CSASPNETPageValidation
通過一個(gè)簡單的用戶名注冊(cè)示例,介紹如何使用一組ASP.NET 驗(yàn)證控件對(duì)一些頁面的通信類進(jìn)行驗(yàn)證。
CSASPNETAjaxExtender
CSASPNETAjaxExtender 的實(shí)例主要介紹了如何使用ASP.Net Ajax Extender模型創(chuàng)建Extender控件。并且,在實(shí)例中描述了創(chuàng)建TimePicker Extender 控件的過程。TimePicker控件是一個(gè)時(shí)間選擇器,用戶可以通過拖動(dòng)時(shí)間指針來選擇時(shí)間。
VBADONETDataService, VBADONETDataServiceClient
這兩個(gè)是ADO.NET Data Service 示例的VB.NET版本。C#版本請(qǐng)參見CSADONETDataService和CSADONETDataServiceClient。
CSXmlSerialization, VBXmlSerialization
演示了如何將一個(gè).NET對(duì)象XML 序列化到一個(gè)文件,再從這個(gè)文件反序列化成一個(gè).NET對(duì)象。
CSWinFormSplashScreen
演示了兩種給C#編寫的WinForm程序添加splash screen的方法。方法一:在Application.Run 應(yīng)用程序的主窗體之前,先Application.Run一個(gè)splash screen窗體。方法二:添加對(duì)Microsoft.VisualBasic的引用,然后通過Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase類來實(shí)現(xiàn)自定義的splash screen。
最后,如果您對(duì)新版的CodeFx有任何建議和反饋,請(qǐng)?jiān)诖颂岢觥Vx謝!
2009年7月30日
#
微軟一站式開發(fā)技術(shù)框架解決方案 2009年7月30號(hào)更新:
http://cfx.codeplex.com/Wiki/View.aspx?title=All-In-One%20Code%20Framework%20Examples
下載地址:
http://cfx.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30817
如果您是第一次聽說All-In-One Code Framework這個(gè)項(xiàng)目,請(qǐng)參閱主頁上的相關(guān)介紹http://cfx.codeplex.com/,以及這兩篇blog
CodeFx:一站式微軟開發(fā)技術(shù)框架解決方案
微軟一站式開發(fā)技術(shù)框架解決方案 中文說明
在這次更新中,我們新增了大量的Silverlight 3的sample。要運(yùn)行這些Silverlight sample,你需要安裝Silverlight 3 Tools for Visual Studio 2008 SP1。另外,你還可以找到不少ADO.NET Data Service, Windows Shell, ASP.NET的示例。
CSSL3PlaneProjection, VBSL3PlaneProjection
這些sample演示了如何使用Silverlight 3新增的3D透視特性。PlaneProjection是3D透視中最常被使用的一種透視對(duì)象。在示例中,你可以看到如何通過調(diào)整PlaneProjection對(duì)象的屬性來控制立體投影。投影以后,被投影的控件仍能正常工作。
CSSL3PixelShader, VBSL3PixelShader
PixelShader效果同樣也是Silverlight 3中新增的特性。示例演示了如何使用內(nèi)建的DropShadowEffect效果,以及如何創(chuàng)建和使用一個(gè)自定義的ShaderEffect。
CSSL3FullScreen, VBSL3FullScreen
這兩個(gè)sample則演示了Silverlight 3的全屏特性。在全屏模式下,部分鍵盤事件是無法捕獲的。
CSSL3Input, VBSL3Input
演示如何在Silverlight 3中處理鼠標(biāo)和鍵盤事件,以及如何實(shí)現(xiàn)鼠標(biāo)拖拽功能。
CSSL3Text, VBSL3Text, XamlSL3Text
CSSL3Text, VBSL3Text, XamlSL3Text展示了Silverlight 3中和文本相關(guān)的特性,包括如何創(chuàng)建一個(gè)簡單的TextBlock,如何在這TextBlock中加入LineBreak或高級(jí)format,等等。這三個(gè)sample通過不同的編程語言(C#, VB.NET, Xaml) 展示出一個(gè)統(tǒng)一的UI,以方便讀者比較其不同的實(shí)現(xiàn)方法。
XamlSL3StyleControlTemplate
XamlSL3StyleControlTemplate是和Silverlight3中Style和ControlTemplate相關(guān)的sample。
CSADONETDataService, CSADONETDataServiceClient
CSADONETDataService是用Visual C#編寫的ADO.NET 數(shù)據(jù)服務(wù)框架的服務(wù)端程序。它引用了三種不同的數(shù)據(jù)源:ADO.NET 實(shí)體數(shù)據(jù)模型、LINQ To SQL 數(shù)據(jù)類、以及簡單的內(nèi)存數(shù)據(jù)。同時(shí)它也自定義了服務(wù)操作和偵聽器來對(duì)ADO.NET數(shù)據(jù)服務(wù)的URI資源進(jìn)行擴(kuò)展。CSADONETDataServiceClient是ADO.NET數(shù)據(jù)服務(wù)框架的客戶端程序。它使用了以下幾種不同的方式(LINQ、ADO.NET數(shù)據(jù)服務(wù)查詢選項(xiàng)、自定義的ADO.NET數(shù)據(jù)服務(wù)操作)來對(duì)ADO.NET數(shù)據(jù)服務(wù)服務(wù)端的多種數(shù)據(jù)源(ADO.NET 實(shí)體數(shù)據(jù)模型、LINQ To SQL 數(shù)據(jù)類、以及簡單的內(nèi)存數(shù)據(jù))進(jìn)行更新和查詢。
VBASPNETFileUpload, VBASPNETLocalization
這兩個(gè)是ASP.NET的sample。分別演示了ASP.NET中文件上傳功能的制作,以及ASP.NET Globalization和Localization的功能。
CSTFSWorkItemObjectModel
CSTFSWorkItemObjectModel演示如何通過Team Explorer 2008的Object Model來訪問TFS server。要運(yùn)行這個(gè)sample,你需要確保你已安裝了Team Explorer 2008,并且在sample的app.config里正確地配置了project name和TFS server URL。
ATLShellExtDragAndDropHandler, ATLShellExtInfotipHandler, ATLShellExtPropSheetHandler, ATLShellExtContextMenuHandler
這些都是Windows Shell Extension 相關(guān)的sample。分別演示了Drag and Drop Handler, Infotip Handler, PropertySheet Handler, Context Menu Handler的制作。不久我們還將推出Data handler, Drop handler, Icon handler, Thumbnail Image handler, Metadata handler, Column handler, Copy hook handler, Icon Overlay handler, Search handler, Namespace Extension的例子。敬請(qǐng)期待。
最后,如果您對(duì)新版的CodeFx有任何建議和反饋,請(qǐng)?jiān)诖颂岢觥Vx謝!