好的.NET程序员应该知道什么

来源:互联网 发布:手机淘宝抢购如何成功 编辑:程序博客网 时间:2024/06/08 20:12
任何一个使用.NET的人
  • 描述线程与进程的区别? (进程就是一个独立的运行的程序,线程是依附于进程的,具体概念还真不清楚。)
  • 什么是Windows服务,它的生命周期与标准的EXE程序有什么不同(Windows服务是没有运行界面的由Windows服务管理程序进行统一管理的程序,Windows服务一般随操作系统一起运行而不需要人为的启动运行。标准EXE程序运行后一般是提供了交互界面的,而且一般是人为启动而不是随操作系统的启动而启动。)
  • Windows上的单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗?这对于系统设计有什么影响?(32位OS中单个进程能访问2G的内存,如果启动了3GB开关的话就可以访问3G内存,如果使用了AWE的话可以访问更多的内存。与最大虚拟内存不一样吧,系统设计中,对于32位系统,OS操作2G内存,另外2G内存给程序使用,最大内存量决定了某些程序比如SQL Server的性能。)
  • EXE和DLL之间的区别是什么? (EXE是可以执行的程序,DLL是动态链接库,是用于被EXE或其他DLL调用的,用于提供程序接口)
  • 什么是强类型,什么是弱类型?哪种更好些?为什么? (明确定义了数据类型的就叫强类型,未明确类型或类型可以变化的叫弱类型。没有什么更好的说法,各有优点。强类型意义明确,发生错误的几率更低,弱类型更灵活。)
  • PID是什么?在做系统的故障排除时如何使用它? (PID就是进程标识的意思,是进程运行时的一个标识,用于唯一的表示该进程,排除故障时就是根据PID来确认发生故障的进程的。)
  • 单个TCP/IP端口上能够侦听多少个进程? (应该是一个吧。)
  • 什么是GAC?它解决了什么问题? (全局程序集缓存,在整个操作系统中缓存一些程序集,其他引用该程序集的程序就不需要将这些程序集拷贝到EXE运行的目录了。)
中级.NET开发人员
  • 阐述面向接口、面向对象、面向方面编程的区别 (面向接口就是在定义API时使用接口类型而不是类,面向对象就是将数据和方法封装成类,通过类的方式进行编程,面向方面就完全不知道了)
  • 什么是Interface?它与Class有什么区别? (接口就是定义了需要实现的属性和方法。Class是有具体的实现的,而接口只是一个定义,Class只能单继承,而一个类缺可以实现多个接口。)
  • 什么是反射? (具体定义不清楚,我只知道通过反射可以获得一个程序集中的命名空间、类、属性、方法等,当然还有Attribute)
  • 使用ASMX的XML Web服务与使用SOAP的.NET Remoting的区别? (Web服务是应用与Internet的RPC,而Remoting是局域网的,我只知道这么点)
  • 类型系统是由XMLSchema表示的吗?CLS是XMLSchema表示的吗? (不懂)
  • 从概念上阐述前期绑定(early-binding)和后期绑定(late-binding)的区别? (不知道这里的前期绑定和后期绑定是什么)
  • 调用Assembly.Load算静态引用还是动态引用? (静态)
  • 何时使用Assembly.LoadFrom?何时使用Assembly.LoadFile? (都是载入一个文件,不知道有什么区别,只有看MSDN了,估计是一个只能Load同一文件夹中的文件,而另一个可以Load其他文件夹下的文件。)
  • 什么叫Assembly Qualified Name?它是一个文件名吗?它有什么不同? (不懂)
  • Assembly.Load("foo.dll"); 这句话是否正确? (没有错吧,难道必须使用绝对路径?)
  • 做强签名的assembly与不做强签名的assembly有什么不同? (强签名后不可被修改运行,不做强签名就可以被反编译修改,然后重新编译运行。)
  • DateTime是否可以为null? (不可)
  • 什么叫JIT?什么是NGEN?它们分别有什么限制和好处? (不知道)
  • .NET CLR中一代的垃圾收集器是如何管理对象的生命周期的?什么叫非确定性终结? (一个对象实例没有被任何地方引用时就称为垃圾,当内存不够是GC就会将该对象实例占用的空间清理出来。)
  • Finalize()和Dispose()之间的区别? (不知道)
  • using() 语法有用吗?什么是IDisposable?它是如何实现确定性终结的。 (using()语法可以在使用对象后自动立即清除在其中使用的对象,是相当有用的。IDisposable是Dispose方法的接口。)
  • tasklist /m "mscor*" 这句命令是干嘛的? (完全不懂)
  • in-proc和out-of-proc的区别 (不明白问题是什么意思)
  • .NET里的哪一项技术能够实现out-of-proc通讯? (不懂)
  • 当你在ASP.NET中运行一个组件时,它在Windows XP, Windows 2000, Windows 2003上分别跑在哪个进程里面? (win2000:没有接触过,xp:忘记了,win2003:w3wp.exe)
