摘要: 为了和TFS更好集成,自动化编译、测试、发布。通常我会在Debug模式下使用NUnit、Release模式下基于Visual Studio Unit Testing。在Debug模式下定义一个条件编译符号:NUNIT,部分Attribute声明为兼容Visual Studio Unit Testing。比如:1 #if !NUNIT2 using Microsoft.VisualStudio.TestTools.UnitTesting;3 #else4 using NUnit.Framework;5 using TestClass = NUnit.Framework.TestFixtureAt 阅读全文
posted @ 2012-08-11 12:04 junchu25 阅读(395) 评论(0) 推荐(0) 编辑
摘要: Silverlight和服务端进行通信前会向服务端请求一个安全策略文件,在Silverlight 3.0中这个请求端口为943、Silverlight 4.0也可以是80。请求的模式取决于你的应用程序中SocketAsyncEventArgs.SocketClientAccessPolicyProtocol所指的值为Http或Tcp。如果是Http,需要在IIS中为80的站点添加net.tcp类型的绑定,并指明端口(4502 - 4530)。Tcp则需要一个应用程序负责监听943端口,当请求为时返回你的策略文件内容。策略文件的格式可以如下:<?xml version="1.0& 阅读全文
posted @ 2012-08-11 12:00 junchu25 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 比较明显的两个改进:选择进程 -> 属性 -> threads -> stack可以查看托管frame、System Information的图例接近Windows 8风格。下载地址:http://technet.microsoft.com/en-us/sysinternals/bb896653 阅读全文
posted @ 2012-08-11 11:51 junchu25 阅读(158) 评论(0) 推荐(0) 编辑
摘要: PDC 2010 Hejlsberg的演讲中我们看到了VB.NET、C#新的简化异步编程的方式(可以下载新的Async CTP体验)。之前的TPL(Task Parallel Library)简化了并行编程。工业语言的飞速发展大大改进、简化了开发人员的编程方式。不仅是微软平台的托管语言,非托管语言也始终保持着一定程度的进化,我想通过两三篇文章来讲述Visual C++ 2010并行编程相关的内容。在介绍Visual C++ 2010的ppl之前,先简单介绍两个比较重要的新语法特性:1、auto关键字Visual C++ 2010中的auto关键字不再是以前简单的自动变量的概念,它被用于简化变量 阅读全文
posted @ 2012-08-11 11:44 junchu25 阅读(709) 评论(0) 推荐(0) 编辑
摘要: 在做一些产品时往往需要通过一些工具生成API文档供第三方开发人员查阅。在这里我主要讲述的是基于jsdoc-toolkit如何生成javascript文档、编写javascript时应当如何编写符合jsdoc-toolkit可阅读的注释。首先下载jsdoc-toolkit => http://code.google.com/p/jsdoc-toolkit/,解压缩到任意目录。建议编写一个批处理方便生成文档:java -jar jsrun.jar app/run.js -a -p -t=templates/jsdoc js/*.js(-p用来输出@private修饰的变量、函数、类型),然后 阅读全文
posted @ 2012-08-11 11:24 junchu25 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 下载gtest并使用visual studio 2010编译它。编译成功后再Visual Studio中添加gtest的include目录。创建一个Win32 Console项目,添加gtest的头文件:#include <gtest/gtest.h>项目属性添加gtest相关联的库链接目录:1、Linker -> General -> Additional Library Directories -> 设置为gtest编译后目录2、Linker -> Input -> Additional Dependencies -> 添加gtestd.li 阅读全文
posted @ 2012-08-11 11:19 junchu25 阅读(421) 评论(0) 推荐(0) 编辑
摘要: Kinect for Windows SDK只能够在Windows 7以上版本安装,Windows Server 2008(Windows Vista内核)要继续安装它需要用一个hex的编辑器修改msi里判断操作系统版本的脚本。搜索VersionNT字符串会看到有一个代码段是判断VersionNT>=601,将1修改为0(600是Windows Vista)。 阅读全文
posted @ 2012-08-11 11:18 junchu25 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 使用DirectUI需要directuiCom.dll,包含IDirectUI.h和DirectuiDef.h。在你的应用程序中初始化CLSID_DirectUI,并获取IDirectUI(IID_IDirectUI)接口。具体初始化方式可以参考官网示例。DirectUI的界面定义分为xml + script。xml定义界面的布局、样式、资源。script文件定义相关消息的映射处理,并通过Window.OnSkinCmd转发相应的消息到指定的函数。假设这里你使用的技术是ATL,DirectUI定义了WM_SKIN_COMMAND消息,你可以添加对应的MESSAGE_HANDLER:MESSAG 阅读全文
posted @ 2012-08-11 11:15 junchu25 阅读(877) 评论(0) 推荐(0) 编辑
摘要: WriteableBitmap可以对元素产生贴图,而这个元素并不需要被实际添加到呈现元素中。Canvas的特点是在给定的宽度、高度显示元素,如果元素超出给定的viewport就不可见。对于一个元素来说裁剪左上部分的图片可以通过Canvas的SetLeft和SetTop函数或者对元素进行移动的变换(TranslateTransform)。而右下角的部分可以通过显示设置Canvas的宽度、高度来定义。比如你可以编写这么一个扩展函数来将元素裁剪到一个Canvas: 1 /// <summary> 2 /// 剪辑为画布 3 /// </summary> 4 /// <p 阅读全文
posted @ 2012-08-11 11:12 junchu25 阅读(381) 评论(0) 推荐(0) 编辑
摘要: HttpResponse的Filter属性允许开发人员定义一个派生于Stream的类型,修改Http Entity Body。比如原来的Web应用程序并没有添加兼容性标记,许多页面也并没有使用Master,各处修改增加了许多工作量。编写一个HttpModule,在Init函数中订阅HttpApplication的ReleaseRequestState事件。1 // <summary>2 /// 初始化3 /// </summary>4 /// <param name=”context”>上下文</param>5 public void Init( 阅读全文
posted @ 2012-08-11 11:11 junchu25 阅读(3038) 评论(3) 推荐(0) 编辑
摘要: Silverlight不同于WPF,自定义Cursor需要通过其它方式实现。我们可以为一个元素定义一个CursorBehavior,建议使用自定义Cursor的Panel为Canvas,否则需要对自定义的Cursor做TranslateTransform。附件Behavior的时候,为Canvas添加一个Image元素,默认Visibility为Collapsed。Image元素的ZIndex值要较大,这样可以确保始终在其它元素前面。订阅Canvas的MouseMove和MouseLeave事件,MouseMove事件产生后用来定位Image的坐标,而MouseLeave事件产生后用来隐藏Im 阅读全文
posted @ 2012-08-11 11:06 junchu25 阅读(593) 评论(0) 推荐(0) 编辑
摘要: 在IE9下如果object标签的classid没有值则它的data数据无法加载,如果object本身没有classid可以使用它的type,比如text/x-scriptlet。 阅读全文
posted @ 2012-08-11 10:51 junchu25 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 记得在以前的博客里就提到过probing的privatePath属性可以定义当前AppDomain搜索程序集文件的目录。比如当前应用程序使用A.dll,但是A.dll并没有直接存放在AppDomain的根目录下,而是存储于子目录。在应用程序配置文件中添加probing privatePath可以解决 阅读全文
posted @ 2012-08-11 10:48 junchu25 阅读(4277) 评论(0) 推荐(0) 编辑
摘要: Unity提供了一种默认注入CallHandler的机制,只需要开发人员提供继承于HandlerAttribute抽象类,并实现CreateHandler函数,它返回一个实现ICallHandler的类型。你可以通过上下文传递的IUnityContainer创建对应的ICallHandler实现。看 阅读全文
posted @ 2012-08-11 10:45 junchu25 阅读(292) 评论(1) 推荐(0) 编辑
摘要: Unity可以定于拦截的匹配策略,只要你实现了IMatchingRule接口。我们可以根据实际中框架的不同需求,开发不同的MatchingRule。比如Unity自带的TypeMatchingRule只能够匹配给定的类型,但是无法匹配当前类型的基类型。只要当前类型或者它继承的类型层次结构上等于某个特 阅读全文
posted @ 2012-08-11 10:44 junchu25 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 企业库默认提供了AuthorizationCallHandler、ExceptionCallHandler、LogCallHandler、PerformanceCounterCallHandler、ValidationCallHandler。但是你会发现你无法直接通过Unity提供的AddCallH 阅读全文
posted @ 2012-08-11 10:42 junchu25 阅读(339) 评论(0) 推荐(0) 编辑
摘要: Unity提供了丰富的拦截匹配策略,同时它也提供了ApplyNoPoliciesAttribute用于对特定的成员不应用拦截策略。看一个简单的示例: MyObject类型的DoWork函数不会被拦截。 阅读全文
posted @ 2012-08-11 10:41 junchu25 阅读(189) 评论(0) 推荐(0) 编辑
摘要: Unity提供了匹配多个Type的规则TypeMatchingRule类型。和TagAttributeMatchingRule的tagToMatch参数一样,TypeMatchingRule的参数typeName一样不支持通配符。看一个简单的示例: 配置文件如下: 阅读全文
posted @ 2012-08-11 10:40 junchu25 阅读(345) 评论(0) 推荐(0) 编辑
摘要: Unity通过TagAttribute显示定义需要被拦截注入的成员,TagAttributeMatchingRule类型用来匹配该规则。需要注意的是TagAttributeMatchingRule不支持通配符。看一个简单的例子: 配置文件定义如下: 阅读全文
posted @ 2012-08-11 10:36 junchu25 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 之前提到Unity提供的ParameterTypeMatchingRule无法定义返回值,ReturnTypeMatchingRule就是用来完成限制这个条件。看一个简单的示例: MyObject中只有函数DoWork的返回值匹配了定义,配置文件定义如下: 阅读全文
posted @ 2012-08-11 10:34 junchu25 阅读(301) 评论(0) 推荐(0) 编辑