经过一年时间的沉淀 再次回首 TCP Socket服务器编程 (二)
------------------前言------------------发了第一篇文章后,有不少同志留言,看来socket编程仍然是软件系统里面一个比较难的部分。第一篇文章主要介绍了传输协议的设计,这个是整个socket框架最底层基础的部分,接下来整个socket服务器大楼都将在这个协议设计基础... ...
Swifter C#之inline还是不inline,这是个问题
如果问题是C#怎么才能和C++一样快,那么真正的问题就是C#到底是慢在哪。内联是诸多影响C#性能中的一个,如果频繁调用的大量小函数没有内联,那么对性能的影响是非常大的,因为建栈、删栈、压栈和跳转的时间加起来很可能比实际执行函数体的时间还长。 在实际的应用中,Milo Yip的《C++/C# /F#/... ...
当2个项目中出现了只有一个方法的相同代码时,要不要单独建一个项目来消除重复代码
最近碰到一个这样的问题,有两个Solution,它们之间在数据层上有一定的联系,简单说就是B项目为A项目提供录入数据的功能,功能上它们两个各有分工,代码暂时也没有耦合,但都出现了一个验证某数据的要求,这个算法是相同的。我的第一反应是肯定要独立出一个Project,单独有一个类,里面有这个验证方法。然... ...
也谈事件(Event)
最近园子里发表了一些讨论“事件(Event)”的文章,我也来凑个热闹,谈谈我对事件的一些粗浅的认识。本文不谈设计模式(主要是观察者模式),只从运行时的角度来分析事件这个对象到底是个什么东西?它有那么神秘吗?为了更好的分析事件,本文将会编写一些例子来模拟事件的订阅机制。本文对事件的分析可以概括为下面三... ...
关于近期C#大论战的回应
自从在cnblogs和csdn写了几篇批评C#/.NET的博文后,便受到了多方.NET粉丝的轮番群殴:http://www.cnblogs.com/topic/53/。这段时间正好出差,没有及时回复,便被某些朋友视作理屈词穷。其实,我在第一篇博文中就说过,我既然列出这些论点,一定有支持这些论点的实践... ...
WPF 基础到企业应用系列3——WPF开发漫谈
这篇主要从WPF的开发基础讲起,讲了一些WPF的开发工具等内容,用一个例子来对比了WPF和WinForm的异同之处同时也对某些技术进行了漫谈,通过这篇文章,我们对WPF有了一个基本的了解,所以从下一篇文章开始我们将进入WPF的知识分类讲解,最后会以项目运用、优化和WPF4结束整个系列文章。 ...
Android 系统缺陷不完全点评
前些时间入手了HTC G7 Desire和MOTO Milestone,把玩了一阵了,对Android系统总体感觉不错,但有很多细节会让人恼火到骂娘,我很不明白制作出如此优秀系统的团队为何会犯这些低级愚蠢的错误,且在这么多个版本更新中都没有修正,在此点评一下,期待改进并期待与大家探讨。
... ...
老调重弹——如何面试(二)
我们部门的招聘面试最后都会有一个环节,我们会说“我们的问题今天就这么多了,如果您有什么问题的话呢,现在可以问我们”。 这一个步骤也许不是每一个公司的面试都会有,不过如果有的话,那么恭喜你,这个公司应该比没有这一环节的公司稍微专业那么一点点。最简单的理由是,至少招聘方把这个看作是一个双向选择的过程,给... ...
分布式计算,WCF+JSON+实体对象与WebService+DataSet效率大比拼
最近做公司项目,我们要整合所有业务系统的客户数据,各系统的数据库有的Oracle,有点是SQLSERVER,而且表结构也不相同,如何整合不同系统之间的客户数据成为一个令人头痛的难题!我们用WCF做了一个分布式计算系统,现在就来做一个分布与不分布的效率测试。 ...
C++/C#/F#/Java/JS/Lua/Python/Ruby渲染比试
前篇博文把一个C++全局光照渲染器移植至C#,比较C++和C#之性能。……本人陆续移植了C++代码至Java、JavaScript、Lua、Python和Ruby,赵姐夫亦尝试了F#。本文提供源代码、测试结果、简单分析、以及个人体会。 ...
重温数据库访问——故事篇
本文想借用故事的方式来说一下ADO.net的工作方式。虽然现在都ORM了,但是了解一下ADO.net还是有必要的。 在茫茫的大海上有许多的岛,其中一个岛的名字叫做“应用程序岛”。这座岛上商业非常发达,高楼大厦、店铺林立。但是岛的面积不够大,没有地方建立仓库。所以市长决定,把临近的一座小岛开发出来,... ...
WPF 基础到企业应用系列2——WPF前世今生
这篇文中介绍了WPF的前世今生,同时介绍了WPF的运行原理和基本应用,在最后也介绍了WPF所包含的主要功能和与现有技术的对比,那么在下一篇我们会讲解WPF的实际开发,通过一个案例对比WPF和之前的WinForm之间的差别,从而对WPF有一个正确的认识。 ...
浅谈C#的语法特性及杂七杂八
园子里的首页已经在所谓的C#大论战和语言大作战上,风风火火地持续了快一个月了,我想也该告上那么一段落了。 我只在这里写下我眼中的看法。 1. C#的语法糖 在之前,每当别人问起我,某个C#的新语言特性的时候,我总会说,其实就是这么一回事,他不过是一个语法糖,没什么稀奇的,你可以看一下Refle... ...
从 if else 到 switch case 再到抽象
大家觉得在接手遗留代码时,见到什么东东是最让人感到不耐烦的?复杂无比的 UML ?我觉得不是。我的答案是,超过两个 else 的 if ,或者是超过两个 case 的 switch 。可是在代码中大量使用 if else 和 switch case 是很正常的事情吧?错!绝大多数分支超过两个的 if... ...
关于.net反射和metadata加载--致Jeffray Zhao等几位和firelong
看了firelong写的C#会重蹈覆辙吗?系列之2:反射及元数据的性能问题, Ivony写的C#呓语:谁说程序都要加载到内存?和后面的很多评论后,觉得需要写点来表达一些观点。希望能同大家一起探讨。firelong在C#会重蹈覆辙吗?系列之2:反射及元数据的性能问题中提及:"程序(EXE/DLL)最后... ...
c#不可忍受之慢——谁是罪魁祸首
前些日子,爆出N篇说c#/.net太慢的,要求删除c#/.net部分特性的文章。 撇开那些文章不说,c#/.net慢似乎是业界公认的铁则,不论大家如何证明c#/.net其实不比c++慢多少,但是应用程序级别的性能却依然这么慢。 那么c#/.net慢在哪里? 很不幸的是... ...
现在是Flash的,未来是HTML5的,那么Silverlight呢
2010年初的时候初识银光,作为从Visual Studio.NET 2002 Beta就开始用C#的老.NET程序员,对Silverlight真是爱不释手,Sliverlight让我体会到了RIA的乐趣,在随后的2、3个月里用了很多时间把玩,对Silverlight的未来充满激情,也曾经想用Sil... ...
关于using及foreach的一点看法,及其他
firelong雄文又起,其中的观点很多我看得不太懂,某些看懂的地方(如单向链表和List的遍历性能)感觉又不太对。不过firelong还有一些观点我是明白的,便是对于增加using和foreach这样的语言特性表示不满,觉得这是让语言变得臃肿,像foreach这样的设计模式,应该有类库提供。那么我... ...
老调重弹——如何面试(一)
两年前写了两篇有关如何写简历的文章(一、二),今天重新再看,仍然觉得很有价值。有时候回顾一下这些文章会发现自己仿佛正在退色,或者说发现自己在这方面有点不思进取,很少再写这种思想迸发的东西。(哦,其实,我的思想都付出在公司里面了,比如搞点培训,应用点新技术什么的。)既然有这种感觉了,那我不能再这么坐着... ...
也谈谈性能:局部性与性能的实验观察
同样的算法,为什么会有数量级的性能差异?问题起源于几个月前与一位网友的探讨。这位网友在写婚纱抠图程序。一般来说,婚纱摄影的图像都较大,甚至大至几千万像素。这位网友使用C#开发,他的问题就在于性能。当时建议他使用XNA开发,但问题又出来了:加载一副图像的时间竟需要好几秒!而我自己写的C#加载几千万像素... ...