建立組件
首先這裡的組件不是通常意義的組件
*動態編譯的過程的一個主要缺陷就是如果組件中出現任何錯誤,會導致整個網站出錯不能運行;
*不同語言編寫的組件需要放在不同的檔案夾中,如果是一種語言寫的就無所謂;
*靜態(static)在其它語言中被稱作共用,它是沒有任何執行個體歸屬的;這句話太好了啊,記得學C++的時候就一直搞不懂,一直都是從它的實現機制上去理解,啥靜態不變的啦,後來用了一段時間後不這麼想了,但是一直沒有一個很好的理解總感覺缺點什麼,共用兩個字真的太好了,它的後半句話也解釋了為什麼靜態變數不能引用其它的變數;
*Asp.Net這種多線程環境中使用共用成員變數和屬性,可能會引發一些稀奇古怪的多線程並發問題,如果一定要使用靜態屬性,請盡量將其定義為唯讀;這個問題也一直困擾著我,哎,看好書就是如此的獲益匪淺啊;
*靜態建構函式在所有執行個體建構函式執行前執行,並且在程式生命中只執行一次,哈哈,這個是我當初看到有人用的時候自己悟出來,想想自己都感覺自己天才,吹完了~
*抽象類別是Asp.Net 2.0 Provider的基礎,如Personalization、Membership、Roles、等;
*新群組件類庫的時候一般都要引用System.Web.dll的引用;
*引用有兩種方法,一個是放在Bin目錄下,不知道咋回事windows的程式都是直接自動搜尋目前的目錄下的Bin檔案夾中的程式集,另一個是直接放全域組件快取中就是C:\\windows\assembly
*添加到全域緩衝簽必須要先請命名程式集,類似於GUID,命令列工具(sn.exe –k KeyPair.snk),產生KeyPair.snk檔案,中放著隨機產生了公/私密鑰;
*在AssemblyInfo.cs中
[assembly:AssemblykeyFile("KeyPair.snk")][assembly:AssemblyVersion("0.0.0.0")]
四個0分別代表主要版本號、副版本號碼、構建編號和修訂編號
*加入全域緩衝命令列(GacUtil.exe /i MyLibrary.dll)
*config中添加引用的程式碼範例:
<system.web> <comilation> <assemblies> <add assembly="MyLibrary,Version=0.0.0.0,Culture=neutral,PublicKeyToken=123456123456"/> </assemblies> </coml\pilation></system.web>
*通常情況下避免全域應用程式集的使用
*當程式開始進入架構設計的時候會有很多問題值得思考,反正我只知道沒有最完美的設計只有最適合當前的設計!
慢慢來,加油吧;
*簡單的三層應用page468