一站式示例代码库项目组最近收到不少反馈,希望我们提供更方便和及时的方式以通知新示例的发布。对此,项目组新设计出以下两种通知方式:
方式一 Follow us on Twitter
每当有新的示例或KB被制作出来,我们team就会在Twitter上给出这个示例的简短介绍和下载地址。我们的twitter账号是:
http://twitter.com/microsoftkb2 (microsoftkb2 是专为Developer设计的twitter,里面有所有developer相关的KB, code sample的更新信息)
或
http://twitter.com/microsoftkb (这个twitter账号不仅包含了上面的developer twitter的内容,还包含home user, IT pro 相关的MSKB的更新)
方式二 项目博客的RSS Feed
第二种方式是使用博客 RSS feed。从现在开始,每当一个新的代码示例被release出来,我们项目组会在http://blogs.msdn.com/codefx 上发布一篇博文来介绍这个示例。你只需添加该博客的RSS种子到您的RSS Reader中即可。
应园友在这篇博文中的要求,我们项目组里的蒋里京同学已将VC++, VC#, VB.NET 编码规范 (微软一站式示例代码库) 翻译成中文。你可以在以下链接下载到中文版的编码规范:
http://1codechs.codeplex.com/releases/view/51227#DownloadId=148734
注:在这篇博文的评论中,园友还给出了不少技术方面的建议。由于时间紧迫,此版本的编码规范尚还没有根据那些技术意见做出相应调整。望您能谅解。
本文档为一站式示例代码库项目组所使用的C++ 以及 .NET 编码规范 。该规范源自于产品开发过程中的经验,并在不断完善。如果您发现一些最佳实践或者话题并没有涵盖在本文档中,请联系我们一站式示例代码库项目组 ,以不断充实完善本文档。
任何指导准则都可能会众口难调。本规范的目的在于帮助社区开发者提高开发效率,减少代码中可能出现的bug,并增强代码的可维护性。万事开头难,采纳一个不熟悉的规范可能在初期会有一些棘手和困扰,但是这些不适应很快便会消失,它所带来的好处和优势很快便会显现,特别是在当您接手他人代码时。
微软一站式示例代码库2010年9月6日更新
下载地址:http://1code.codeplex.com/releases/view/51868
如果您是第一次听说All-In-One Code Framework这个项目,请参阅主页上的相关介绍http://1code.codeplex.com/, 以及这两篇blog
All-In-One Code Framework:一站式微软开发技术框架解决方案
微软一站式开发技术框架解决方案 中文说明
Windows Shell 扩展 新示例
Context Menu 扩展
Property Sheet扩展
园子里和各大开发论坛有很多人询问如何使用.NET语言编写Windows Shell 扩展。在.NET 4.0出现之前,使用.NET语言编写Windows Shell扩展是不被官方支持的。你只能通过unmanaged C++进行开发。原因是一个进程只能host一个CLR runtime。假设Windows Shell已经加载了一个.NET 1.0/1.1编写的Windows Shell扩展,当你安装了一个.NET 2.0/3.0/3.5开发的Windows Shell扩展,后者将无法被载入。Jesse Kaplan, CLR team的一位资深项目经理,对此问题有更深入的解释:http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/1428326d-7950-42b4-ad94-8e962124043e。
幸运的是,.NET 4.0加入了CLR In-process Side-by-Side 特性。张羿写过一篇相当不错的介绍.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是可以多个并存的,也就是说V4.0,V5.0,v6.0,等等,都是可以和平共处在同一个进程内。这使得基于.NET Framework 4.0, 5.0, … 开发的managed Windows Shell 扩展成为可能。
说了这么多原理,但具体如何开发managed Windows Shell扩展呢?
目前网上演示使用.NET 4 开发Windows Shell 扩展的示例、文档几乎没有。难得找到的几个也存在一些问题,比如无法在x64的操作系统上正常加载。为此,微软一站式示例代码库项目组计划开发一系列的Windows Shell 扩展示例,演示.NET代码编写Context Menu Handler, Property Sheet Handler, Icon handler, Data handler, Drop handler, Drag-and-drop handler, Thumbnail Handler, Icon Handler, Icon Overlay Handler 等等。这次发布的示例包仅仅是这一系列示例的开始。我们提供了如何通过基于.NET 4.0的C#, VB.NET,还有native C++来编写Context Menu Handler。你可以在示例包的Visual Studio 2010 目录下找到他们。附在每个sample上的ReadMe.txt是对这个示例非常详细的文档。
Name |
Description |
Owner |
CppShellExtContextMenuHandler |
Shell context menu handler (C++) |
Jialiang |
CSShellExtContextMenuHandler |
Shell context menu handler (C#) |
Jialiang |
VBShellExtContextMenuHandler |
Shell context menu handler (VB.NET) |
Jialiang |
CppShellExtPropSheetHandler |
Shell property sheet handler (C++) |
Jialiang |
Azure 云计算 新示例
CSAzureXbap, VBAzureXbap
设想一个典型的云计算应用场景:你在云中部署一个服务,并且自云端向客户端分发软件,那些软件将与部署在云中的服务交互。
本示例正展示了以上场景。客户端软件是一个XBAP程序,而云中的服务则是一个部署在Windows Azure Web Role中的WCF服务。
Data Platform 新示例
CSEFPOCOChangeTracking, VBEFPOCOChangeTracking
这些事Entity Framework 4的示例。他们演示了如何使用与不使用变化跟踪代理来更新POCO实体对象的属性与关系。相关的MSDN文档可参阅 Tracking Changes in POCO Entities。
Windows Forms 新示例
CSWinFormTreeViewLoad, VBWinFormTreeViewLoad
此示例演示了怎样从一个DataTable生成一个TreeView关系树(例如员工关系树)。
我们使用Dictionary来收集并标识不同父节点的子节点集合List<TreeNode>。然后从上至下的按照每个父节点找出对应的Dictionary项,将其组装到这棵树中,如此循环检查下一层节点的子节点集合并进行组装
Silverlight 新示例
CSSL4WCFNetTcp and VBSL4WCFNetTcp
Silverlight4 支持 netTcpTransportBindingElement, 如此以来,我们有了一个新方式来实现全双工WCF. 在这个例子里,我们创建了一个天气报告订阅程序,演示了如何在Silverlight中调用netTcp 通讯的 WCF.
Windows Base 新示例
CppCheckProcessBitness, CSCheckProcessBitness, VBCheckProcessBitness
一个论坛里经常被问到的问题是:给定一个进程,如果编程知道这个进程是运行在32bit模式还是64bit模式下。CppCheckProcessBitness, CSCheckProcessBitness, VBCheckProcessBitness 演示了这个编程场景。其检查的逻辑是:
1. 所有运行在32位操纵系统上的进程必然都是32位的
2. 在64位操作系统赶上,32位进程可以运行在Wow64环境下。
1) 如果进程是 Wow64进程(IsWow64Process), 它是32位的。
2) 否则,是64位的。
在这个release中我们的团队完成了16篇示例的翻译工作。在接下来的日子里,我们会陆续翻译完成更多的例子。我们计划在2011年7月前总共翻译完成200篇示例。
下载: http://1codechs.codeplex.com/releases/view/51227
如果您对翻译内容有任何的意见或建议,欢迎Email 联系我们
新增中文版示例
ASP.NET
CSASPNETRssFeeds, VBASPNETRssFeeds
这个项目展示了如何使用ASP.NET新建一个RSS源. 示例中的AddArticle页面用来更新数据库. 我们可以插入, 编辑, 更新和删除一条记录, 即示例中的一份文献, 然后转到RSS页面显示更新. 通过使用XML命名空间写的各种类, RSS页面新建了一个能被用户订阅的RSS源, 这样用户可以在网站有任何变更时收到通知.
CSASPNETImageMap, VBASPNETImageMap
这个项目展示了如何使用ImageMap创建用C#语言编写的太阳系行星系统的说明. 当图片中的行星被单击时, 关于这个行星的简要信息将被显示在图片下面同时iframe将被导航到WikiPedia上关联的页面.
COM
ATLDllCOMServer, CSDllCOMServer, VBDllCOMServer
示例ATLDllCOMServer演示了在Visual Studio 2008中如何使用活动模板库(ATL)向导创建一个进程内组件对象模型服务器(COM Server)。使用ATL是旨在开发高效的,灵活的,轻量级的COM组件以及简化组件开发过程。ATLDllCOMServer叙述了一个ATL单线程单元(STA)中的一个简单对象,包括其属性、方法及事件。
Silverlight
VBSL3Text, CSSL3Text
本示例如何在Silverlight中通过c#语言使用文本。
包括以下特性:
- 创建一个简单的文本
- 使用Run以及LineBreak对象创建文本。
- 使用高级字体创建文本。
- 通过代码选中文本框中的所有内容。
CSADONETDataServiceSL3Client, VBADONETDataServiceSL3Client
本示例展示了如何在Silverlight中访问Ado.Net Data Services。示例中创建了3个代理对应了服务器端的3个不同的服务。分别使用了Ado.Net Entity Data Model,LinqToSQL Data Classes 以及非关系型数据库的普通类型作为数据源本示例展示如何通过访问REST类型服务(Ado.Net Data Services)来进行增删改查。使用的客户端代码都会由代理自动创建
Windows Forms
CSWinFormDesignerCustomPropertyTab, VBWinFormDesignerCustomPropertyTab
CSWinFormDesignerCustomPropertyTab代码演示如何创建自定义的Windows窗体设计时自定义属性选项卡。
Data Platform
SQLServer2005DB
一个SQL Server 2005数据库项目,用于与其他OneCode例子结合演示。
CSADONETDataService, VBADONETDataService
本示例展示了用3种不同的数据源建立ADO.NET Data Services。分别为 ADO.NET Entity Data Model, Linq to SQL Data Classes,以及 普通的非关系型数据。