|
最近一段時(shí)間在用 C# 和 ASP.NET,在受訓(xùn)和使用中偶爾有一些心得。 我覺得有時(shí)候問題比答案本身要重要,所以列了些問題, 這些問題主要是關(guān)于基本概念的,或者是初學(xué)者一上手就要碰到的。 至少我為其中一些問題困惑過。 關(guān)于答案我就并不是都知道了,更要命的是現(xiàn)在自己疑問越來越多,答案出現(xiàn)的越來越慢.....
1. Page class 實(shí)現(xiàn)了哪個(gè)重要的 interface?
a: IHttpHandler 偶以為了解 .net class, interface 特重要的說......
2. foo.aspx 編譯后的 class 名字是什么?
a: foo_aspx 擴(kuò)展問題:如何動(dòng)態(tài)地,用程序(programmatically)引用一個(gè) user control? 有什么要注意的? 別告訴我 msdn beta 1 里有。你編譯一下就知道它在胡說。
3. Shadow-copy dll 存在哪里?
a: 考慮一下,如果沒有一種機(jī)制(現(xiàn)在我們管它叫 shadow-copy), 我們能否刪除/改變正在被使用的 dll? 比如在 vb6+iis+asp+mts 環(huán)境中,多少次需要 restart iis service or reboot...
4. 談?wù)?AutoEventWireup
a: 有誰發(fā)現(xiàn)自己寫的某些事件被執(zhí)行了兩遍?;)
5. 關(guān)于 Directive 中的 Inherits:一個(gè) aspx 可能 inherits 多個(gè) class 嗎? 多個(gè) page 可能 inherits 一個(gè) code behind 嗎?
a: c# 中不能多重繼承。 但多個(gè)不同 aspx 肯定能 share 一個(gè) code behind ---- 哪怕 page 里的 server control 不一樣。
6. @Assembly 和 csc /r 和 vs.net 項(xiàng)目中 reference 的關(guān)系是什么? a: 需要同時(shí)使用 ide 和手工編譯的人最清楚了。;-(
7. web control 和 html control 在 performance 上有區(qū)別嗎? a: 文檔上總說 beta1 拒絕 performance 測試;-)
8. 對(duì) asp.net 的請(qǐng)求是由哪個(gè) isapi extension 處理分發(fā)的? a: xspisapi.dll 在 iis mmc 中改 如果有自己寫的繼承 IHttpHandler 的東東,知道這些就有用了。
9. 這個(gè) isapi extension 實(shí)際上把請(qǐng)求 forword 到哪個(gè) process? a: xspwp.exe
10 如果使用外部進(jìn)程維護(hù) session,這個(gè)進(jìn)程是什么? a: aspstate.exe 在 config.web 里面修改設(shè)置,可以把 session 放在其它機(jī)器上,甚至 sql 里。 這樣就可以直接支持 web farm 了。 但 session 變量如果是 object,就會(huì)有個(gè) serialize 的過程,很耗資源。 如何讓你的 object 更好地支持 serializable interface 是個(gè)比較大的話題, 實(shí)在敲不動(dòng)的說。
11 如何自己做個(gè) httphandler? 能想出它有什么實(shí)際用處嗎? a: 實(shí)現(xiàn) IHttpHandler 做出自己的 handler 很簡單,但很有用,比如當(dāng)用戶請(qǐng)求一些 特殊文件時(shí),比如 *.log,你可以在 config.web 中設(shè)置定向到你自己的 handler 上, 讓它做處理。
12 談?wù)?HttpModule a: 問題 11 的延伸
13 如何在 VS.NET 中 debug asp.net 應(yīng)用? a: attach process
14 如果你通過繼承 System.Web.UI.Control 寫了個(gè) Custom Control, 如何加上對(duì) client-side script 的支持? a: 沒什么可說的。
15 在 aspx 頁面中放上一些 TextBox, ListBox 等等 Web Control, 但在 code-behind 中并不定義它們,是否可能使用這些 control? a: 能。通過 page.controls, or form.controls, or container.controls whatever... 這樣你可以做出完全不同的 web UI,share 一個(gè)共同的 code behind, 做出真正 generic 的應(yīng)用。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!