随笔分类 -  .NET进阶

我的设计模式总结
摘要:各位小牛大牛老鸟菜鸟们好,欢迎参观我的设计模式世界。这个世界我已经总结多年了,现在才刚刚成型。But I have a dream,梦想所有开发者都能一夜之间认清所有设计模式,还幻想以后大家认识设计模式时,必首先google本文,嘿嘿。前辈同仁们已经总结过很多,至今首页上设计模式的文章仍然层出不穷。... 阅读全文
posted @ 2015-03-16 21:25 小城故事 阅读(7324) 评论(9) 推荐(15) 编辑
应用菜鸟到框架大牛五部曲
摘要:今天起,文章开头都会推荐一两首好听的歌曲,以符合行文的节奏心情,纪念我们流逝的青春。第一天先推荐,许巍的《时光》、《曾经的你》。 编程领域从架构上,可分为两大部分,框架开发和应用开发。每个人都是从应用开发起步的,使用着各种官方或第三方框架。Java非常依赖各种框架,J2EE, Spring等。.NET一般只须.NET Framework。框架是现代编程语言不可分割的一部分,框架要精无须大而全,一个不足百KB的JQuery就改变了整个Web的面貌。在实际开发中,对框架往往有两种不正确的认识:一、把框架地位看得过高,往往发生在初学者身上。以为掌握框架就是掌握了这门语言。端着本上千页的《xxx高级编 阅读全文
posted @ 2014-01-12 20:03 小城故事 阅读(4314) 评论(11) 推荐(5) 编辑
对AVL树和红黑树的个人理解
摘要:都说编程算法很重要,可真没见几个.NET程序员研究算法的。这些日子非主流地研究了一些小算法,红黑树和AVL树算是其中复杂的了,但实际也就二三百行代码。悲催的是,网上根本找不到C#的理想版本(包括国外网站),寥寥几个,要么有错,要么非主流的实现方式。所谓主流方式,就是用表二叉排序树节点TreeNode... 阅读全文
posted @ 2012-06-06 16:25 小城故事 阅读(17285) 评论(4) 推荐(2) 编辑
对微软Web Deploy的一次艰难调试
摘要:2011年初开始做一个项目,开始体验使用微软网站发布工具来发布网站。在服务器端安装发布服务后,可以在Visual Studio界面中右键点击Web项目,再点发布,第一次填好发布设置,以后就可以实现一键发布,虽然还有不少高级功能没有用到,不过已经方便得不敢相信了。敏捷开发的一个要素不就是每日构建吗,开发过程中,每天下班前Check In代码(Visual Studio装了Anksvn插件),再发布到服务器上,连一分钟都不用。 具体步骤这里不介绍了,大家有兴趣可以看下Scott Guhire的博客。顺便说一下,那个WebPlatform Installer要比我当时逐个网上搜索下载方便多了,... 阅读全文
posted @ 2011-05-31 01:00 小城故事 阅读(5229) 评论(11) 推荐(9) 编辑
在Asp.Net中缓存Ado.Net Entity
摘要:通过一段时间对Ado.Net Entity Framework的使用,感受到它的便利同时,也受到了一些困扰。其中最大的困扰,是源自AEF的设计理念,并不完全符合Web开发,以及有并发访问要求的系统。 最明显的一点体现在缓存上。使用缓存是提高系统数据交互性能最简捷有效的途径,但如果想缓存Ado.Net Entity的话,并不是想像中那么简单,比如:var db = new DBEntities();HttpContext.Current.Cache["product"] = db.Products.ToList(); 如果你这样写了,那恭喜你,如果你试图在另一个上下文环境中修 阅读全文
posted @ 2011-03-09 16:45 小城故事 阅读(4019) 评论(19) 推荐(3) 编辑
.Net令人纠结的Null
摘要:从我们刚学.Net编程起,我们的程序不断被从天而降NullReferenceException打断。直到今天,我们仍然时常为C#的Null或者VB的Nothing困惑。什么情况下我们该返回null,如果参数是null代表什么。许多类型,有两种不同意义的空状态,一种是null,一种是其本身或其某个属性集合中没有元素,这就更容易产生误用。常听有人说,Null这个概念在编程语言中根本不应该存在。但是,从C++到Java到.Net,它从未离开过。最近,注意到.Net Framework在读取程序配置文件的一个小Bug。比如我在配置文件中,自定义了名为ReviewPeriod的节点:<config 阅读全文
posted @ 2010-12-15 14:41 小城故事 阅读(3951) 评论(32) 推荐(1) 编辑
菜鸟玩状态机之样式表解析
摘要:偶不是计算机专业出身,不过参加过软考,对计算机原理大概也似乎多少有差不多那么个一星半点的了解。唯独看程序编译原理时,如读天书。状态机文法真奇妙,看了睡觉不用安眠药。大学出的书太垃圾了,打击了偶的自信,创伤了偶的幼小心灵。直到多年以后,看到老赵一篇《趣味编程:从字符串中提取信息》,心中的阴影才开始解开。 老赵提出的问题,逻辑算很简单的,用正则表达式,直接用关键字符拆分都行。但是如果字符串处理逻辑复杂一点,比如说,你要写个程序编译器,这时用正则或拆分方式,恐怕要哭了。只有请老赵文中提到的正解—状态机能大展身手了。 在本文,准备解析一个CSS文件。至于编译器,将来也不是不可能啊(菜鸟的白日梦... 阅读全文
posted @ 2010-12-14 14:37 小城故事 阅读(3454) 评论(13) 推荐(4) 编辑
改善一下Int.Parse的性能
摘要:偶尔吹毛求疵一下,众所周知,各种数值类型的Parse方法是很耗时间的。比如定义一个string s = "123",int n = 123,我们看s到n之间,没有任何理解障碍。但计算机就不行,它要一堆转换才能明白s到n的关系。下面写了一个自定义的类型转换函数。 没有用Math.Pow函数求幂,速度提高了两倍;将自定义求幂函数与主函数合并一起,速度快了近一倍;使用while而不是for循环,速度略有提高。如果加上转换失败处理,总体速度大约比Int.Parse快一倍。CodeCode highlighting produced by Actipro CodeHighlighte 阅读全文
posted @ 2009-11-17 22:58 小城故事 阅读(807) 评论(3) 推荐(1) 编辑