10 2011 档案
摘要:说的是Framework如何体贴程序员,而非C#语言。这是Framework对Concurrency相关下的细微功夫: using System.Runtime.Remoting.Contexts; [Synchronization] //体贴不? public class MyClass : ContextBoundObject { public MyClass( ) {} public void DoSomething( ) {} //Other methods and data membe...
阅读全文
摘要:IPad和IPhone真是太热了,以至于Steve Jobs走了,也成了一件大事件,如果在联合国表决一下给Jobs下个半旗什么的,估计八成是一致通过,即便是卡扎菲/金正日这类牛人多半也不会投反对票吧。看着媒体上那些怀念Jobs的人们,就不由自主地想,那里面会有几个人是或曾经是程序员呢?个人感觉不会有多少程序员会觉得IPad/IPhone,甚至Jobs有多么伟大。因为我相信,程序员多有“打破砂锅问到底”的习惯,人云亦云的情况少。IPad/IPhone的过人之处,按流行的说法大致概括为时尚+商业模式,这二个词涉及的话题太玄,太多困惑,还是谈点实实在在的东西比较靠谱。在程序员眼里,IPad/IPho
阅读全文
摘要:此图以一个具体的Linq Query为例,对IEnumerable<T>和IQuerable<T>进行了比较性剖析。如果users支持IQuerable<T>,则走右边分支,如果仅支持IEnumerable<T>则走左边分支。玄机尽在图中,尤其是expression tree作为众多Linq Provider变戏法的关键性支撑作用,可谓不言而喻。此图和一图胜千言 – Linq2Ojects vs Linq2?相得益彰,前者是具体的实例,后者是抽象的机理。而IEnumerable<T>对应的是Linq2Objects,IQuerable
阅读全文
摘要:此图以Linq2Sql为例和Linq2Objects进行了比较性剖析,可以把Linq2Sql换成其它的Linq Provider,则图中Dynamic SQL那一环节需换成其它相应的处理功能。(按:picture source from<<C#in Depth>> 2nd.EditionJon Skeet)
阅读全文
摘要:说的是C#如何体贴程序员,而非.NET Framework。如果打算写一个类似System.Linq.Enumerable.Where的extention method,假设命名为Filter,下面是C#为满足此需求下的功夫: public static IEnumerable<T> Filter<T>(this IEnumerable<T> source, Func<T, bool> predicate) { if (source == null || predicate == null) { throw new ArgumentNullExc
阅读全文
摘要:最近组织了一次中心内部Scrum研讨会,因此,对Scrum下了点功夫, 去官网下了几个资料,琢磨了一番。觉得相对于UP和XP而言,Scrum有以下特点:1. 其橄榄球Metaphor(隐喻)很传神,较好地映射了Scrum的精髓。在这一点上,印象中其它Agile套路无出其右,唯有CrystalClear的Game隐喻稍可与之比美。2. 纯粹的管理视角,不关注技术视角,甚至一些管理和技术均相关的范畴也绝口不提,如XP强调的TDD,Refactor,Continuous Integration,UP强调的Architecture,Model等。3. 没有项目经理角色。很显然,ScrumMaster不
阅读全文
摘要:不同的编程模型往往意味着不同的Mind或Metaphor,从大视角来看,可以按不同分类得到如下不同组合:Declarative vs Imperative;Procedural Programming vs Functional Programming;Structured Progarmming,OOP+AOP,Component Based,Service Oriented;meta-programming vs ?;.NET作为一个平台,和编程模型相关的主要是Language和Framework。就个人体会而言,.NET平台对以上编程模型着实下了一番“取其精华,去其糟粕”的功夫。众所周知
阅读全文
摘要:说的是C#如何体贴程序员,而非.NET Framework。这是C#对Delegate相关领域下的精微功夫:List<Product> products = Product.GetSampleProducts();foreach (Product product in products.OrderBy(p => p.Name)) //entention method{ Console.WriteLine (product);}上面的代码等价于下面的,如何,C#体贴不?List<Product> products = Product.GetSampleProduct
阅读全文
摘要:说的是C#如何体贴程序员,而非.NET Framework。这是C#对getter, setter, local variable, nullable下的细微功夫: public string Name {get; set;} ..... var someString=""; .... int? count; .... var result = count ?? 1; ....上面的代码等价于下面的,如何,C#体贴不? ....(不太可能有人不知道吧!)
阅读全文
摘要:说的是C#如何体贴程序员,而非.NET Framework。这是C#对Dispose调用下的细微功夫: using(var obj= new MyClass( )) { obj.SomeMethod( ); }上面的代码等价于下面的,如何,C#体贴不? MyClass obj = new MyClass( ); try { obj.SomeMethod( ); } finally { if(obj != null) { IDisposable disposable = obj; disposable.Dispose( ); } }(按:code source from<<Progr
阅读全文
摘要:说的是C#如何体贴程序员,而非.NET Framework。这是C#对Monitor使用下的细微功夫: MyClass obj; //Some code to initialize obj; lock(obj) { obj.DoSomething( ); }上面的代码等价于下面的,如何,C#体贴不? MyClass obj; //Some code to initialize obj; Monitor.Enter(obj); try { obj.DoSomething( ); } finally { Monitor.Exit(obj); }(按:code source from<<
阅读全文
摘要:说的是C#如何体贴程序员,而非.NET Framework。这是C#对Finalizer下的细微功夫: public class MyClass { public MyClass( ) {} ~MyClass( ) { //Your destructor code goes here } }上面的代码等价于下面的,如何,C#体贴不? public class MyClass { public MyClass( ) {} protected virtual void Finalize( ) { try { //Your destructor code goes here } finally ..
阅读全文
摘要:上半年作为甲方项目经理半路接手了一个SSO项目,很不幸乙方一直未能搞定这个项目,最后乙方要求接入的Web系统必须采用Forms认证,实在令人无语。作为一名.NET老兵,多忙于各种业务系统的开发,时间长了,ASP.NET Core也下了不少功夫,直觉就是如果采用Forms认证,基于ASP.NET自身的一些支撑,做少量开发就可以搞定Web系统的单点登录。Google了一番之后,基本上就了然了,要点其实很简单,就是“跨域共享Cookie”。当然这个解决方案有不少局限性,如:1. 要求采用Forms认证;2. 要求采用ASP.NET2.0以上;3. 要求各Web系统采用同一个二级域名,如hrm.das
阅读全文
摘要:和前身OCS2007相比较,Lync2010原生客户端的扩展性大大缩小了,但是提供了很好的客户端SDK,整个系统架构也有较大变化。由于Lync2010原生客户端实在太简单,用惯了QQ的国人,实在无法接受以下功能的缺失:组织结构树截屏短信离线消息消息提醒一番评估之后,决意从长远看,定位于打造公司级桌面的统一入口,因此决定自主开发。基于Lync2010客户端SDK和WPF,中间遇到二个问题,通过供应商找MS也没搞定,或许是商务原因不愿给予支持吧,好在最后终于都自己解决了。从此以后,可以按需扩展此桌面入口了。(感谢周工,刘工,傅工,莫工的工作!)
阅读全文
摘要:工作流(WorkFlow )无疑是一个含义较过载的概念。这个领域,搞市场的还是比较幸运的,不存在挖空心思向客户解释啥是工作流的问题,试问有几个管理人员谈起工作流不是滔滔不绝,头头是道呢?在管理人员看来,工作流就是所谓管理流程,工作流程,操作流程嘛。而像我这样推崇DDD的开发人员,坦白说,对工作流一直有点晕乎乎的。工作流有时是一个用例,有时又是多个用例;工作流有时一个Method就搞定了,有时又得上WF或K2这类核武器;工作流有时属于交互类逻辑,有时又属于装配类逻辑,有时又属于DomainModel;......公司基于K2已经整了几百个流程,个人总觉得需要多下点功夫多关注一下,这个国庆抽空研读
阅读全文

浙公网安备 33010602011771号