Welcome to All-In-One Code Framework!

Jialiang's Blog

统计

留言簿(1)

积分与排名

友情链接

阅读排行榜

评论排行榜

CodeFx: 微软一站式开发技术框架 2009-9-17 新增代码示例简介

微软一站式开发技术框架2009年9月17日更新。下载地址:

http://cfx.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33087

如果您是第一次听说All-In-One Code Framework这个项目,请参阅主页上的相关介绍http://cfx.codeplex.com/,以及这两篇blog

CodeFx:一站式微软开发技术框架解决方案

微软一站式开发技术框架解决方案 中文说明

 

CSWin7TaskbarAppID,VBWin7TaskbarAppID,CppWin7TaskbarAppID
Application User Model ID (AppID) 是Windows 7任务栏新引入的一大特性。拥有同一个AppID的应用程序,其在Windows 7的任务栏按钮会被定义在同一个分组中,彼此重叠在一起。同时AppID也是定义应用程序Jump List的重要依据。CSWin7TaskbarAppID、VBWin7TaskbarAppID演示了如何通过Windows API Code Pack设置进程级别的AppID,以及修改进程中特定窗口的AppID。CppWin7TaskbarAppID则演示了使用C++和Windows API设置进程级别的AppID,以及修改进程中特定窗口的AppID,此范例需要安装Windows 7 SDK才能成功编译。

CSWin7TaskbarOverlayIcons,,VBWin7TaskbarOverlayIcons,CSWin7TaskbarProgressbar,VBWin7TaskbarProgressbar
应用程序可以在其Windows 7的任务栏按钮上设置Overlay Icons与Progressbar以显示其不同的工作状态与任务进度。CSWin7TaskbarOverlayIcons,,VBWin7TaskbarOverlayIcons,CSWin7TaskbarProgressbar,VBWin7TaskbarProgressbar演示了如何应用Windows API Code Pack设置应用程序任务栏按钮的Overlay Icons以及Progressbar的进度与状态。

CSWin7TaskbarThumbnail,VBWin7TaskbarThumbnail
应用程序可自定义其任务栏Thumbnail预览效果和Thumbnail工具栏按钮是Windows 7新引入的特性。CSWin7TaskbarThumbnail,VBWin7TaskbarThumbnail演示了如何应用Windows API Code Pack设置应用程序任务栏Thumbnail预览的效果以及自定义Thumbnail工具栏按钮。

CSWin7TaskbarJumpList,VBWin7TaskbarJumpList
Jump List是Windows 7新引入的又一特性。通过Jump List,用户可以更方便快捷地找到自己近期或经常通过某一个应用程序打开的文件。应用程序还可以在Jump List中添加用户任务以方便用户打开其他相关的应用程序,在Jump List中自定义类别、文件项目、文件链接。CSWin7TaskbarJumpList,VBWin7TaskbarJumpList演示了如何以AppID注册应用程序以及文件句柄,通过Window API Code Pack设置Jump List用户任务和自定义Jump List类别、文件项目和文件链接。

XAMLSL3SplashScreen
XAMLSL3SplashScreen 演示了如何为Silverlight程序设置自定义的启动画面。当Silverlight程序正在下载时,默认情况下会有一个自带的启动画面。如果想要改变这个启动画面,我们可以自己定义一个。此外,在ReadMe.txt中还谈到了一些使用SplashScreen的限制。

CSSL3Animation, VBSL3Animation
CSSL3Animation和VBSL3Animation演示了如何在Silverlight中创建动画效果。由于Silverilght中自带的动画效果类很多,不可能在一个项目中全部涉及。因此项目中只包括了Point和 Double数据类型相关的动画。其他动画效果的代码大同小异,不在此赘述。
项目演示了:
•    如何通过XAML来进行PointAnimation
•    如何通过Code Behind来进行PointAnimation
•    如何用PointAnimation来对自定义的属性做动画效果
•    如何使用Silverlight 3新功能: Easing
•    如何使用关键帧做出动画效果

CSSL3DeepZoom, VBSL3DeepZoom
Silverlight deep zoom 提供了一种高效的方式来展示高分辨率的图片以及大量图片的集合。用户在一开始下载的是大型图片(集合)的缩略图,这个缩略图的分辨率比较低。随着他们渐渐放大图片上的某一部分,分辨率较高的图片中的那一部分会被下载到客户端。此外,你还可以在自己的程序中对deep zoom进行大量的自定义,使deep zoom的场景完美地融合到你的程序中。这个例子展示了一些常见的deep zoom的自定义方法。它包括:

•    使用Deep Zoom Composer来创建deep zoom场景。
•    下载并解析metadata。
•    在一个collection场景中实现hit test。
•    创建一个非位图的UIElment,并且让它和MultiScaleImage一起移动,协同缩放。
•    在一个collection场景中移动一张sub image。
•    使用DeepZoomTools.dll在代码中动态创建deep zoom场景。

CSSL3WriteableBitmap
WriteableBitmap是Silverlight 3的一个新功能。你可以用它来操作位图中的每一个像素。你可以想到很多很多应用场景,不过,出于安全性考虑(例如,Silverlight不允许你写使用指针的unsafe代码),和同样的桌面程序相比,你可能需要写更多的代码。这个例子包括3个小的示例,展示了使用WriteableBitmap的常见场景:

