微软一站式开发技术框架解决方案 2009年6月14号更新:
 
下载地址:
 
如果您是第一次听说All-In-One Code Framework这个项目,请参阅主页上的相关介绍http://cfx.codeplex.com/,以及这篇blog: CodeFx:一站式微软开发技术框架解决方案
 
 
让我们来看看这一次发布中新增了哪些sample code:
 
CSLinqExtension
CSLinqExtension对LINQ查询的数据源进行了拓展,其中包括了几个简单的LINQ拓展库,比如LINQ to CSV、LINQ to File System、LINQ to Reflection以及LINQ to String。LINQ to CSV的功能是将CSV文件的数据逐行解析成字符串数组;LINQ to File System可以将文件夹中的文件以拓展名进行归类并得到其中最大的文件;LINQ to Reflection的功能是在.NET Assembly中,按函数返回值类型对导出类的函数进行归类;LINQ to String的功能包括了过滤字符串中的数字字符,统计单词的出现频率,以及搜索含有特定单词集合的句子。在今后的发布的CodeFx中,我们还将新增一些其他的LINQ拓展库,比如LINQ to WMI。
 
CSOfficeSharedAddIn, CppOfficeManagedCOMAddInShim
CSOfficeSharedAddIn是一个最基本的Office Shared COM AddIn。它由.NET语言编写完成,而且不依赖于VSTO。为了确保这种AddIn和别的Office AddIn相互隔离,开发人员可以在这个managed COM AddIn的基础上添加一个
AddIn Shim。Shim的工作原理就是让Office先加载Shim dll (Shim dll是一个纯native C++编写的dll),再有这个Shim dll 加载.NET Runtime,创建一个新的AppDomain起隔离作用,最后将原来的managed COM AddIn 程序集load到这个AppDomain中去。CppOfficeManagedCOMAddInShim演示的就是这样一个AddIn Shim。
 
CSVstoGetWrapperObject
演示了如何从现有的Office COM对象中得到VSTO对象的包装。
 
CSAutomatePowerPoint, VBAutomatePowerPoint, CppAutomatePowerPoint
这三个例子演示了如何编写VC#, VB.NET和native VC++代码来automate Microsoft PowerPoint。
 
CSWinFormDataGridView
自定义DataGridView的sample大全。收罗了
MSDN论坛里最经常被问到的自定义场景。比如,场景1. 使用除标准DataGridView编辑控件(TextBox, CheckBox, ComboBox, Button, Link, Image)之外的其他控件进行编辑,如MaskedTextBox, DateTimePicker控件等。这个需求一般可以通过两种方法来解决,一种是自定义个一个DataGridView列,详见 CustomDataGridView 这个例子;另一种是在DataGridView进入编辑状态时,将所需的编辑控件放置于当前编辑单元格中,在编辑结束的时候将该控件隐藏,详见 EditingControlHosting 这个例子。场景2. 大数据量显示。常态下在DataGridView控件中显示超大数据量效果不佳,为增强超大数据量的显示效果,一般有以下两种方法: 一是分页显示,详见 DataGridViewPaging 这个例子; 二是使用VirtualMode,在数据需要显示时才从数据库中读取,详见 JustInTimeDataLoading这个例子。场景3. 多层表头。 有时为了使数据显示得更有组合性,我们会希望能显示多层的表头,实现方法详见 MultipleLayeredColumnHeader 这个例子。
 
CppUac
这是Vista UAC相关的一个native C++的例子。和CSUac例子对应,演示了如何判断当前进程的Integrity level,以及如何通过ShellExecute(Ex)或者manifest文件来elevate一个进程。
 
CSControlFirewall
演示了
Windows Firewall API的使用。
 
CppWindowsSubclassing
演示了如何编写native VC++代码对当前应用程序内的窗口进行子类化。子类化是一种非常常用的方法来自定义一些Window或control的行为。一般在VC++中有两种方法作子类化。具体的请参见该示例代码和文档。
 
CSCodeDOM
这是.NET CodeDOM的sample。演示了如何使用.NET CodeDOM 技术在运行时动态生成和编译代码。
 
CppSynchronousIO, CppAsynchronousIO
演示了同步I/O和异步I/O。异步I/O中除了demo了最基本的GetOverlappedResult, WaitForSingleObject等操作,还演示了Alertable I/O, I/O Completion Port这些高级API。
 
 
最后,如果您对新版的CodeFx有任何建议和反馈,请在此提出。谢谢!