随笔分类 - 技术类
摘要:Say what you will about the past ridiculousness of .NET Framework versioning, since the confusion of .NET 3.5SP1 they've been trying to get it right. ...
阅读全文
摘要:一、WPF为何需要命令我们已经知道WPF里已经有了路由事件,可以发布及传播一些消息,那为什么还需要命令呢?这是因为事件指负责发送消息,对消息如何处理则不管,而命令是有约束力,每个接收者对命令执行统一的行为,比如菜单上的保存,工具栏上的保存都必须是执行同样的保存。二、命令系统的基本元素命令(Comma...
阅读全文
摘要:在我们寻求帮助的时候,最不愿意听到的答复是:很抱歉,在当前版本的产品中还没有实现该功能... 在WPF中显示动态的GIF图像时便遇到了这样的问题,WPF中强大的Image控件却不支持动态的GIF(其只能显示第一帧).当然,我们可以说WPF强大的动画能力,让我们完全有理由抛弃传统的GIF动画,但如某种...
阅读全文
摘要:2012.12.18更新:修复下载链接已知WPF的Image元素只能显示GIF图片的第一帧,而MediaElement不能加载作为资源或内嵌的资源的GIF图片,所以网上有几种实现方法。我抄袭网上提供的方法,改头换面后作为自己的GifImage实现。本文的前半部分介绍我的GifImage实现;后半部分...
阅读全文
摘要:One of the mistakes I see people make (and have made myself) is assuming that you must choose exactly one ORM strategy for an entire database/applicat...
阅读全文
摘要:Welcome to NHibernateIf you're reading this, we assume that you've justdownloaded NHibernateand want to get started using it.This tutorial will talk y...
阅读全文
摘要:Build 4.0.0.Alpha1=============================** Known BREAKING CHANGES from NH3.3.3.GA to 4.0.0NHibernate now targets .Net 4.0. Many uses of set typ...
阅读全文
摘要:This article is dedicated to discussing the latest releases of the NHibernate and Entity Framework. NHibernate is (was?) a number one ORM Framework fo...
阅读全文
摘要:假如你喜欢原生的Sql语句,又喜欢ORM的简单,那你一定会喜欢上Dapper这款ROM.点击下载Dapper的优势:1,Dapper是一个轻型的ORM类。代码就一个SqlMapper.cs文件,编译后就40K的一个很小的Dll.2,Dapper很快。Dapper的速度接近与IDataReader,取...
阅读全文
摘要:AutoResetEvent 允许线程通过发信号互相通信。 通常,当线程需要独占访问资源时使用该类。线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号。 如果 AutoResetEvent 为非终止状态,则线程会被阻止,并等待当前控制资源的线程通过调用 Set 来通知资源可...
阅读全文
摘要:Process类的CloseMainWindow, Kill, CloseProcess.CloseMainWindow是GUI程序的最友好结束方式,从名字上就可以看出来它是通过结束主窗体,相当于用户点击窗体的关闭按钮或者按Alt + F4。它的本质就是向主窗体发送WM_CLOSE消息(Process.MainWindowsHandle可以返回主窗体的句柄)。这个可以在.NET Framework源代码中看出来:publicbool CloseMainWindow(){IntPtr mainWindowHandle =this.MainWindowHandle;//句柄是否为0if (main
阅读全文
摘要:前言:MEF不同于其他IOC容器(如:Castle)很重要的原因在于它使用了特性化编程模型(涉及到两个概念:“特性”和“编程模型”)。特性(Attribute):举例来说就是我们在开发过程中在类上标记的如:[Serializable]的标签。编程模型(Programming Model):MEF中的编程模型是定义 MEF 所操作的概念性对象集的特定方法。MEF默认使用特性化编程模型,但是用户也可自定义编程模型。MEF中导入、导出间的匹配均是通过特性来实现的。本文简单的介绍下MEF中得导入和导出。导入和导出基础:在上一篇文章中我们说过导出提供服务,而导入是使用服务。导入使用 Import特性声明
阅读全文
摘要:静态资源(StaticResource)和动态资源(DynamicResource)资源可以作为静态资源或动态资源进行引用。这是通过使用 StaticResource 标记扩展或 DynamicResource 标记扩展完成的。 StaticResource 通过替换已定义资源的值来为 XAML 属性提供值。 DynamicResource 通过将值推迟为对资源的运行时引用来为XAML 属性提供值。动态资源引用强制在每次访问此类资源时都重新进行查找。 通常来说,不需要在运行时更改的资源使用静态资源;而需要在运行时更改的资源使用动态资源。动态资源需要使用的系统开销大于静态资源的系统开销。例如以下
阅读全文
摘要:我们要在DisabledObsoleteMethod函数里限制具有“Obsolete”属性的方法调用,我们如何去做呢?在.Net中提供了一个"StackFrame"类用于表示当前线程上的函数调用堆栈中的某个具体函数,所以我们通过它就可继续编写我们的DisabledObsoleteMethod函数也许在某些场合下我们想知道自己的某个方法是被谁(哪个方法)调用的?比如下面的例子://////正常方法///staticvoidMethod1(){DisabledObsoleteMethod();}//////过期方法///[Obsolete]staticvoidMethod2()
阅读全文
摘要:2014年1月,CSDN携手《程序员》杂志发起了“2013年中国软件开发者薪资大调查”活动。本次调查活动一如既往地得到了国内近万名开发者踊跃支持,通过对这些问卷数据进行整理分析形成的调查报告,为我们了解国内软件开发者待遇水平、生存状态以及行业现状提供了支撑。参与本次调查的开发者遍布软件开发领域各条战线,其中来自软件工程师岗位的参与者占63.21%,高级软件工程师占15.42%,技术支持/维护工程师与高级软件架构师的比例同为1.95%。在已经走上管理岗位的开发者中,CTO/CIO/技术总监占1.29%,经理/主管级别的开发者占10.35%。《2013年中国软件开发者薪资调查报告》数据显示:201
阅读全文
摘要:看到这个标题,您可能会在脑中产生一个疑问:Adorner是什么?Adorner是WPF窗口中独立的一层,支持在界面元素之上执行独立的绘制及用户交互。可以说,Adorner在您的WPF程序中无处不在。在WPF中,从编辑框控件中光标的显示和选中效果的支持,到具有数据焦点的控件所具有的虚线外框,都是通过Adorner实现的。 什么是Adorner 鉴于您可能不熟悉Adorner这种组成,因此我在这里单独列出一节文字对其进行介绍。首先请您想象一下WPF如何对编辑框中光标和选中效果的支持: 按照较为常见的WPF开发方式,您可能需要为这两种情况分别提供一个非常繁琐的解决方案。 对于对光标的支持而言,...
阅读全文
摘要:People often find it difficult to see the difference between events and delegates. C# doesn't help matters by allowing you to declarefield-like eventswhich are automatically backed by a delegate variable of the same name. This article aims to clarify the matter for you. Another source of confusi
阅读全文
摘要:C#里现在有3个Timer类:System.Windows.Forms.TimerSystem.Threading.TimerSystem.Timers.Timer这三个Timer我想大家对System.Windows.Forms.Timer已经很熟悉了,唯一我要说的就是这个Timer在激发Timer.Tick事件的时候,事件的处理函数是在程序主线程上执行的,所以在WinForm上面用这个Timer很方便,因为在From上的所有控件都是在程序主线程上创建的,那么在Tick的处理函数中可以对Form上的所有控件进行操作,不会造成WinForm控件的线程安全问题。1、Timer运行的核心都是Sys
阅读全文
摘要:近来,Maurits的一篇博文“Why Scrum will never work”一石激起千层浪。著名技术分享网站酷壳(http://coolshell.cn/articles/5044.html)翻译了这篇文章,我的好朋友,网站创始人陈浩还加入了他的一些想法。直到我看到在知乎(http://www.zhihu.com/question/19793669)上的一个问题之前,我也认为大多数软件开发团队已然知道敏捷是什么,可以给团队带来什么。他们可能完全不在乎别人怎么看敏捷。(注:知乎是李开复老师创新工场孵化的类似于Quora的一个中文问答网站)说一下我对Maurits9个“Scrum永远不能成
阅读全文
摘要:这篇文章的原文在这里(原文链接)(下文不是全译,也不是部分译,我只是把其总结,有我自己的发挥,但是原意大致不变),这篇文章完全是在调侃Scrum的,作者第一段就是一个免费声明,其说他是Scrum和其它敏捷方法的big fan,他也认为Scrum 100% 对 软件开发可行。作者使用Scrum 5年了,也公开作过几次敏捷的分享会。他觉得写这篇文章只是为了好玩,因为他们戴上Edward de Bono的black hat(黑礼帽 – 是6个思考之帽中的一种——负面思考,思考事物的负面因素,这样才知道:它会起作用吗?缺点是什么?它有什么问题?为什么不能做。)因为本人经常站在Agile的风口浪尖,所以
阅读全文