•    Gun shoot。你可以选择两张不同大小的图片。该示例将会把他们缩放到相同的分辨率,并且将一张图片覆盖于另一张上方。当你点击上方的图片开枪时,一个枪痕将会显现,并且你会射穿上面那幅画,从而可以看到下面的画的内容。该示例展示了如何将不同分辨率的元图片缩放到相同的分辨率,以及如何修改某个单独的像素。
•    Fill color。该示例实现了绘图软件中常见的一个场景:油漆桶,也就是为某块区域填充上同样的色彩。它展示了如何在Silverlight WriteableBitmap中应用常见的图形学算法,并且还通过模拟CLR调用堆栈的方式解决了过深的递归可能造成的stack overflow问题。
•    Screenshot。该示例展示了WriteableBitmap的另一功能:创建屏幕截图,并且把结果保存为一个bmp文件。它也说明了该功能的一些局限性。

为了发掘出WriteableBitmap的强大潜力,你需要一些图形学的知识。例如,你必须掌握位图是如何在内存中存储的,必须了解关于像素和颜色的基本知识,等等。为了提高效率,你还必须学会位移运算。

CSSL3CustomControl
CSSL3CustomControl 是一个silverlight library 项目。 通过实现一个可显示高亮文本的HighLightTextBlock,项目展示了如何创建自定义控件。以及通过关联项目XAMLSL3StyleControlTemplate,展示如何利用style来更改HighLightTextBlock外观。

CSADONETDataServiceSL3Client, VBADONETDataServiceSL3Client
CSADONETDataServiceSL3Client和VBADONETDataServiceSL3Client 演示了如何在Silverlight中访问ADO.NET Data Services。在项目中,使用ADO.NET Data Services暴露出的URL来生成代理类,然后通过代理类与服务器端进行通信,进行查询、修改、添加、删除的操作。在项目中一共生成了三个代理类,分别对应服务器端程序CSADONETDataService中的三个服务。此外,项目中的ReadMe.txt还介绍了一些在使用Silverlight访问ADO.NET Data Services时可能遇到的情况。

CSASPNETMVCFileDownload
这是CodeFx中第一个ASP.NET MVC例子。10月份我们会有更多的ASP.NET MVC示例问世。CSASPNETMVCFileDownload演示了一个文件下载的例子。其中包括注册自定义URL路由,以及自定义ActionResult。

CSASPNETGridView, CSASPNETDataPager, CSASPNETMenu
这三个示例分别演示了ASP.NET GridView, DataPager, Menu控件的用法。

VBASPNETMasterPage
这个例子示范了在ASP.NET模板页的使用。使用 ASP.NET 母版页可以为应用程序中的页创建一致的布局。单个母版页可以为应用程序中的所有页(或一组页)定义所需的外观和标准行为。然后可以创建包含要显示的内容的各个内容页。当用户请求内容页时,这些内容页与母版页合并以将母版页的布局与内容页的内容组合在一起输出。

CSASPNETOutputCache
CSASPNETOutputCache演示了ASP.NET Output Cache以增加页面响应速度。相关blog: http://blogs.msdn.com/codefx/archive/2009/09/07/asp-net-output-cache.aspx

VBListFilesInDirectory
这是CSListFilesInDirectory示例的VB.NET版本。其源于一个在论坛里经常被问到的问题:.NET BCL中的Directory.GetFiles 方法可以枚举某个文件夹下的文件,但它有个很致命的缺点。Directory.GetFiles是等枚举到所有文件以后才会返回。如果该文件夹下的文件很多,或者这是一个网络文件夹,即访问速度比较慢,Directory.GetFiles就会hang在那里。你可能就需要同步地等待它的返回。一个理想的解决方案是,每枚举到一个文件,就立刻返回这个文件,而不是等待枚举到所有文件。CSListFilesInDirectory和VBListFilesInDirectory演示了如何做到这一点。

ATLShellExtIconHandler, ATLShellExtIconOverlayHandler
这两个Windows Shell Extension的例子分别演示了Icon HandlerIcon Overlay Handler的开发。

CSVSPackage
VSPackages 是用来扩展Visual Studio集成开发环境的模块。通过VSPackage, 我们可以提供自定义的UI元素,比如工具栏,定制的代码编辑器以及UI设计器,还通过VSPackage来提供自定义的service。实际上,VSPackage是构成Visual Studio的最基本的单元,Visual Studio 本身就是由众多VSPackage构成的。本例就是演示如何通过Visual Studio Integration Package Wizard 来创建一个简单的VSPackage。在以后的CodeFx示例中,我们还将增一些示例来说明如何通过VSPackage来扩展Visual Studio。

CSVSPackageState
此示例展示了插件选项状态持久化,和属性窗口状态。此示例并不包含解决方案和项目文件的状态管理,它们将会在项目文件插件示例中演示。

•    工具/选项 页面

在Visual Studio中选择 工具/选项 目录打开选项窗口。树状导向面板中包含了选项分类和每个分类中的选项页面。当你选择页面时,选项出现在右边面板。此页面使用户可以改变选项值,也就是VS插件的状态。DialogPage类实现了IProfileManager,它提供了选项页面和用户设定的持久化功能。LoadSettingsFromStorage和SaveSettingsToStorage方法默认实现了把属性存入注册表中用户部分,前提是属性是可以被转化为字符串形式。
clip_image001

•    属性窗口

在此示例中,我们将使用ToolWindow来展示属性窗口。当用户选中Visual Studio中的对象时, 对象上所有公共的属性都会像是在属性窗口中。如要用代码来选中一个对象时,需要将此对象放入一个选择容器中。我们使用STrackSelection 服务来通知Visual Studio。
clip_image001[4]

 

最后,如果您对新版的CodeFx有任何建议和反馈,请在此提出。谢谢!

posted on 2009-09-21 17:44 Jialiang 阅读(1366) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


Welcome to All-In-One Code Framework!