RSS 2.0 Feed
书籍
摘要:由MVP王少葵主持翻译的《C#与.NET 3.0高级程序设计(特别版)》(人民邮电出版社)终于出版了,我参与了其中第六部分的翻译。 原作者 Andrew W. Troelsen,微软MVP,是个多产作者,在微软平台技术,尤其是.NET方面有很深的造诣。该书的早期版本曾入围2002年Jolt大奖的最后提名,并获得2003年Referenceware编程图书类的Excellence Award。 原书中来自Slashdot的评论: “本书极为全面、细致深入地探讨了C#与.NET 2.0框架的各种特性。其中对CIL的介绍和运用尤为精彩,超过了任何其他文章和图书。绝对值得拥有。”...[阅读全文]

posted @ | Feedback (6) | Filed Under [ 书籍 .NET ]

摘要: 看到博客园在轰轰烈烈地讨论程序员的基础/基本功问题,正好在devlicio.us上看到Billy McCafferty撰写的《站在巨人的肩膀上》一文,推荐一下:Standing on the Shoulders of Giantshttp://devlicio.us/blogs/billy_mccafferty/archive/2007/11/12/standing-on-the-shoulders-of-giants.aspx 文中说到,随着这个世界越来越依赖我们的实践,作为计算机行业的从业人员,对计算机行业的 science 实在有必要给与应有的尊重。行动的第一步,就是阅读一些经典的著作,掌握前人/前辈/行业大家们总结出来的知识和行之有效的实践,在日常实践中使用这些知识和实践,成为一个更好的开发人员。他将这些著作分成五大类: 基本读物(Foundational Texts) (每个开发人员都应该读的,没有例外,不管什么经验或平台。这些读物注重讨论如何编写更好,可维护的代码,向坚实的面向对象设计过渡) Code Complete, 2nd Ed. by Steve McConnell (【中文版】代码大全(第二版),金戈译,电子工业出版社出版) Refactoring by Martin Fowler (【中文版】重构:改善既有代码的设计,侯捷译,中国电力出版社出版) Refactoring Workbook by William Wake Applying UML and Patterns, 3rd Ed. by Craig Larman (【中文版】UML和模式应用:面向对象分析与设计导论,姚淑珍译,机械工业出版社出版) 以及 UML Distilled, 3rd Ed. by Martin Fowler Object-Oriented Design Heuristics by Arthur Riel (【中文版】OOD启思录,鲍志云译,人民邮电出版社出版) 学徒读物(Apprenticeship Texts)(这些读物帮你从代码的层次转移到从高的层次来看待实现,以完善项目整体为目的) The Pragmatic Programmer by Andrew Hunt (【中文版】程序员修炼之道——从小工到专家,马维达译,电子工业出版社出版) Patterns of Enterprise Application Architecture by Martin Fowler (【中文版】企业应用架构模式,王怀民译,机械工业出版社出版) Test-Driven Development by Kent Beck (【中文版】测试驱动开发,崔凯译,中国电力出版社出版) Refactoring to Patterns by Joshua Kerievsky (【中文版】重构与模式,杨光译,人民邮电出版社出版) Head First Design Patterns by the Freemans (【中文版】Head First设计模式,UMLChina译,中国电力出版社出版) 以及 Design Patterns (【中文版】设计模式:可复用面向对象软件的基础,李英军译,机械工业出版社出版) 熟练技术人员读物(Journeyman Texts)(这些读物转向“把东西整合起来”,涉及软件开发过程,并深入计算机科学后面的“science”) The Mythical Man-Month by Frederick Brooks (【中文版】人月神话,UMLChina译,清华大学出版社出版) User......[阅读全文]

posted @ | Feedback (17) | Filed Under [ 业界 书籍 .NET ]

