微软一站式开发技术框架解决方案 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
All-In-One Code Framework:一站式微软开发技术框架解决方案
让我们一起来看看这次更新中新增了哪些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。
最后,如果您对新版的All-In-One Code Framework (AIO)有任何建议和反馈,请在此提出。谢谢!