溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET牛人應該知道些什么

發(fā)布時間:2020-06-30 02:30:02 來源:網絡 閱讀:1398 作者:瞿杰 欄目:編程語言

原文地址:http://www.hanselman.com/blog/WhatGreatNETDevelopersOughtToKnowMoreNETInterviewQuestions.aspx

作者:Scott Hanselman    
譯者:Tony Qu    

前些日子我發(fā)了一份ASP.NET面試題 清單. 有一些訪客比較保守,覺得我是沒事找事,里面都是些很瑣碎的問題。剩下的人則說“蠻不錯的,我得去看一看其中的一些問題” 我更喜歡后者的回復,我覺得后者才是正確的態(tài)度。

當然我并不想把.NET軟件開發(fā)概括為一些簡單的小問題,我只是想讓大家多思考。我相信一個真正優(yōu)秀的ASP.NET(及WinForm)開發(fā)人員應該不僅僅會拖放控件到設計器中,也應該掌握更多的東西。一個優(yōu)秀的×××比賽選手很了解他自己的坐駕,他知道哪些可以做?哪些不能做?

所以我準備了另外一份清單——一份擴展的清單,供你使用。這是我上個星期在從博伊西去波特蘭的路上寫在一塊板上的,并且我也考慮到了那些覺得我的清單過于瑣碎的意見,試圖把這個清單按節(jié)管理。如果你從來沒有深入ASP.NET,你肯定不會知道所有ASP.NET問題的答案。如果你是一個獨立顧問,你可能從來沒有遇到過這些概念。但在我呆在科林斯的這4年中,這些問題我都遇到過。因此,是否全面理解這些問題也許與你是不是一個優(yōu)秀的開發(fā)者沒有關系,但在遇到問題時它的確可以幫你節(jié)省不少時間。  

.NET牛人應該知道些什么?

任何一個使用.NET的人

  • 描述線程與進程的區(qū)別?

  • 什么是Windows服務,它的生命周期與標準的EXE程序有什么不同

  • Windows上的單個進程所能訪問的最大內存量是多少?它與系統(tǒng)的最大虛擬內存一樣嗎?這對于系統(tǒng)設計有什么影響?

  • EXE和DLL之間的區(qū)別是什么?

  • 什么是強類型,什么是弱類型?哪種更好些?為什么?

  • PID是什么?在做系統(tǒng)的故障排除時如何使用它?

  • 單個TCP/IP端口上能夠偵聽多少個進程?

  • 什么是GAC?它解決了什么問題?

中級.NET開發(fā)人員

  • 闡述面向接口、面向對象、面向方面編程的區(qū)別

  • 什么是Interface?它與Class有什么區(qū)別?

  • 什么是反射?

  • 使用ASMX的XML Web服務與使用SOAP的.NET Remoting的區(qū)別?

  • 類型系統(tǒng)是由XMLSchema表示的嗎?CLS是XMLSchema表示的嗎?

  • 從概念上闡述前期綁定(early-binding)和后期綁定(late-binding)的區(qū)別?

  • 調用Assembly.Load算靜態(tài)引用還是動態(tài)引用?

  • 何時使用Assembly.LoadFrom?何時使用Assembly.LoadFile?

  • 什么叫Assembly Qualified Name?它是一個文件名嗎?它有什么不同?

  • Assembly.Load("foo.dll"); 這句話是否正確?

  • 做強簽名的assembly與不做強簽名的assembly有什么不同?

  • DateTime是否可以為null?

  • 什么叫JIT?什么是NGEN?它們分別有什么限制和好處?

  • .NET CLR中一代的垃圾收集器是如何管理對象的生命周期的?什么叫非確定性終結?

  • Finalize()和Dispose()之間的區(qū)別?

  • using() 語法有用嗎?什么是IDisposable?它是如何實現(xiàn)確定性終結的。

  • tasklist /m "mscor*" 這句命令是干嘛的?

  • in-proc和out-of-proc的區(qū)別

  • .NET里的哪一項技術能夠實現(xiàn)out-of-proc通訊?

  • 當你在ASP.NET中運行一個組件時,它在Windows XP, Windows 2000, Windows 2003上分別跑在哪個進程里面?

高級開發(fā)人員/架構師

  • DateTime.Parse(myString); 這行代碼有什么問題?

  • PDB是什么東西? 在調試中它應該放在哪里?

  • 什么叫圈復雜度(cyclomatic complexity)?為什么它很重要?

  • 寫一個標準的lock(),在訪問變量的前后創(chuàng)建臨界區(qū),要有"雙重檢查",

  • 什么叫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的區(qū)別,是否會有明顯的速度變化?請說明理由。

  • JIT是以assembly為單位發(fā)生還是以方法為單位發(fā)生?這對于工作區(qū)有何影響?

  • 對比抽象基類和接口的使用

  • a.Equals(b)和a == b一樣嗎?

  • 在對象比較中,對象一致和對象相等分別是指什么?

  • 在.NET中如何實現(xiàn)深拷貝(deep copy)?

  • 請解釋一下IClonable

  • 什么叫裝箱?

  • string是值類型還是引用類型?

  • XmlSerializer使用的針對屬性的模式有什么好處?解決了什么問題?

  • 為什么不應該在.NET中使用out參數?它究竟好不好?

  • 特性能夠放到某個方法的參數上?如果可以,這有什么用?

