微软一站式开发技术框架2010年5月31日更新。
下载地址:
http://1code.codeplex.com/releases/view/46212#DownloadId=124539
如果您是第一次听说All-In-One Code Framework这个项目,请参阅主页上的相关介绍http://1code.codeplex.com/, 以及这两篇blog
All-In-One Code Framework:一站式微软开发技术框架解决方案
在这次release中,我们除了新加了不少示例代码,还应园子里朋友们的建议,对每个编程语言增加了该语言的示例包。比如对于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
我们经常需要在使用Table Storage的时候同时使用分页功能。然而,因为当前Table Storage的功能限制,我们只能使用继续令牌来实现简单的前一页/后一页分页。这个例子示范了如何在一个MVC程序中实现Table Storage的该分页功能。
ASP.NET 新示例
CSASPNETMVCPager
这个例子介绍了如何通过自定义htmlhelper扩展方法来实现分页。
在这个例子中我们首先定义了一个Pager的泛型类,该类用来初始化分页的一些基本属性,如总页数,每页显示多少记录等。接着我们在CustomizePager类中定义了一个htmlhelper扩展方法,该方法用于输出页码。
Silverlight 4 新示例
CSSL4COMInterop, VBSL4COMInterop
CSSL4COMInterop和VBSL4COMInterop 示例展示了Silverlight4的一个新特性: COM交互。示例程序通过使用AutomationFactory类,将数据导出到notepad或 MS Word并打印。
Windows 7 新示例
CppWin7MultiTouch
本示例演示如何使用Windows 7的多点触摸功能创建一个简单但是现代化的图片浏览器。你可以用手指对图片进行平移,缩放,旋转,以及倾斜。图片本身使用Windows 7的新技术:Direct2D和WIC来显示。
假如你没有触摸屏,也可以使用ribbon上的命令和图片进行简单的互动。为了保持示例代码的简洁性,本示例并未实现在诸如Expression Design中可以找到的复杂的鼠标交互功能。
CSWPF3DMultiTouch, VBWPF3DMultiTouch
本示例演示如何使用WPF 4的多点触摸功能操作一个3D场景。它绘制了一个地球。你可以用手指让地球沿任意方向旋转(并不只是沿经纬度旋转)。你也可以使用标准的缩放手势来缩放地球。如果你点中了一个Windows Azure的数据中心,一条提示消息会显示出来。
假如你没有触摸屏,也可以使用鼠标来模拟操作。在示例源代码中,你将发现事实上使用WPF的manipulation framework实现多点触摸实要比处理鼠标事件还要简单。
WPF 新示例
CSWPFNavigationUsage
这个例子展示了在WPF应用程序中如何实现浏览。
Data Platform 新示例
CSEFLazyLoading, VBEFLazyLoading
CSEFLazyLoading和VBEFLazyLoading向您展示了如何使用Lazy Loading这一EF4中新增的特性。同时这两个示例也展示了如何使用我们在EF1中早已使用的eager loading和explicit loading,并且对这三种导入相关实体的方法进行了比较。
.NET CLR 4 新示例
CppHostCLR, CSClassLibrary, CSNET2ClassLibrary
.NET 4的CLR引入了in-process side-by-side的新特性。允许你在同一个进程内host多个CLR。CppHostCLR演示了如何在一个native C++的程序里使用CLR 4 的CLR Hosting API, 在一个进程内,载入CLR 4和CLR 2,并在两个CLR内分别调用一个.NET 2.0的class library (CSNET2ClassLibrary)。
Windows Forms 新示例
CSWinFormTreeViewTraversal, VBWinFormTreeViewTraversal
这个示例演示了如何遍历TreeView控件并找寻特定的结点。 有时候我们有列出一棵树的所有节点以及查询某个特定节点的需求。 示例中有一个算法使用了非递归方式来完成这个任务。具体请看FindNode方法的代码逻辑。
CSWinFormDesignerCodeDom, VBWinFormDesignerCodeDom
这个示例演示了如何为控件添加你自己的生成代码。
在这个示例中,如果我们不进行代码自定义,系统将对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");
但现在我们希望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");
在这里,我们创建了CodeDomSerializer的继承类MyCodeGenerator来完成这个任务。请参看CodeGenerator.cs/CodeGenerator.vb来得到具体信息。
Windows Service 新示例
CppInteractiveWindowsService
该示例演示了Windows Service和用户session 交互的正确做法。Windows Vista 引入了session 0 isolation的概念。运行在Windows Vista和更新的操作系统上的Windows Service便不能直接和用户交互了。如果你的service非得要和用户交互,推荐的方法有如下两个:
1. 调用WTSSendMessage在用户session里显示一个对话框。
2. 通过调用CreateProcessAsUser在用户session里创建一个新的可交互的进程。该进程再和Windows Service进行进程间通信。
CppInteractiveWindowsService便是演示了上述两种solution。
最后,如果您对新版的All-In-One Code Framework有任何建议和反馈,请在此提出或发邮件至onecode@microsoft.com 。谢谢!