.Net平臺的垃圾回收機(jī)制,可以自動的dispose不再引用的對象實(shí)例,所以很多開發(fā)人員并不主動釋放申請的對象資源。事實(shí)上,在對象的生命周期結(jié)束之前是不會被釋放的。
但是,很多時(shí)候當(dāng)對象處于生命周期之內(nèi)時(shí),我們不再使用它,以便釋放資源提升系統(tǒng)效率。因此,主動釋放申請的資源顯得很有必要。
永遠(yuǎn)不要把力所能及的事情交給操作系統(tǒng),及時(shí)釋放不再使用的資源是一個(gè)好習(xí)慣。
六、數(shù)據(jù)庫訪問
數(shù)據(jù)庫訪問永遠(yuǎn)是系統(tǒng)的瓶頸,選擇高效、穩(wěn)健的數(shù)據(jù)庫訪問模式是產(chǎn)品性能的基礎(chǔ)保證。
永遠(yuǎn)不要假設(shè)你的應(yīng)用系統(tǒng)構(gòu)建與某個(gè)數(shù)據(jù)庫之上,因此必須有統(tǒng)一的、透明的數(shù)據(jù)庫訪問機(jī)制。
采用ADO.Net訪問數(shù)據(jù)庫
基于效率和穩(wěn)定性的考量,采用微軟平臺原生的數(shù)據(jù)庫訪問模式ADO.Net。使用ADO.Net可以通過OLEDB和ODBC兩種模式訪問數(shù)據(jù)庫,我們建議使用數(shù)據(jù)庫廠商提供的OLEDB模式,這種模式繞過了ODBC,使得數(shù)據(jù)庫的游標(biāo)性能大大提升,效率更佳。
不使用第三方的數(shù)據(jù)持久層使用類似于Nhibernate之類的第三方數(shù)據(jù)持久層工具雖然可以提高開發(fā)的效率,但是卻降低了系統(tǒng)的性能和彈性。性能對于產(chǎn)品而言,遠(yuǎn)遠(yuǎn)比開發(fā)效率重要的多,況且基于VS2005的開發(fā),效率不是問題。請記?。旱谌降墓ぞ哂肋h(yuǎn)不能成為你的產(chǎn)品核心技術(shù);數(shù)據(jù)訪問機(jī)制是系統(tǒng)的效率瓶頸,對
使用自主產(chǎn)權(quán)的數(shù)據(jù)對象
直接采用ADO.Net封裝最底層的數(shù)據(jù)訪問方法:插入、刪除和更新,以及事務(wù)管理等;客戶端和服務(wù)器端采用相同的數(shù)據(jù)訪問機(jī)制,并設(shè)立連接緩沖池提升數(shù)據(jù)訪問效率。
七、分布式事務(wù)管理
對于多層分布式應(yīng)用而言,數(shù)據(jù)庫事務(wù)呈現(xiàn)出“遠(yuǎn)程、分布”的特色,導(dǎo)致事務(wù)難以管理。
對于Ado.Net而言,事務(wù)綁定了數(shù)據(jù)庫連接,因此必須在數(shù)據(jù)訪問對象中對每一個(gè)數(shù)據(jù)庫連接管理各自的事務(wù)或嵌套事務(wù)。如果要訪問數(shù)據(jù)庫,服務(wù)器上的數(shù)據(jù)訪問對象將自動分配一個(gè)特定的連接,根據(jù)該連接ID執(zhí)行數(shù)據(jù)操作;無論該事務(wù)分布于多少個(gè)遠(yuǎn)程客戶端進(jìn)程,服務(wù)器數(shù)據(jù)對象只需要鎖定連接ID即可輕松進(jìn)行事務(wù)管理。
八、智能客戶端
智能客戶端是易于部署和管理的客戶端應(yīng)用程序,它綜合了瘦客戶端和胖客戶端的優(yōu)點(diǎn),通過統(tǒng)籌使用本地資源和到分布式數(shù)據(jù)資源的智能連接,提供快速響應(yīng)的和豐富的交互式體驗(yàn)。
智能客戶端分為Windows Form,Office Client,Mobile Client三種類型,具有如下特點(diǎn):
利用本地資源
利用網(wǎng)絡(luò)資源
支持偶爾連接的用戶
提供智能安裝和更新
提供客戶端設(shè)備靈活性
.NET 框架基類庫內(nèi)嵌了支持智能客戶端的豐富程序集,通過使用公共語言運(yùn)行庫 (CLR),可以利用任何受到 .NET 支持的語言來開發(fā)智能客戶端。
智能客戶端是瘦客戶段的強(qiáng)大替代品,也是微軟推薦的客戶端模式。盡量使用智能客戶端而不要使用瀏覽器。如果可以,請把你的客戶端系統(tǒng)構(gòu)建在Office平臺上,如Outlook。