C# 組件開發(fā)人員

  • 什么時候使用override?什么時候使用new? 什么叫shadowing?

  • 解釋virtual、sealed、override和abstract的區(qū)別

  • Foo.Bar, Version=2.0.205.0, Culture=neutral, PublicKeyToken=593777ae2d274679d 解釋這個字符串每個部分的重要性和作用

  • 解釋public、protected、private和internal的區(qū)別

  • 使用Primary Interop Assembly (PIA)有什么好處?

  • NUnit是通過什么機制獲知需要測試哪些方法的?

  • catch(Exception e){throw e;}和catch(Exception e){throw;}的區(qū)別

  • typeof(foo)和myFoo.GetType()的區(qū)別?

  • public class c{ public c(string a) : this() {;}; public c() {;} } 解釋第一個構造函數中發(fā)生了什么? 這個構造函數有什么用?

  • this是干嘛用的?能夠用在static方法中?

ASP.NET (UI)開發(fā)人員

  • 闡述一個基于瀏覽器的Form POST如何變成一個服務器端的事件,如Button1_OnClick。

  • 什么是PostBack?

  • 什么是ViewState? 它是否被編碼過? 是否被加密過?誰會使用ViewState?

  • <machinekey>元素是干嘛用的?它用于哪兩項ASP.NET技術?

  • 說出ASP.NET 1.1中的3種Session State提供程序以及它們的優(yōu)缺點?

  • 什么叫Web Gardening? 在設計中如何使用它?

  • 假設有一個ASP.NET應用程序,那么單獨一個進程中允許多少應用程序對象?那兩個進程呢?啟用了Web Gardening的2個進程呢?這對設計有何影響?

  • ASP.NET會重用多個請求之間的線程嗎?是否每個HttpRequest都有自己的線程?你是否應該用ASP.NET的Thread Local存儲?

  • [ThreadStatic]屬性在ASP.NET中有用嗎?它有沒有副作用?是好是壞?

  • 如何使用HttpHandler簡化現(xiàn)有的為.aspx頁面提供驗證圖片的設計

  • HttpModule訂閱的是什么類型的事件? 這對于實現(xiàn)有何影響?如果不打算重新編譯ASP.NE應用程序,應該怎么做?

  • 說出表示任意一個終端(URL)的方式,以及ASP.NET中把請求路由到那個終點的方式

  • 解釋cookie的工作原理。給出一個濫用Cookie的例子。

  • 解釋HttpRequest.ValidateInput()的重要性?

  • 哪些數據是通過HTTP Header傳遞的?

  • 對比HTTP動詞GET和POST? 什么是HEAD?

  • 說出至少6個HTTP狀態(tài)碼以及它們的含義

  • if-not-modified-since的工作原理是什么? 用ASP.NET如何實現(xiàn)它?

  • 解釋 <@OutputCache%>和如何使用VaryByParam、VaryByHeader.

  • VaryByCustom是如何工作的?

  • 如何通過q=? (除了q=5)來實現(xiàn)ASP.NET HTML輸出緩沖和緩沖過期(比如http://localhost/page.aspx?q=5)?

XML開發(fā)人員

  • XML命名空間的作用?

  • 何時適合使用DOM?何時不適合?有沒有尺度限制?

  • 什么是WS-I基本配置?它重要在哪里?

  • 寫一個小XML文檔,其中使用的是默認的命名空間,以及一個合法的(前綴)命名空間,其中要有分別屬性這兩個命名空間的元素

  • 元素和特性的基本區(qū)別在哪里?

  • 格式完好的XML和有效的XML有什么區(qū)別?

  • .NET中如何驗證XML?

  • myXmlDocument.SelectNodes("http://mynode"); 為什么這句代碼不好?什么時候它是好的?

  • 拉式解析(XmlReader)與事件讀取器(Sax)的區(qū)別

  • XPathDocument和XmlDocument的區(qū)別? 在何種情況下應該用哪一個?

  • “XML片斷”與“XML文檔”有什么區(qū)別

  • 什么叫格式規(guī)范的XML?

  • XML InfoSet規(guī)范與Xml DOM有什么不同? InfoSet是要解決什么問題?

  • 比較DTD和XSD,它們的相似點與區(qū)別分別是什么?哪個更好些?為什么?

  • System.Xml支持DTD嗎?如果支持,如何使用?

  • XML Schema能夠表示為對象圖?對象圖能夠表示為XML Schema?


歡迎閱讀 《我與Selerant》之 HR黑私人賬號。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI