摘要:
都说编程算法很重要,可真没见几个.NET程序员研究算法的。这些日子非主流地研究了一些小算法,红黑树和AVL树算是其中复杂的了,但实际也就二三百行代码。悲催的是,网上根本找不到C#的理想版本(包括国外网站),寥寥几个,要么有错,要么非主流的实现方式。所谓主流方式,就是用表二叉排序树节点TreeNode... 阅读全文
摘要:
当今IT业界,三足鼎立。三巨头中,Google还如同赤壁后的刘备,正处于全面出击时期,生态系统还未成型。Apple有OC,Microsoft有.NET,Google只能用最普通的C++和JavaScript,还有个Java,整天被人讨着要专利费。这种借荆州的日子怎么能忍,Google先推出了Go语言,欲取代C++和Java;去年底又推出了Dart语言,目的想取代JavaScript,不仅是自己用,而且想彻底打破Web开发僵局。互联网时代开启以来,互联网这么多年来总体是以超高速发展。然而根据辩证法还是什么法则,事物发展往往是螺旋上升的。互联网这么多年来也经历了两次低潮,一次是2000年泡沫破裂, 阅读全文
摘要:
Win8一天天临近,几天前消费者预览版发布,发现自己提不起什么关注的热情。我曾一度想去参加Metro应用线下讲座,报名后又注销。WPF还没推广,又推出了WinRT。Metro,WinRT,还有mac和android的,学这些都是浪费青春,web开发才是人间正道。不是这些技术不好,就像买衣服,商店里琳琅满目,或者更恰当的比喻是买房子,对多数人来说,就算买得起,这是要用几十年的东西,我们不能朝三暮四,要追求投资效益最大化,成功概念最大化。 当今世界日新月异,技术革命一波接着一波,一浪高过一浪, 这场技术大潮永不退潮,身处其中,我们要明白这样的道理: 1. 如果你有能力,可能在某一阶段站在风... 阅读全文
摘要:
近日,IT界悄然上演了一场颠覆,十五年了,IE统治浏览器的时代终于落下了帷幕。据5月份最新数据表明,Google的Chrome浏览器的全球市场份额已经超越了Microsoft的IE浏览器。自从Netscape衰弱后,IE一度如日中天,在本世纪初数年盘踞了九成以上的市场份额,霸主地位似乎无可撼动。在黎明前的黑夜中,Firefox揭竿而起,打破了IE的垄断,当时看上去像是蚍蜉撼大树,但随着互联网时代潮流汹涌澎湃,固步自封的IE一点点败退。Firefox如揭竿而起的陈胜,那Chrome就是刘邦,创建全新的强大王朝。自从2008年诞生以来,Chrome一直就是飞速高效的印象,如今国内,诸多浏览器也采用 阅读全文
摘要:
在.NET发展史中,2.0是具有里程碑意义的一个版本。从这个版本,.NET青出于蓝(Java),而胜于蓝。在.NET 2.0带来的诸多新特性中,我认为泛型是最重要,没有之一。虽然泛型出现已有多年,连Java都早已借鉴引入了泛型(虽然是语法糖),可是用泛型的编程思维方式并没有得到相应的普及。一方面是由于过去大量的Framework仍然是在非泛型时代写成的,另一方面泛型的设计模式没有得到发展,改变的时候该到了。来举一个例子说明这两点。我们如果写过网络数据抓取的代码,应该熟悉这样的代码:var request = WebRequest.Create("http://www.cnblogs. 阅读全文
摘要:
二叉树是数据结构最重要的部分之一,数据结构据说是学习编程的基础课程,虽然好像和平时工作关系不大,但面试时面试官很喜欢出点数据结构算法来***难你。一直以来,写算法好像只是C/C++的事,一串串数字输出在冰冷的手术台,sorry,是控制台上。但中间的过程,只能画在草纸上,或者像下盲棋一样用用脑汁算。其实我们多数人并不需要到高手的那个境界,只要会走法,能走两步就够了,所以有一个棋盘的话会对我们练习帮助很大。下面是我在WPF窗口上画的一个二叉树:每个节点都是一个Canvas,里面又包含一个Ellipse和TextBlock。节点通过Margin属性来定位。在递归显示时,先计算子节点的Margin,然后再 阅读全文
摘要:
最近用Oracle比较多,一换数据库环境才会感觉到ADO.NET是个好东西,以前用SQL Server的方式几乎能完全套用,但也有些不太一致的地方,记录一下:1. ADO.NET的Assembly,.NET Framework中的已经不被推荐使用,所以一般安装Oracle官方的Client(要求注册),会将Oracle.DataAccess.dll安装到GAC中,然后引用它。2. 在代码中,除SQL语句有一些差异外,主要注意如果要一次执行多条SQL语句,前面要加Begin,最后加End和分号,每条SQL语句间要加分号,麻烦一点。3. 数据库函数不能直接返回结果集,要通过游标参数,也稍麻烦一点。 阅读全文
摘要:
偶的笔记本硬盘前不久不争气地挂掉了,换了硬盘后,觉得VS太大了,我那年迈体弱的小本恐怕有点吃力,于是改用个第三方的IDE吧。 目前偶知道就两种,MonoDevelop和SharpDevelop。SharpDevelop历史比较久,最新版本是4.2,应该比较成熟了吧。 用了一个多月,总体感觉四个字:差强人意。下面说说它的优缺点。 优点:体积小,安装快,卸载也快 :) 缺点就多了: 1.界面风格不符合现代审美观,像win95 2.自动提示不能显示注释,又不支持查看元数据。 3.自动感知太弱,不能识别未加命名空间的类型,不能自动重命名等。 4.不能在编辑时纠正错误。 5.WPF设计器很不好用,还不时 阅读全文
摘要:
周二去一次面试,在做一个题目中,要求实现一个学生类Student,再实现两个类继承它们,分别表示男生和女生。当时,匆匆忙忙地,也没多想,把Student类的属性敲上,再在Boy和Girl类中的构造函数中,分别设置this.Sex = true和this.Sex = false。实际运用中,这样肯定不合理,男生和女生的Sex是固定的(一般情况下,哈),不能在实例创建后修改。只能将Sex属性的set的访问级改成protected。可是,这个protected实在是太刺眼了,而且因为子类的逻辑而迫使父类作修改,既破坏了开放闭合(OCP)原则,又因为出现Student的地方不能简单地用Boy或Girl 阅读全文
摘要:
前言:也看过一些国内介绍SM的文章,但还是老外这篇更详尽通俗。这是偶翻译的第一篇文章,错误不当之处请不吝赐教。总觉得一个第三方框架,要想成功一定要有个 响亮的名字。四年前刚接触JQuery时,就认为它一定能流行起来,因为名字叫起来明显比其它框架(Prototype/Moo Tool/Ext JS)印象深刻。StructureMap也是如此,妙得是缩写SM。IoC以前,我们常被纷繁的业务逻辑SM得痛不欲生,用StructureMap, 底层的码农看到了翻身的希望,可以SM这些业务逻辑了。我在30岁生日之际,对斯德哥尔摩EPiServer(1)组织(2),作过一场关于IOC容器-Structure 阅读全文