高级开发人员/架构师
  • DateTime.Parse(myString); 这行代码有什么问题? (可能会抛出异常)
  • PDB是什么东西? 在调试中它应该放在哪里? (调试文件,PDB文件和对应的EXE,DLL文件在同一个文件夹)
  • 什么叫圈复杂度(cyclomatic complexity)?为什么它很重要? (圈复杂度就是代码中条件语句和循环语句出现的次数,他说明了函数的复杂性,低比较好。)
  • 写一个标准的lock(),在访问变量的前后创建临界区,要有"双重检查", (lock(this.TextBox1){this.TextBox1.Text="test";}双重检查不会)
  • 什么叫FullTrust?放入GAC的assembly是否是FullTrust的? (不懂)
  • 代码加上需要安全权限的特性有什么好处? (……)
  • gacutil /l | find /i "Corillian" 这句命令的作用是什么? (……)
  • sn -t foo.dll 这句命令是干嘛的? (算该程序集的公钥还是密钥哦)
  • DCOM需要防火墙打开哪些端口?端口135是干嘛用的? (得百度一下,不知道)
  • 对比OOP和SOA,它们的目的分别是什么? (OOP面向对象编程,是一种编程思想和方式,以对象为基础,SOA面向服务的架构,将API封装为服务(比如Web服务),然后针对这些暴露出的服务进行编程。)
  • XmlSerializer是如何工作的?使用这个类的进程需要什么ACL权限? (不知道)
  • 为什么不提倡catch(Exception)? (Catch的时候应该捕捉具体的Exception类型,而不是通用的Exception)
  • Debug.Write和Trace.Write有什么不同?何时应该使用哪一个? (没有用过Trace.Write,所以不知道有何不同)
  • Debug Build和Release Build的区别,是否会有明显的速度变化?请说明理由。 (Debug模式下会将很多调试信息添加到程序中,而Release模式下不会有,速度有一定变化,单不明显。)
  • JIT是以assembly为单位发生还是以方法为单位发生?这对于工作区有何影响? (不知道)
  • 对比抽象基类和接口的使用 (抽象基类定了的是抽象方法和一下实现方法,接口只提供定义,不提供任何实现)
  • a.Equals(b)和a == b一样吗? (不一样,Equals还要求类型一样,而==只要求值一样)
  • 在对象比较中,对象一致和对象相等分别是指什么? (对象一致包括对象的类型和对象的值都相同,而对象相等是指值相等)
  • 在.NET中如何实现深拷贝(deep copy)? (.net只提供了浅拷贝的方法,深拷贝只有自己编程了)
  • 请解释一下IClonable (实现object Clone()方法的接口)
  • 什么叫装箱? (将对象转换为基对象)
  • string是值类型还是引用类型? (都是)
  • XmlSerializer使用的针对属性的模式有什么好处?解决了什么问题? (不知道)
  • 为什么不应该在.NET中使用out参数?它究竟好不好? (应该使用对象来传值,使用out是不是很好的)
  • 特性能够放到某个方法的参数上?如果可以,这有什么用? (可以啊,用处忘记了,得翻MSDN了)
C# 组件开发人员
  • 什么时候使用override?什么时候使用new? 什么叫shadowing? (重写父类的方法的时候用override以实现多态,如果父类中的方法不是virtual的也不是abstract的才使用new,shadowing不懂)
  • 解释virtual、sealed、override和abstract的区别(virtual申明虚方法的关键字,说明该方法可以被重写,sealed说明该类不可被继承,override重写基类的方法,abstract申明抽象类和抽象方法的关键字,抽象方法不提供实现,由子类实现,抽象类不可实例化。)
  • Foo.Bar,Version=2.0.205.0, Culture=neutral, PublicKeyToken=593777ae2d274679d解释这个字符串每个部分的重要性和作用 (程序集的名字、版本、Culture不知道,公钥,这些用于GAC中申明一个唯一的程序集)
  • 解释public、protected、private和internal的区别(public可被内外访问,protected只能被内部和之类访问,private只能内部访问,internal只能在该程序集中被访问)
  • 使用Primary Interop Assembly (PIA)有什么好处? (不懂)
  • NUnit是通过什么机制获知需要测试哪些方法的? (反射,为测试方法加了Attribute)
  • catch(Exception e){throw e;}和catch(Exception e){throw;}的区别(将发生的异常对象抛出,另一个只是抛出异常,并没有抛出原异常对象)
  • typeof(foo)和myFoo.GetType()的区别? (typeof(foo)不会出现异常,myFoo.GetType()可能会因为myFoo为null而产生异常)
  • publicclass c{ public c(string a) : this() {;}; public c() {;} }解释第一个构造函数中发生了什么? 这个构造函数有什么用? (第一个构造函数调用了第二个构造函数,这个构造函数构造了一个c对象的实例。)
  • this是干嘛用的?能够用在static方法中? (this表示该实例内,不能用于static中)