摘要:目前市面上有4本引人注目的WPF图书, Charles Petzold的《Applications = Code + Markup》 Adam Nathan的《Windows Presentation Foundation Unleashed》 Chris Anderson的《Essential Windows Presentation Foundation》 Chris Sells的《Programming WPF(第二版)》 在Windows平台上编过程的,大概没人不知道Charles Petzold的大名,知道Adam Nathan的大概不多,但他的前一本书《.NET and COM》被奉为相关主题的权威著作。Chris Anderson是WPF的架构师,而Chris Sells在技术界也广为人知,最新著作包括《Windows Forms 2.0 Programming (第二版)》和《ATL Internals》。  今年四月份,《Coding Horror》博客的作者Jeff Atwood以《How Not To Write a Technical Book(不应该这样写技术图书)》为名,比较了前两本图书,引起轩然大波,不少重量级的人物,包括作者本人,都加入了辩论。 Jeff Atwood认为,Nathan的书是绝对的赢家,理由大概翻译如下: “。。。。(Nathan的书)全书满是图表,屏幕截图和插图,辅助说明代码的涵义 书中文字间穿插了许多有用的彩色侧栏,例如深究(digging deeper),常见问题(FAQ),和警告(warning)等。 代码/标识片断较短,比较容易消化,而不是长篇累牍的文字占上好几页 慷慨使用了大量的列表,表格,副标题等文本元素,提供了极好的可扫描性(scannability) 有一种幽默感,不令人讨厌或倒胃口 全书全彩印刷 Nathan的书是出色的佳作,读上去象博客,可以跟网上能找到的任何东西一较长短。而相比之下,Petzold的书是没完没了的文字和冗长的代码的灰色的海洋。书中图表寥寥无几,每次遇上个图表,都会让人喜出望外。还有,该书还将代码和标识人工分开,前半本书都是C#代码,直到下半本书,你才能看到任何XAML标识,尽管XAML是WPF中最重要的新特性之一,且是开发人员最不熟悉的特性。 我猜这样老派做法是Petzold的典型风格。从一个认为Visual Studio腐蚀了软件开发人员的脑子的人那里,你还能期待什么呢? 任何人打开过这2本书的话,其手法之不同,一目了然。一本书看上去令人注目,充满乐趣,引人入胜,另一本书看上去很痛苦的,教科书式的苦差,相当于用记事本编写代码一样。Petzold是个优秀的作者,但写作本身并不能弥补他的书布局设计上的严重不足。 真是很可惜,我非常喜欢Petzold前面一本书《代码(Code)》,充满了美妙的插图,整个就是对个人计算机的情书。虽然我非常尊敬Petzold,你应该避开他的WPF一书,而是买Nathan的那本书,你会喜欢它的。出版商注意了,如果技术书都象这本书一样,我肯定还会买许许多多本这样的书的。 。。。” Charles Petzold对这样的批评并不以为然,甚至说出了气话:“Prose is dead. PowerPoint has won (传统写作方式已经死了,PowerPoint赢了)”。 Don Box则指出,作为图书的“消费者”,如果一门技术仅仅是为了完成手头的工作,那么他是绝对不会买什么书的。他大概会使用Reflector钻研一下相关技术,也会在网上搜寻一下,花上半个小时看一下搜索结果。对这类任务,他大概会一边做一边学习如何使用相关技术。 但如果一门技术与他要打造的东西息息相关,那么他会购买很多相关的图书,认为在将来总会从其中得到收获。 那么他会选择什么样的图书呢? 他会阅读相关主题最简短的书,他的理由是,1,他没时间。2,他发现如果一本书长到千页,很多时候是这些书的作者没有略去不相关的细节,或者包含了太多非中心的主题。3,一本简短的书反应出书的作者对相关技术做了去粗取精的工作,书中内容往往切中要害,极富深知灼见。 在随后的一个贴子《技术书还是以内容为主,对么?(Content is Still King, Right? Right? (Please?))》里Charles Petzold作了解释,主要对Jeff Atwood的技术图书的标准不以为然,认为不应该以颜色论短长,而应该用具体内容作为标准。 Don Box为后两本书做了同样的序,他说,“This book has taught me a whole lot more. Now that it's all shipped, let the light blinking begin!” Chris Anderson一书的另一个序作者是Chris Sells,Chris Sells一书的另一个序作者则是Chris Anderson,既是好友,又是竞争者,是多么美妙的事!...[阅读全文]

posted @ | Feedback (2) | Filed Under [ 书籍 .NET WPF/SilverLight ]

