当我们谈论.NET世界时,CLR就是我们所做的一切.什么是CLR的最低知识,.NET程序员必须要成为一名优秀的程序员?你能给我一个/多个你认为是/最重要的科目:GC?,AppDomain ?, Threads?,Processes ?, Assemblies/Fusion?
如果您发布文章,博客,书籍或其他有关可以找到更多信息的主题的链接,我将非常感激.
更新:我从一些评论中注意到我的问题并不清楚.当我说CLR我不是指.Net Framework.它不是关于记忆.NET库,而是要了解执行环境(这些库在运行时的生存环境)是如何工作的.
我的问题直接受到了"调试Microsoft®.NET应用程序"一书(我推荐)的作者John Robbins的启发,以及Wintellect的Jeffrey Richter引用的同事.在其中一篇介绍性章节中,他说"......任何.NET程序员都应该知道什么是探测以及如何将程序集加载到运行时".你觉得还有其他这样的东西吗?
最后更新:在阅读了"CLR via C#"的前5章后,我必须对任何阅读此内容的人说.如果还没有,请阅读本书!
Jon*_*eet 32
其中大多数都比许多开发人员在我的经历中所贬低的那样深刻.我的经历中最容易被误解的(和重要的)方面:
在"变量与对象"前面,这里有三个关于代码的陈述
string x = "hello";
Run Code Online (Sandbox Code Playgroud)
x是一个包含5个字母的字符串x是对带有5个字母的字符串的引用x是对包含5个字母的字符串的引用显然前两个在"随意"对话中是可以接受的,但前提是每个参与者都了解真实情况.
一个伟大的程序员不能用他对 CLR 的了解程度来衡量。当然这是一个不错的开始,但他还必须了解 OOP/D/A 以及许多其他内容,例如设计模式、最佳实践、O/RM 概念等。
事实上,我想说一个“伟大的 .Net 程序员”根本不需要对 CLR 有太多了解,只要他对通用编程理论和概念有丰富的了解......
我宁愿聘请一位在 Java 方面具有丰富的一般知识和经验的“伟大的 Java 开发人员”来从事 .Net 工作,然后是一位经验不足并认为 O/RM 是股票行情和存储过程是伟大的 .Net 的“大师” “抽象出数据库”的方法......
我见过.Net 的专业教师在做真正简单的事情时完全失败,由于缺乏“常识”,而他们同时“知道一切”要了解 .Net 和 CLR。 .