Kerwen Blog

Stay Hungry Stay Foolish

利用Lazy 实现延迟初始化

在.NET4.0中,可以使用Lazy 来实现对象的延迟初始化,从而优化系统的性能。延迟初始化就是将对象的初始化延迟到第一次使用该对象时。延迟初始化是我们在写程序时经常会遇到的情形,例如创建某一对象时需要花费很大的开销,而这一对象在系统的运行过程中不一定会用到,这时就可以使用延迟初始化,在第一次使用该对象时再对其进行初始化,如果没有用到则不需要进行初始化,这样的话,使用延迟初始化就提高程序的效...

利用Lazy 实现延迟初始化

在.NET4.0中,可以使用Lazy 来实现对象的延迟初始化,从而优化系统的性能。延迟初始化就是将对象的初始化延迟到第一次使用该对象时。延迟初始化是我们在写程序时经常会遇到的情形,例如创建某一对象时需要花费很大的开销,而这一对象在系统的运行过程中不一定会用到,这时就可以使用延迟初始化,在第一次使用该对象时再对其进行初始化,如果没有用到则不需要进行初始化,这样的话,使用延迟初始化就提高程序的效...

MEF 学习笔记

MEF,全称Managed Extensibility Framework(托管可扩展框架). MEF是专门致力于解决扩展性问题的框架,MSDN中对MEF有这样一段说明:   Managed Extensibility Framework 或 MEF 是一个用于创建可扩展的轻型应用程序的库。 应用程序开发人员可利用该库发现并使用扩展,而无需进行配置。 扩展开发人员还可以利用该库轻松地封装代...

WPF 使用 Converter

WPF 绑定中Converter的应用 在WPF 经常用到绑定,如果绑定的源数据和目标属性是同类型的则不需要转换, 如果是不同类型的数据我们要怎么做呢?比如有一个文本框,一个按钮,我一个文本框里输入一个的数字用来代表颜色,1表示“红色”,2 表示“绿色”,3表示“蓝色”。我输入对应的数字,按钮的文字显示对应颜色。 显然这个不是同类型的数据:文本框的数据是String类型,而按钮的文字颜...

TCC/LE 学习笔记

TCC官网

WPF中的视觉树和逻辑树

可视化树 可视化树代表你界面上所有的渲染在屏幕上的元素。可视化树用于渲染,事件路由,定位资源(如果该元素没有逻辑父元素)等等等等。向上或者向下遍历可视化树可以简单的使用VisualTreeHelper和简单的递归方法。 然后,还是有个小别扭让它变得复杂。任何承继自ContentElement的东西都可以在UI上显示,但其实并不在可视化树中。WPF会假定这些元素也在可视化树中,来保持事件路由...

MSBuild Community Tasks 学习笔记

通常我们在做Daily Build时候我们需要编写项目的一堆post build脚本,复杂一点的定制化功能我以前使用NANT来完成。 MSBuild Community Tasks来定制化Post Build脚本。MSBuild原生Task+社区的支持=主流 1、首先到如下网址下载最新版本, https://github.com/loresoft/msbuildtasks 在项目...

MSBuild 学习笔记

MSBuild 全称(Microsoft Build Engine) 是 Microsoft 和 Visual Studio的生成系统。它不仅仅是一个构造工具,应该称之为拥有相当强大扩展能力的自动化平台。 MSBuild平台的主要涉及到三部分:执行引擎、构造工程、任务。 其中最核心的就是执行引擎,它包括定义构造工程的规范,解释构造工程,执行“构造动作”; 构造工程是用来描述构造任...

在.NET环境中实现每日构建

每日构建(Daily Build)也可称为持续集成(Continuous Integration),强调完全自动化的、可重复的创建过程,其中包括每天运行多次的自动化测试。每日构建的作用日益显得重要。它让开发者可以每天进行系统集成,从而减少了开发过程中的集成问题。 在.NET环境下建立每日构建可以使用一系列开源工具: Nant: 完成代码的自动编译,自动运行测试工具。http://nan...

WCF 双工通信

双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息。基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合。双工MEP又具有一些变体,比如典型的订阅-发布模式就可以看成是双工模式的一种表现形式。双工消息交换模式使服务端回调(Callback)客户端操作成为可能。 请求过程中的回调 这是一种比较典型的双工消息交换...