幾個.net的重要問題
2024-07-10 13:05:09
供稿:網(wǎng)友
本文來源于網(wǎng)頁設(shè)計愛好者web開發(fā)社區(qū)http://www.html.org.cn收集整理,歡迎訪問。最近一段時間在用 c# 和 asp.net,在受訓(xùn)和使用中偶爾有一些心得。
我覺得有時候問題比答案本身要重要,所以列了些問題,
這些問題主要是關(guān)于基本概念的,或者是初學(xué)者一上手就要碰到的。
至少我為其中一些問題困惑過。
關(guān)于答案我就并不是都知道了,更要命的是現(xiàn)在自己疑問越來越多,答案出現(xiàn)的越來越慢.....
1. page class 實現(xiàn)了哪個重要的 interface?
a: ihttphandler
偶以為了解 .net class, interface 特重要的說......
2. foo.aspx 編譯后的 class 名字是什么?
a: foo_aspx
擴(kuò)展問題:如何動態(tài)地,用程序(programmatically)引用一個 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:一個 aspx 可能 inherits 多個 class 嗎?
多個 page 可能 inherits 一個 code behind 嗎?
a:
c# 中不能多重繼承。
但多個不同 aspx 肯定能 share 一個 code behind ---- 哪怕 page 里的 server control 不一樣。
6. @assembly 和 csc /r 和 vs.net 項目中 reference 的關(guān)系是什么?
a:
需要同時使用 ide 和手工編譯的人最清楚了。;-(
7. web control 和 html control 在 performance 上有區(qū)別嗎?
a:
文檔上總說 beta1 拒絕 performance 測試 ;-)
8. 對 asp.net 的請求是由哪個 isapi extension 處理分發(fā)的?
a:
xspisapi.dll 在 iis mmc 中改
如果有自己寫的繼承 ihttphandler 的東東,知道這些就有用了。
9. 這個 isapi extension 實際上把請求 forword 到哪個 process?
a:
xspwp.exe
10 如果使用外部進(jìn)程維護(hù) session,這個進(jìn)程是什么?
a:
aspstate.exe
在 config.web 里面修改設(shè)置,可以把 session 放在其它機(jī)器上,甚至 sql 里。
這樣就可以直接支持 web farm 了。
但 session 變量如果是 object,就會有個 serialize 的過程,很耗資源。
如何讓你的 object 更好地支持 serializable interface 是個比較大的話題,
實在敲不動的說。
11 如何自己做個 httphandler? 能想出它有什么實際用處嗎?
a:
實現(xiàn) ihttphandler 做出自己的 handler 很簡單,但很有用,比如當(dāng)用戶請求一些
特殊文件時,比如 *.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 寫了個 custom control,
如何加上對 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 一個共同的 code behind,
做出真正 generic 的應(yīng)用。