這段間時一直在查找程序集系統之類的問題,在現正好有機會和大家同享一下.
????? ? 開始機房收費系統重構也半個月過去了。但看自己的系統連一個簡略的登錄還沒有實現。自己不免有些羞愧了。近來自己的習學態狀總的說來還是不錯的。但是由于自己對來原的識知把握的欠好所以致導了自己不知如何手下。老是覺感有很多多少的問題要決解:
????
- 寫軟件發開檔文。
- 畫數據流程圖
- 畫E-R圖
- 畫uml圖
- 習學應用EA
- 建立數據庫
- 習學觸發器的應用
- 習學存儲過程的建了與應用
- 習學數據庫的范規化
- 習學ADO.net
- 習學應用SqlHelper對數據庫拜訪類的封裝。
- 應用設計模式
- 盡可能多的應用設計模式。
- 應用三層構架
- 習學應用定名范規
????? ? 把這些問題都列出來,現發都是前以學過的內容。但是由于自己時當學的不踏實在現只能回過頭來都看一遍了。返回去看了很多多少同窗的博客,覺感獲收挺大的。
????
????? ? 通過半個多月的的大習復。天幾前終究開始我的機房收費系統個人版了。先從寫檔文開始,但是我現發寫到概要設計的時候我實在是寫不下去了。原因是要寫數據字典和接口實現。記得自己版一第的機房收費系統是在系統經已實現的前提下寫的。寫檔文的時候可以看著系統一點一點的寫。自己用了那幾個法方,要需定義什么變量(當然那時候是沒有接口的觀點的)自己清晰的很。但是在現沒有做系統的時候就要把這些都寫出來。肯定是不能拿來原的系統作為參考的。那時的系統自己從來沒有慮考什么定名范規三范式的。而且那時候更沒有應用接口、設計模式。這讓我怎么寫呢。
????但是話說回來些檔文的的目就是為了便利發開的。些檔文和畫uml圖該應是要占個整發開過程80%的間時的。
????對于我這類剛體會了一點面向對象的想思的菜鳥說來,讓我做到指揮若定,決勝千里。似乎有點難了。于是我膽大的決議,在檔文只寫到了概要設計的時候我開始了程編實現。
????
????? ? 從vb到c#到vb.net這個適度該應說是不大的。但做得真正的靈活運用還真多得搗騰幾遍。開始用vb.net碼編時總覺感不道知如何手下了。
????但幾天的摸爬滾打總算實現了簡略的登錄。
????
????結總幾個技巧要點值得注意。。
?
????1.Shared和 Static關鍵字:
????參考瀏覽:
????VB.net中shared和static關鍵字的區分密解
????? ? 其中vb中static關鍵字的用作為:
????
????? ? 在類中的static成員變量意味著它為該類的有所實例所同享,也就是說當某個類的實例修改了該靜態成員變量,其修改值為該類的其它有所實例所見;
????
????? ? vb.net中shared關鍵字的用作:
?????
????? ? 同享類或結構的成員使每一個實例都可以應用該成員,而不是采取非同享模式,在非同享模式下,每一個實例都要需有自己的副本。例如,如果一個變量的值應用于個整應用程序,這點很有效。如果聲明該變量為?Shared,那么有所實例會拜訪雷同的存儲位置,而如果一個實例更改了變量值,有所實例會都拜訪更新后的值。
?????
????? ? 由此可見vb.net中的shared關鍵字的用法和vb中static的用法是雷同的。
?????
????? ? 2.應用抽象工廠時提示:
青春,有嬉笑聲與哭泣聲夾雜的年華,青春的少年是藍天中翱翔的幼鷹,雖然沒有完全長大,有些稚氣,有些懵懂,脫不開父母的雙手卻極力想去找尋屬于自己的一片天空,為的是一時的激情,為的是一種獨自翱翔的覺感!
? 未能加載文件或程序集“”或它的某一個依附項。系統找不到指定的文件
????? ? 決解法方:
????
????? ? 按照三層的構架,是DALFactory程序集里通過反射創立針對特定數據拜訪層里的對應類實例,這樣BLL調用接口時就道知調用這個對應類實例里的實現法方?
????
????? ? 而反射動態加載程序集是通過這類法方 Assembly.Load("程序集").CreateInstance("定名空間.類"),其中的“程序集”讀取的是Web層bin文件夾下對應的dll,即反射加載的程序集dll在UI層的bin文件夾必須有,不然就會涌現如題的誤錯。
????需只把DAL層的異變徑路放到:UI層的bin文件夾。
????
????但這之前定一要證保一下幾點:
????
????? ? ? ? 1.反射程編求要在網站的Bin文件夾中有經已譯編好的.DLL文件(即持保DLL文件存在),并且持保稱名和譯編前庫類的稱名分歧。
????可稱:加添引用性。
?????
????? ? ? ? 2.查看網站中的目項(庫類)性屬,確認否是默許定名空間和程序集稱名以及Bin文件夾下的DLL文件稱名否是分歧,不分歧則會涌現未能加載文件或者程序集,所以的修改目項的性屬。
????可稱:稱名分歧性。
?????
????? ? ? ? 3.議建在程編的時在創立庫類的時候寫上系統稱名+目項稱名,可以有效的免避Bug產出。即:SystemName.Model或者SystemName.IDAL。eg:BBS.Model。
????可稱:稱名完整性。
?????
?????Assembly.Load(path)其中這個path是加載你目項web下bin目錄的程序集,也就是說你要反射的程序集在你的UI的bin下定一要有,看看你引用沒有呢?
?????
????? ? ? ?4、Model無引用。
?????
????? ? ? ?5、DALFactory引用IDAL,通過讀取web.config里設置的程序集,加載類的實例,返回給BLL應用。
?????
????? ? ? ?6、SQLServerDAL引用 Model和IDAL,被DALFactory加載的程序集,實現接口里的法方。
?????
????兩個要主的問題。大家可能也會碰到。
????當然不止是這兩個問題。而且后以的問題也定一很多。但代碼是一點點寫的不寫是永久完不成的。想手動還沒有手動重構的同窗希望對你們有助幫。
????
文章結束給大家分享下程序員的一些笑話語錄: 古鴿是一種搜索隱禽,在中國快絕跡了…初步的研究表明,古鴿的離去,很可能導致另一種長著熊爪,酷似古鴿,卻又習性不同的猛禽類——犤毒鳥