代码改变世界

微软一站式示例代码库 2010年12月更新

2010-12-14 13:36  Jialiang  阅读(...)  评论(...编辑  收藏

微软一站式示例代码库英文原版2010年12月13日更新

 

下载地址:http://1code.codeplex.com/releases/view/57459#DownloadId=185534

 

最新示例代码索引(按技术分类,且可供你下载单个示例包):http://1code.codeplex.com/wikipage?title=All-In-One%20Code%20Framework%20Sample%20Catalog

 

如果您是第一次听说All-In-One Code Framework(一站式示例代码库)这个项目,请参阅主页上的相关介绍http://1code.codeplex.com/, 以及这段视频:http://v.youku.com/v_show/id_XMjIwODc0MjY0.html

 

ASP.NET 新示例

 

VBASPNETAJAXWebChat and CSASPNETAJAXWebChat

我们大多数人都有在网络上和朋友聊天的经验。因此,我们可能想知道如何做一个网络聊天应用程序,这似乎是相当复杂的。但是ASP.NET为我们提供了一个方便、可及的方法。现在我们将开始知道如何利用神奇的Ajax技术建构自己的网络聊天室。

其原理很简单比较。正如我们都知道的,基础的聊天应用程序需要4个基础的控件:一个List控件来显示聊天室的成员,一个List控件来显示消息列表,一个TextBox控件和一个按钮,输入并发送消息。用户输入文本信息,然后再按下发送按钮,将信息发送到服务器。消息列表将更新,以每2秒的频率,从服务器获得最新的消息列表。

要知道,我们很难做出一个AJAX网络聊天就像一个Windows窗体应用程序,因为服务器不能保持一个Web请求。因此,一个事件之间客户端和服务器端通信无法实现很多。常见的解决方法是让每几秒钟Web请求的服务器端检查是否已更新。但另一种技术称为Comet使其成为可能。但它与AJAX的不同,将不会在此Sample详细说明。有关Comet的详细资料,我们可以从我的参考列表中找到线索。

 

CSASPNETCurrentOnlineUserList and VBASPNETCurrentOnlineUserList

本示例模拟一个需要显示当前实时在线用户信息的系统。事实上Membership.GetNumberOfUsersOnline 方法可以得到系统当前在线人数,而且Membership.GetUser(string userName).IsOnline 属性可以很方便的判断该用户是否在线。然而很多asp.net项目没有使用membership,一般都自己开发用户体系。因此,这个示例解释如何在不使用membership的情况下显示当前实时在线用户的信息。

使用session变量可以判断用户是否在线或超时,所以很多项目都趋向于使用Session_End事件去标记用户下线,而然这可能不是一个最好的方法,因为这个方法不能精确的查明用户是否在线,另外Session_End 事件只在InProc session模式下可用。如果你把session 状态存储在数据库中,Session_End事件将不会执行。

对于上述问题,我们需要把当前在线用户的信息存储在一个全局的DataTable或数据库中,在本示例中,定义了一个全局DataTable来存储在线用户的信息,在页面中使用XmlHttpRequest,按照一定的时间间隔来检测用户是否在线和更新用户的最后操作时间。本示例通过检测用户最后操作时间,自动从全局DataTable中删除不在线用户的信息。

示例截图:

  1. 登陆页面:

    初始化全局DataTable,用户登陆后,在DataTable中加入该用户信息。

     

  2. 当前实时在线用户列表:


    在页面中使用XmlHttpRequest,按照一定的时间间隔来检测用户是否在线和更新用户的最后操作时间。

     

  3. 如果用户不点击注销直接关闭页面,本示例通过检测用户最后操作时间,自动从全局DataTable中删除不在线用户的信息。用户在线列表将是如下结果:

 

CSASPNETIPtoLocation

这一示例演示了如何使用一个第三方的Web Service查询一个IP地址所对应的实际地理信息。基于http://freegeoip.appspot.com/提供的服务,我们分别可以得到三种不同的格式所呈现的数据:XML,JSON和CSV。我们要做的只是将我们已经得到的IP地址作为参数传到服务器就可以得到包含国家,区域,城市名称以及邮编和经纬度的具体信息。

 

CSASPNETBackgroundWorker

有时候我们会做一个需要很长时间才能完成的操作. 这个操作会停止服务器响应, 页面保持空白直到操作完成. 在这中情况下, 我们想让这个操作运行在后台, 并且在页面上, 我们想显示进度条来表示操作的运行进度. 最后的结果是, 用户能知道一个后台操作正在运行, 并且知道它现在的进度.

 

CSASPNETInheritingFromTreeNode

在Windows窗口的TreeView控件, 每个节点都有一个用来保存任何实体的属性叫Tag. 有时候, 我们想在ASP.NET的TreeView控件里也有同样的特点. 这个项目制作了一个名为CustomTreeView的自定义TreeView控件来实现这个目标.

 

CSASPNETRemoteUploadAndDownload and VBASPNETRemoteUploadAndDownload

该示例是应客户在示例代码请求服务中提的需求而编写出来的。

在 .NET Framework 2.0 以及更高版本中,有了支持HTTP和FTP协议传输的轻量级类库。通过使用这些类,我们可以实现对指定服务器资源进行远程上传及下载的功能。此示例创建了这个场景,演示了如何对指定服务器(HTTP或FTP)资源进行远程上传及下载。

 

CSASPNETImageEditUpload and VBASPNETImageEditUpload

此示例将向您介绍如何通过GridView以及FormView"联动",对一个普通的图片(jpg,png,gif或者是bmp格式)进行插入、编辑以及更新的操作。我们主要使用了两个不同的SqlDataSource,对同一个数据库,分别和GridView和FormView进行绑定,产生"级联"效应;同时采用自定义ImageHandler方式对不同图片格式进行编码解码,以及使用上下文输出基于不同格式的图片流,同时通过FormView_ItemInserting, FormView_ItemUpdating事件对图片流(binary形式)进行显示赋值,以便同步添加或者更新数据,使其显示和数据库中存储的图片流保持同步。

 

CSASPNETCMD and VBASPNETCMD

本示例演示了如何在ASP.NET中运行批处理文件或者命令(命令行)及其交互.你可以通过上传一个批处理文件,或者直接键入命令行命令, 单击运行按钮后可以在输出框中看到输出或者报错信息。

 

WebBrowser 控件,Network,等Windows General的新示例

 

CSWebBrowserSuppressError and VBWebBrowserSuppressError

这个示例演示了如何让WebBrowser控件忽略错误, 例如脚本错误,导航错误等。

 

CSWebBrowserWithProxy and VBWebBrowserWithProxy

这个示例演示了如何让WebBrowser使用自定义的代理服务器。

 

CSWebDownloadProgress and VBWebDownloadProgress

这个示例演示了如何显示文件的下载进度. 同时还提供了开始, 暂停,继续以及取消的功能。

 

CppSetDesktopWallpaper, CSSetDesktopWallpaper and VBSetDesktopWallpaper

这些代码示例演示了如何以编程方式设置桌面壁纸。其中用到了SystemParametersInfo这个API。

 

CSWindowsServiceRecoveryProperty and VBWindowsServiceRecoveryProperty

WindowsServiceRecoveryProperty实例描述怎样使用ChangeServiceConfig2函数来配置windows服务的"恢复"页属性值,包括vista之后加入的新属性的配置。

 

Office 开发新示例

 

CSOneNoteRibbonAddIn and VBOneNoteRibbonAddIn

在Office产品(如Word, Excel, Outlook, Access等)插件开发当中唯独OneNote的官方文档和示例相对比较缺乏。在我们新推出的示例代码请求服务中,不少开发人员希望我们能演示如何开发OneNote的插件。对此,一站式示例代码库项目组提供出这套OneNote 插件的代码示例,描述了如何编写一个最基本的OneNote插件,以及使用OneNote的Object Model获取当前notebook的一些基本信息。

 

Windows Shell 新示例

 

CppShellExtPreviewHandler, CSShellExtPreviewHandler and VBShellExtPreviewHandler

在过去两个月,我们陆续完成了Shell Context Menu Handler, Infotip Handler, Thumbnail Handler的示例。在这次release中,我们新加入了Preview Handler的示例代码。所谓的preview handler,就是允许你自定义某种文件类型在Windows Vista/Windows 7 资源浏览器的Preview pane中的显示。在我们的示例中,你将看到我们对.recipe文件提供了一个preview handler。该preview handler抽取出被选中.recipe文件内嵌的一种图片和该recipe的title,comments信息,并将这些信息显示在preview pane里。

 

除此之外,应客户需求,我们对所有已发布的Shell Extension Handler的示例代码进行了更新,提供了Shell Extension Handler的安装项目(Setup Project),允许你方便地部署这些handler到最终用户的机器上。

 

下载:http://1code.codeplex.com/releases/view/57459#DownloadId=185534

 

 

最后,感谢园子里的朋友的一贯支持。如您对这些示例有任何建议,请联系我们: onecode@microsoft.com