摘要:经过千辛万苦 ,感谢博文视点和电子工业出版社, 速马和我翻译的Christian Nagel著的《.NET企业服务框架──应用.NET企业服务开发分布式业务解决方案》一书终于出版了: http://www.china-pub.com/computers/common/info.asp?id=32615 【专家评语】 这世上只有很少几个人能把企业服务解释得足够清楚,而Christian就是其中之一。——Ingo Rammer 【内容简介】 随着Web技术的发展,大部分桌面软件依然是孤立的,这意味着分布式应用程序具有广阔的发展前景。分布式应用程序主要应用于企业内部和企业与企业之间,当然,它对于普通用户来说也是意义非凡的。企业服务是一种难学易用的框架,因为它面对的是极其复杂的企业环境。这是一本关于如何利用.NET企业服务框架开发分布式业务解决方案的书,本书涵盖了.NET企业服务的方方面面,如并发、COM互操作、事务服务、状态管理等。书中详细讲解了应用.NET企业服务框架开发分布式业务解决方案的具体方法和实用技巧,使读者在知道Know how的同时还知道Know why。本书的另外一个特点是提供了大量的示例代码,以或大或小的实例展示了各种方法的应用场景和技巧。无论你是刚入门的初学者还是经验丰富的高手,本书都是一本权威的指南和参考书。 【目录信息】 第1章 .NET企业服务简介第2章 对象激活和上下文 第3章 并发 第4章 COM互操作第5章 网络访问第6章 数据访问第7章 事务服务第8章 补偿性资源管理第9章 状态管理 第10章 队列组件第11章 松耦合事件 第12章 安全 第13章 部署和配置第14章 分布式应用的未来第15章 案例研究 ...[阅读全文]

posted @ | Feedback (7) | Filed Under [ 书籍 .NET ]

摘要:如果你感兴趣的话,CodeBetter.COM的 Brendan Tompkins 要在接下来的几个星期内 送掉八本技术书,每周一本。条件是在你的网站添加一个到CodeBetter.COM 的连接,或者在该站的任何一篇博客上添加一个traceback,然后写EMAIL告诉他(具体EMAIL参考原文)具体的地址,然后你就可以加入每周的抽奖,每周四他将宣布一个新获奖者。 这些书包括《Design Patterns》,《Essential Windows Workflow Foundation》,《Framework Design Guidelines》,《Applying Domain-Driven Design and Patterns》,《Essential ASP.NET 2.0》等。 祝你好运!...[阅读全文]

posted @ | Feedback (8) | Filed Under [ 书籍 杂类 ]

摘要: Charles Petzold的 《Applications = Code + Markup》一书正式发行了。 Karsten Januszewski 的评论,把Charles Petzold比作查尔斯-迪更斯,说Charles Petzold的风格清晰细致,引人入胜,他的编码十分简练有效。 以前对WPF只求理解其大概,玩过的编码非常有限。现在离Windows Vista的正式发行只有5个月了,看来该是认真的时候了。...[阅读全文]

posted @ | Feedback (10) | Filed Under [ 书籍 .NET ]

摘要:Charles Petzold 的千页著作《Applications = Code + Markup -- A Guide to the Microsoft Windows Presentation Foundation》已经交付印刷了,不久就会出版。 在他的博客里,他给想写书的人以下建议(粗浅翻译): Book-Writing Advicehttp://www.charlespetzold.com/blog/2006/07/240338.html1。保持一个平稳的时间表。每星期5-6天,每天大概6个小时,这样的安排,每个月足以写出100页来。2。别无谓耽搁,别指望在最后几个星期内写完一本书,除非你是那位快笔作家西默农。3。买个舒服的显示器,舒服的键盘,舒服的坐椅。这些是写书的最重要的计算机部件,处理器,内存,和储存都是次要的。4。吃好,睡足。5。千万别在写作当天把东西写尽,留点余味,下次再写时好上手(这是我从海明威那里学来的好建议)。如果写作当天结束时留下问题的话,空闲时你就会琢磨,也许等你下次坐到桌子前时,你已经在你的脑海里把问题解决了也没准。6。试着保持一个平衡的生活。如果你一天内用功写书了,那么你做其他跟写书无关的事情时也不会有负罪感。7。尽量避免大的分心,譬如新的电子玩具,一个新的关系,或者动手术。8。也尽量避免小的分心。有些工作是可以在听电话和写电邮时同时进行的,但写书不属于这类工作9。先写编码,然后写相关文字。10。别怕跳跃。除非你知道以后章节都包含些什么内容,你是不知道前面章节应该写些什么的。11。只求有进展,不求完美。12。书写完后,给自己送个礼物,譬如一个新电子玩具,开始一个新的关系,甚至做个手术什么的。13。书写完之前别理发。...[阅读全文]

