開始接觸menu控件,感覺怎麼這麼別扭啊。
首先說數據訪問部分,為了所謂的provider pattern,一層一層的包裝,而且都是些黑盒子,雖然概念是挺先進,結構好象也很清楚,但還是讓我覺的迷迷糊糊,至於嘛,只是想做幾個數據驅動的menu而已。還有那個前台的menu類,那麼多的PropertIEs,尤其想到menu類也是個黑盒子,一點都不知道,它生成的xHtml會是什麼樣的,而我只有一點點CSS知識而已,想到這裡連嘗試的欲望都沒了。還不如自己動手親自寫一個menu呢,網上好象有好多現成的Javascript類,比如這個:
Div_CSS 結構的,雖然沒有ASP.Net 控件那麼漂亮,可也很是實用,至少都是透明的。不過後台有點麻煩,當時的想法是:
1 設計一個類sitemap,從數據庫裡讀導航信息,然後存到一個dataset中,
2 在application_start 事件處理函數中 實例化一個sitemap 和一個sqlCachedependency ,插入到cache中。
3 一個dependency的回調函數,以更新cache中的數據
4 從cache中提取數據生成menu。
這樣一來可以想象default.master的代碼的代碼會亂七八糟。非但不太容易寫,寫好的代碼也不太容易復用。而且還有關於cache的很多問題。
肯定有其他辦法,ASP.Net好多東西我都沒有接觸過。不過現在想想 provider pattern還是不錯,一層api連接表示層,一層api連接數據訪問層。