微軟一站式開(kāi)發(fā)技術(shù)框架2010年5月31日更新。
下載地址:
http://1code.codeplex.com/releases/view/46212#DownloadId=124539
如果您是第一次聽(tīng)說(shuō)All-In-One Code Framework這個(gè)項(xiàng)目,請(qǐng)參閱主頁(yè)上的相關(guān)介紹http://1code.codeplex.com/, 以及這兩篇blog
All-In-One Code Framework:一站式微軟開(kāi)發(fā)技術(shù)框架解決方案
微軟一站式開(kāi)發(fā)技術(shù)框架解決方案 中文說(shuō)明
在這次release中,我們除了新加了不少示例代碼,還應(yīng)園子里朋友們的建議,對(duì)每個(gè)編程語(yǔ)言增加了該語(yǔ)言的示例包。比如對(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è)功能。然而,因?yàn)楫?dāng)前Table Storage的功能限制,我們只能使用繼續(xù)令牌來(lái)實(shí)現(xiàn)簡(jiǎn)單的前一頁(yè)/后一頁(yè)分頁(yè)。這個(gè)例子示范了如何在一個(gè)MVC程序中實(shí)現(xiàn)Table Storage的該分頁(yè)功能。
ASP.NET 新示例
CSASPNETMVCPager
這個(gè)例子介紹了如何通過(guò)自定義htmlhelper擴(kuò)展方法來(lái)實(shí)現(xiàn)分頁(yè)。
在這個(gè)例子中我們首先定義了一個(gè)Pager的泛型類(lèi),該類(lèi)用來(lái)初始化分頁(yè)的一些基本屬性,如總頁(yè)數(shù),每頁(yè)顯示多少記錄等。接著我們?cè)贑ustomizePager類(lèi)中定義了一個(gè)htmlhelper擴(kuò)展方法,該方法用于輸出頁(yè)碼。
Silverlight 4 新示例
CSSL4COMInterop, VBSL4COMInterop
CSSL4COMInterop和VBSL4COMInterop 示例展示了Silverlight4的一個(gè)新特性: COM交互。示例程序通過(guò)使用AutomationFactory類(lèi),將數(shù)據(jù)導(dǎo)出到notepad或 MS Word并打印。
Windows 7 新示例
CppWin7MultiTouch
本示例演示如何使用Windows 7的多點(diǎn)觸摸功能創(chuàng)建一個(gè)簡(jiǎn)單但是現(xiàn)代化的圖片瀏覽器。你可以用手指對(duì)圖片進(jìn)行平移,縮放,旋轉(zhuǎn),以及傾斜。圖片本身使用Windows 7的新技術(shù):Direct2D和WIC來(lái)顯示。
假如你沒(méi)有觸摸屏,也可以使用ribbon上的命令和圖片進(jìn)行簡(jiǎn)單的互動(dòng)。為了保持示例代碼的簡(jiǎn)潔性,本示例并未實(shí)現(xiàn)在諸如Expression Design中可以找到的復(fù)雜的鼠標(biāo)交互功能。
CSWPF3DMultiTouch, VBWPF3DMultiTouch
本示例演示如何使用WPF 4的多點(diǎn)觸摸功能操作一個(gè)3D場(chǎng)景。它繪制了一個(gè)地球。你可以用手指讓地球沿任意方向旋轉(zhuǎn)(并不只是沿經(jīng)緯度旋轉(zhuǎn))。你也可以使用標(biāo)準(zhǔn)的縮放手勢(shì)來(lái)縮放地球。如果你點(diǎn)中了一個(gè)Windows Azure的數(shù)據(jù)中心,一條提示消息會(huì)顯示出來(lái)。
假如你沒(méi)有觸摸屏,也可以使用鼠標(biāo)來(lái)模擬操作。在示例源代碼中,你將發(fā)現(xiàn)事實(shí)上使用WPF的manipulation framework實(shí)現(xiàn)多點(diǎn)觸摸實(shí)要比處理鼠標(biāo)事件還要簡(jiǎn)單。
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í)候我們有列出一棵樹(shù)的所有節(jié)點(diǎn)以及查詢(xún)某個(gè)特定節(jié)點(diǎn)的需求。 示例中有一個(gè)算法使用了非遞歸方式來(lái)完成這個(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的繼承類(lèi)MyCodeGenerator來(lái)完成這個(gè)任務(wù)。請(qǐng)參看CodeGenerator.cs/CodeGenerator.vb來(lái)得到具體信息。
Windows Service 新示例
CppInteractiveWindowsService
該示例演示了Windows Service和用戶(hù)session 交互的正確做法。Windows Vista 引入了session 0 isolation的概念。運(yùn)行在Windows Vista和更新的操作系統(tǒng)上的Windows Service便不能直接和用戶(hù)交互了。如果你的service非得要和用戶(hù)交互,推薦的方法有如下兩個(gè):
1. 調(diào)用WTSSendMessage在用戶(hù)session里顯示一個(gè)對(duì)話(huà)框。
2. 通過(guò)調(diào)用CreateProcessAsUser在用戶(hù)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 。謝謝!