posted @ | Feedback (8) | Filed Under [ 书籍 杂类 ]

摘要: 最近经一个同事介绍,在读《Head First Design Patterns》这本书,感觉其风格很是有趣,本来想写篇介绍的,但Google了一下,发现这位老兄的介绍非常全面,那我就偷懒了吧。 这本书里的编码用的是 Java,Mark McFadden 把它们转换成了C# [来源:Darrell Norton [MVP]]。 在用Google查询时,发现Sahil Malik [MVP C#] 用 A** first design pattern 为题在贬Oracle的高级.NET Web Service 例子,甚是好笑,  。回复中有个连接,更是好玩,叫 The Daily WTF,上面登的都是有问题或风格很差的编码,可以跟 Web Pages That Suck 媲美了...[阅读全文]

posted @ | Feedback (9) | Filed Under [ 书籍 ]

摘要:对于 6。 整数交换 Java:         int x = 1984;        int y = 2001;        x ^= y ^= x ^= y;        System.out.println("x = " + x + "; y = " + y); C#:        int x = 1984;        int y = 2001;        x ^= y ^= x ^= y;        System.Console.WriteLine("x = " + x + "; y = " + y); 输出结果一样 Java x = 0; y = 1984 C# x = 0; y = 1984 fancyf 在上个post的回复中建议这个是Bug,其实不然,因为根据Specifications, x ^= y ^= x ^= y; 其运算是这么做的(起码当前版本是如此): "...The order in which operands in an expression are evaluated, is left to right. [Example: For example, in F(i) + G(i++) * H(i), method F is called using......[阅读全文]

posted @ | Feedback (8) | Filed Under [ 书籍 .NET ]

摘要:Joshua Bloch 是Java语言组的设计师,去年离开Sun加盟Google,他的《Effective Java》一书在Java界影响很大。最近与Google的同事Neal Gafter (也是前Sun雇员) 合写了《Java Puzzlers: Traps, Pitfalls, and Corner Cases》。该书的几个条目以及全部Source Code可以在www.javapuzzlers.com下载到 我不想介入Java与C#间的比较,但还是不禁想比较一下里面的例子在C#里的行为。 下面是第二章里的几个例子的比较,是在.NET 2.0.50215 和Java 1.5.0下做的,至于结果为什么不一样,建议参考2门语言的Specifications。 1。奇偶性  Java:     public static boolean isOdd(int i) {        return i % 2 == 1;    } C#:    public static bool isOdd(int i) {        return i % 2 == 1;    } 输出结果是一样的,这里涉及负整数的余数的问题,但输出结果也许跟你想的也许不一样 isOdd i=-2 i=-1 i=0 i=1 i=2 Java false false false true false C# False False False True False 2。浮点数的减法 Java: System.out.println(2.00 - 1.10); C#: System.Console.WriteLine(2.00 - 1.10); 输出结果不一样 Java 0.8999999999999999 C# 0.9 对C#这个结果有点怀疑,大概是格式化的原因,因为如果用ILDASM看的话,是这样的   IL_0000:  ldc.r8     0.89999999999999991  IL_0009:  call       void [mscorlib]System.Console::WriteLine(float64) 3。大整数除法 Java:        final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;        final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;         System.out.println(MICROS_PER_DAY / MILLIS_PER_DAY); C#:        const long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;        const long MILLIS_PER_DAY =......[阅读全文]

posted @ | Feedback (3) | Filed Under [ 书籍 .NET ]

Full 书籍 Archive