background image

.NET 牛人应该知道些什么?

任何一个使用

.NET 的人

    * 描述线程与进程的区别?
    * 什么是 Windows 服务,它的生命周期与标准的 EXE 程序有什么不同

    * Windows 上的单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗?这对于系统设
计有什么影响?
    * EXE 和 DLL 之间的区别是什么?
    * 什么是强类型,什么是弱类型?哪种更好些?为什么?

    * PID 是什么?在做系统的故障排除时如何使用它?
    * 单个 TCP/IP 端口上能够侦听多少个进程?

    * 什么是 GAC?它解决了什么问题?

中级

.NET 开发人员

    * 阐述面向接口、面向对象、面向方面编程的区别
    * 什么是 Interface?它与 Class 有什么区别?

    * 什么是反射?
    * 使用 ASMX 的 XML Web 服务与使用 SOAP 的.NET Remoting 的区别?

    * 类型系统是由 XMLSchema 表示的吗?CLS 是 XMLSchema 表示的吗?
    * 从概念上阐述前期绑定(early-binding)和后期绑定(late-binding)的区别?

    * 调用 Assembly.Load 算静态引用还是动态引用?
    * 何时使用 Assembly.LoadFrom?何时使用 Assembly.LoadFile?

    * 什么叫 Assembly Qualified Name?它是一个文件名吗?它有什么不同?
    * Assembly.Load("foo.dll"); 这句话是否正确?

    * 做强签名的 assembly 与不做强签名的 assembly 有什么不同?
    * DateTime 是否可以为 null?

    * 什么叫 JIT?什么是 NGEN?它们分别有什么限制和好处?
    * .NET CLR 中一代的垃圾收集器是如何管理对象的生命周期的?什么叫非确定性终结?

    * Finalize()和 Dispose()之间的区别?
    * using() 语法有用吗?什么是 IDisposable?它是如何实现确定性终结的。

    * tasklist /m "mscor*" 这句命令是干嘛的?
    * in-proc 和 out-of-proc 的区别

    * .NET 里的哪一项技术能够实现 out-of-proc 通讯?
    * 当你在 ASP.NET 中运行一个组件时,它在 Windows XP, Windows 2000, Windows 2003 上分别跑
在哪个进程里面?

高级开发人员

/架构师

    * DateTime.Parse(myString); 这行代码有什么问题?
    * PDB 是什么东西? 在调试中它应该放在哪里?

    * 什么叫圈复杂度(cyclomatic complexity)?为什么它很重要?
    * 写一个标准的 lock(),在访问变量的前后创建临界区,要有"双重检查",

    * 什么叫 FullTrust?放入 GAC 的 assembly 是否是 FullTrust 的?
    * 代码加上需要安全权限的特性有什么好处?

    * gacutil /l | find /i "Corillian" 这句命令的作用是什么?
    * sn -t foo.dll 这句命令是干嘛的?

    * DCOM 需要防火墙打开哪些端口?端口 135 是干嘛用的?
    * 对比 OOP 和 SOA,它们的目的分别是什么?

    * XmlSerializer 是如何工作的?使用这个类的进程需要什么 ACL 权限?
    * 为什么不提倡 catch(Exception)?

    * Debug.Write 和 Trace.Write 有什么不同?何时应该使用哪一个?
    * Debug Build 和 Release Build 的区别,是否会有明显的速度变化?请说明理由。

    * JIT 是以 assembly 为单位发生还是以方法为单位发生?这对于工作区有何影响?
    * 对比抽象基类和接口的使用

    * a.Equals(b)和 a == b 一样吗?
    * 在对象比较中,对象一致和对象相等分别是指什么?