摘要:
WCF在不断的进步,在4.0下可以很简单的实现无配置WCF,从此不再为哪大段大段的配置而感到头痛了。 但是,现实是残酷的,项目的.net框架版本不是说变就变的。不过,对于会写代码的人来说,总有办法能绕过这些杂七杂八的麻烦事情。 之前的一片文章中已经写了无配置客户端如何实现,但是里面的服... 阅读全文
摘要:
今天在看social.msdn.microsoft.com论坛上面有个帖子提出了这个问题: The following peice of code is from C# 4.0 in a Nutshell. Ideally/logically this program should finish within 2-3 seconds, but it seems be ca... 阅读全文
摘要:
Dump对象 一个成熟的系统,都少不了一个强大的Log,而Log通常需要把当时的对象的很多信息记录下来,因此Dump对象的功能在很多场合下都会使用到。 那么来看看普通的Dump如何实现: 如此,就把Foo实例的内容记录到Log中,但是,思考一下,如果有100多个地方需要记录Foo对象,就... 阅读全文
摘要:
上集回顾 上集讨论了TPL的线程安全问题,以及很粗浅的讨论了一些关于TPL的性能问题。这一集中,暂时抛开这些,直接来讨论一下TPL带来的一个非常强大的新功能——异步撤销。 应用场景 还记得线程池吧,利用线程池,按顺序每秒输出一个0-9数字: 但是,如果还要有取消功能哪? 为了取消,我们不得不把代码写成这样: 认为很好吗?不,一点也不好,isCancelled会被多个... 阅读全文
摘要:
回顾 前面一篇简单的介绍了TPL,以及一个最简单的例子。这一篇,来讨论一下线程安全的问题。 TPL不需要考虑线程安全? 好吧,我不知道为什么会有人提出这样的想法,首先要确定的是在MS的开发人员是人,不是神,不可能让一个类库聪明到这样的程度。要是真的有这么聪明的话,估计我们都可以转行做需求分析了,更不不需要写代码的人了。 如何证明考虑线程安全是必要的哪?来一个简单的示例就可以了: 由于写这篇... 阅读全文
摘要:
这周vs2010发布了,不少文章都在Show那些vs2010的新体验,这里我也凑个热闹,也来写写。 什么是TPL TPL是Task Parallel Library的简称,也就是Framework 4.0中新加入的类库之一,这个类库里面最著名的要算是PLinq了(说到PLinq,大家一定瞬间就知道了吧)。但是PLinq只是TPL把其中最常用的内容使用Linq兼容的语法提供给大家,方便使用,所以... 阅读全文
摘要:
1、前言 .net Framework 3.0的Workflow用过了吧,什么?还没有,好吧,就连我这种当初认为Workflow是个不值得花时间去学习的人也用了一下,毕竟在某些情况下,使用WF的编码效率以及灵活性远要比不使用WF的要高。 2、场景 比如说,现在需要做个异步的服务,其中有调用了很多其他服务,并且这些服务是远程的,也就是可能在很多阶段都回出现调用失败的情况,当然,由于服务本身是异... 阅读全文
摘要:
有没有试过在单元测试中调用自己写的WCF服务? 该不会还是添加一个服务引用再测试吧... 这里就介绍一个非常简单的方式直接调用自己的WCF服务。 1.启动服务 首先,需要启动自己的WCF服务,如果服务没起来,在怎么调用也是白搭。 ... 阅读全文
摘要:
1.包装与为什么要包装 oo的世界看起来很完美,但是也有不少缺点,尤其是遇到静态语言(例如:c#,java等),经常会受制于类型不匹配这样的问题。 例如,某个类库需要一个INamedObject对象,而另一个类库仅仅提供了一个Thread对象,怎么办哪?在不可能修改类库的情况下,通常就会写一个Wrapper,把Thread包装成INamedObject,大概的代码如下: 这样就把一个Threa... 阅读全文