.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 一样吗?
* 在对象比较中,对象一致和对象相等分别是指什么?