突然发现离开编程技术已经四年了,再回头还是那么亲切可爱。一直认为读源码是学习技术的绝佳途径,自己受益良多。曾有人问微软内部讨论组,深入学习.net framework的最佳途径是什么,答曰,用调试器进入.net framework源代码。
微软在发布.net framework 1.0后不久就发布了share source计划(内部代号Rotor)。作为计划的一部分,sscli可以直接从微软网站免费下载。sscli包含了.net framework底层全部的实现代码(包括CLR, BCL, C# compiler),除CLR部分有极少数优化代码略有不同外,其余部分均和微软内部代码完全一致。sscli的版本号和.net framework的版本号保持一致,如sscli 1.0对应.net framework 1.0,sscli 1.1对应.net 1.1。sscli的发布时间略滞后于.net的发布。
对于sscli一直有两点遗憾:1) sscli 缺少程序员最关注的部分,asp.net,ado.net,Win Form等,而这些也是我们最想了解的部分。2) sscli几乎没做什么的宣传,以至于绝大多数.net程序员至今仍不知道它的存在。从这两点看,微软的sscli更多是对开源社区的一种回应(微软模式)。我想微软也许没有意识到源代码的开放对于程序员了解.net,吸引程序员来到.net平台有着无穷的魅力。
慢慢地,事情发生了变化。随着Reflector工具的越来越强大,使得查看.net framework的内部运行机制变得便捷许多。程序员对通过读.net framework源码来了解.net的诉求也似乎减少了很多。但Reflector的一个问题是无法在使用Visual Studio.NET进行调试时进入.net framework内部。
2008年初, ScottGu在blog宣布晚些时候微软将开放.net framework library source code和symbols以供下载和浏览,并可以通过Visual Studio 2008进行调试。
现在这部分源代码终于已经无需任何工具,直接下载(http://referencesource.microsoft.com/netframework.aspx)了。下载的安装包,除了源代码外,还包括了相应的symbols。这样调试的时候可以直接使用本地的调试库,而无需从远程微软网站下载了,调试速度大大地提高了。

msolap
2010/1
Borland公司准备剥离IDE开发工具,而专注于application lifecycle management,现在Borland公司正在寻找合适的买家。对于一个Borland产品的老Fans,看到这条新闻还真有些吃惊,这意味着Delphi, JBuilder, C++ Builder, C# Builder, Kylix和Interbase等产品线要再易其主了。不禁让人回想起,多年前Borland曾经被Inprise收购并更名为Inprise,在经历了一次失败的转型后(中间件业务),又再次改回Borland。如今这家有着传奇经历的公司再一次站到了十字路口前。
http://www.eweek.com/article2/0,1895,1922016,00.asphttp://www.borland.com/us/company/news/press_releases/2006/02_08_06_borland_acquires_segue_software.html
When OOP Becomes POO -
http://www.developer.com/net/vb/article.php/3494001
作者受 "
OOP is Much Better in Theory Than in Practice" 一文的启发,提出一些自己想法:
1. OOP的程序员应该分成OOP的使用者(Consumers)和OOP生产者(Producers)。
2. 创建一个类很容易,但建造一个类库或者一个架构完备系统则是出乎意料得难。
3. OOP的使用者未必能成为OOP的生产者
如果所有的使用者OOP都变成生产者POO,项目十有八九不成功。
我认同两位作者的观点,虽然也已经习惯了OOP的思维方式。从技术角度看,一个成功的项目需要的是一个健全的框架,而不是单纯的OOP。
See in: Exclusive Interview with Anders Hejlsberg: Getting Reacquainted with the Father of C#
http://www.sys-con.com/story/?storyid=48156&DE=1
在最近的TSS访谈中, Anders Hejlsberg叙述了Aspects在C#未来版本中的位置:
“It is not something that we are actively looking at implementing at this point, so we are sort of if you will in wait and see mode”
http://www.theserverside.net/talks/videos/AndersHejlsberg/dsl/q21.html
摘要: 现在模式和架构是个热门话题,也来凑个热闹。模式和架构属于较高层次的应用,但并不是非学不可。出现下列情形时,当不学:. 程序员初学者,不学。并非学不会,而是不要被模式禁锢了自己的头脑。. 为扬名立万填补知识空白,不学. 不写代码,不走程序员之路者,不学. 无恒心、信心和热情者,不学不要期望优雅的代码里能到处看到模式的应用。模式就像钻石,镶满钻石的东西好看,未必好用。当你准备用某个模式的时候,如果有下...
阅读全文
摘要: 最近blog里有很多人在谈论模式(pattern)和架构(architecture),其中不乏刚入程序员行列的同学,目标都是希望提升自己的开发水平。由于担心初学者过于看重模式,有舍本求末之嫌,特写此文。模式和招式 不知有多少程序员学过武术,其中有句话:“力不敌法,法不敌功”。意思是说:使蛮力敌不过会...
阅读全文
摘要: 从哪里入手看上去是个问题,在中国做咨询有点难。有人建议先从一些高端或覆盖率最广的IT杂志上推agile...,办事处在北京还是上海也是未知。知道www.thoughtworks.com的人不多,知道Martin Fowler的人不少。
阅读全文
摘要: “How do you make two systems loosely coupled? Don't connect them.” -- David Orchard, BEA“Objects that interact in a distributed system need to be dealt with in ways that are intrinsically differen...
阅读全文
摘要: C# 3.0的一个新功能是融合编程语言和数据库SQL语言,程序员的日子不知是祸是福。见Anders Hejlsberg的录像:http://channel9.msdn.com/ShowPost.aspx?PostID=10276
阅读全文