開篇,直入主題,先講
分層!
分層的好處不必說大家都很了,通常我們會根據需要將程式分為表現層(網站,winform等),商務邏輯層,資料訪問層,為了靈活,我們還可能加上介面層或者說契約層等。
的的第一個項目程式是Winform,最後一個是asp.net Web application ,而商務邏輯層和資料訪問層等對於這兩個表現層是可以共用的,這樣就看到了分層的一個好處!很直觀吧,比如要將你的Web項目遷移到Winform上,那麼邏輯層和資料訪問層可以直接使用而不必做多大的改動!如果我們的程式要支援分布式的話,那麼層之間的修改不會對彼此產生多大的影響!
ok,就此打住!分層思想的好處已經夠根深蒂固了!
好了,上面的圖顯示了一種物理的分層,優點是結構很清晰,然而,不可否認會有一定的效能損失,雖然對於可維護性的提高可以忽略,但是對於沒那麼複雜的項目,分層開發還是值得考慮的,當程式被訪問的時候,需要所有程式集共同協作,這樣伺服器要啟動並執行東西顯然會多了那麼一點點,為了達到最佳化的效果,我們可以把這些代碼和顯示層放在一起,可以建立不同檔案夾來區分,這樣是否會覺得好點呢!如果程式支援分布式,要調用WebServices或remoting,這樣做得話,效能應該會提升不少。
再說說
DataSet
,不知道大家的資料訪問層返回資料類型是什麼,DataSet是很方便,不過它是支援斷開式串連,所以它會存在與記憶體中,就像一個在記憶體中的資料庫一樣!如果訪問量大,伺服器的效能就不是很好了!它的便利性也就沒什麼優勢了!而且DataSet裡麵包含了DataTable對象,DataTable裡面又包含了DataRow對象,真是不少!如果我們用強型別的實體,返回,採用實現集合介面的泛型集合代替,是不是感覺清爽了不少呢!比如說List<Entity>效果完全一樣,也可直接綁定到資料清單控制項上!而且效能也肯定比DataSet好!
最後再聊聊
ViewState,外號效能殺手的它還真是令人傷腦筋,但是少了它,好像很多控制項的功能都發揮不出來了,但是用了又覺得網站的效能降低了不少,前陣子的MVC熱中,這個東西好像也牽涉其中,呵呵,還是那句,適當的時候再用吧!
好了,今天就到這裡,繼續學習!最佳化這個話題是比較廣的,希望藉此能有個機會討論!隨筆中或許有一些不當的地方,如有不對,還請指出,協助大家一起進步!歡迎回帖啊!