ASP.NET (UI)开发人员(基本不会,就不答了)
  • 阐述一个基于浏览器的Form POST如何变成一个服务器端的事件,如Button1_OnClick。
  • 什么是PostBack?
  • 什么是ViewState? 它是否被编码过? 是否被加密过?谁会使用ViewState?
  • <machinekey>元素是干嘛用的?它用于哪两项ASP.NET技术?
  • 说出ASP.NET 1.1中的3种Session State提供程序以及它们的优缺点?
  • 什么叫Web Gardening? 在设计中如何使用它?
  • 假设有一个ASP.NET应用程序,那么单独一个进程中允许多少应用程序对象?那两个进程呢?启用了Web Gardening的2个进程呢?这对设计有何影响?
  • ASP.NET会重用多个请求之间的线程吗?是否每个HttpRequest都有自己的线程?你是否应该用ASP.NET的Thread Local存储?
  • [ThreadStatic]属性在ASP.NET中有用吗?它有没有副作用?是好是坏?
  • 如何使用HttpHandler简化现有的为.aspx页面提供验证图片的设计
  • HttpModule订阅的是什么类型的事件? 这对于实现有何影响?如果不打算重新编译ASP.NE应用程序,应该怎么做?
  • 说出表示任意一个终端(URL)的方式,以及ASP.NET中把请求路由到那个终点的方式
  • 解释cookie的工作原理。给出一个滥用Cookie的例子。
  • 解释HttpRequest.ValidateInput()的重要性?
  • 哪些数据是通过HTTP Header传递的?
  • 对比HTTP动词GET和POST? 什么是HEAD?
  • 说出至少6个HTTP状态码以及它们的含义
  • if-not-modified-since的工作原理是什么? 用ASP.NET如何实现它?
  • 解释 <@OutputCache%>和如何使用VaryByParam、VaryByHeader.
  • VaryByCustom是如何工作的?
  • 如何通过q=? (除了q=5)来实现ASP.NET HTML输出缓冲和缓冲过期(比如http://localhost/page.aspx?q=5)?
XML开发人员(我基本上不会,就不回答了)
  • XML命名空间的作用?
  • 何时适合使用DOM?何时不适合?有没有尺度限制?
  • 什么是WS-I基本配置?它重要在哪里?
  • 写一个小XML文档,其中使用的是默认的命名空间,以及一个合法的(前缀)命名空间,其中要有分别属性这两个命名空间的元素
  • 元素和特性的基本区别在哪里?
  • 格式完好的XML和有效的XML有什么区别?
  • .NET中如何验证XML?
  • myXmlDocument.SelectNodes("//mynode"); 为什么这句代码不好?什么时候它是好的?
  • 拉式解析(XmlReader)与事件读取器(Sax)的区别
  • XPathDocument和XmlDocument的区别? 在何种情况下应该用哪一个?
  • “XML片断”与“XML文档”有什么区别
  • 什么叫格式规范的XML?
  • XML InfoSet规范与Xml DOM有什么不同? InfoSet是要解决什么问题?
  • 比较DTD和XSD,它们的相似点与区别分别是什么?哪个更好些?为什么?
  • System.Xml支持DTD吗?如果支持,如何使用?
  • XML Schema能够表示为对象图?对象图能够表示为XML Schema?
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 基础教育教师培训网注册错了怎么办 11个月宝宝便秘大便有血怎么办 两岁宝宝两天没拉粑粑了怎么办 两岁宝宝两天没拉大便怎么办 两岁宝宝便秘两天没拉怎么办 昨天带孩子上早教课一直哭怎么办 网页账号注册无法获取验证码怎么办 我总是为一些事情而烦恼怎么办 手机键盘打出的字是繁体字怎么办 阴阳师协助任务对方接了不做怎么办 wow牧师选错了圣物怎么办 淘宝有几个订单被管控了怎么办 埋线双眼皮一个宽一个窄怎么办 把维D和维C一起吃了怎么办 微信出现当前登录环境异常该怎么办 去麦加朝觐人要出现死亡怎么办 炉石传说偶数骑削弱后怎么办 出于安全和性能方面的原因怎么办 怀孕后不知道拍过好几次牙片怎么办 百度云种子含有非法离线内容怎么办 苹果手机上的迅雷怎么打不开怎么办 微信绑定银行卡收不到验证码怎么办 支付宝转账为什么没验证码怎么办 电视时间比手机慢三分钟怎么办 13岁现在有月经又流鼻血怎么办 酒店给客人把房间开错了怎么办 手机百度云下载的视频分解了怎么办 知道家人被绑架北派传销怎么办 接手前同事的客人无回复怎么办 喝了酒第二天一直吐怎么办 孩子看的鬼片不敢睡觉害怕怎么办 宝宝满月了脸还有点黄怎么办 我情人天天说没时间出去该怎么办 两个月宝宝下体三角区肿了怎么办 夏养的龙猫家里有味怎么办 不小心踩到仓鼠吐血了怎么办 不小心踩到仓鼠的头怎么办 母仓鼠生完孩子特别暴躁怎么办 被仓鼠咬出血怎么办要不要打针 被小仓鼠咬出血了该怎么办 仓鼠咬破手指流血了该怎么办