初次寫項目總結,請園子裡的朋友們多多指教。
項目描述
目前開發的是一個Web項目,分多個子產品,如辦公系統子產品和計費系統子產品等,将來這些子產品會進行分布式部署,短期内會放到同一台伺服器上,資料庫也放在同一台伺服器上,要求現在做的開發能夠支援幾個系統之間統一的風格,可以根據使用者選擇個性化顯示皮膚主題,并能夠在将來的某個時間很友善的切換為分布式部署。
主要問題
經過分析,明确了一下幾個問題:
1,各子產品具備統一的UI風格,且支援使用者個性化UI主題,即,使用者小翁在辦公系統更改了自己的皮膚主題為BlueIce後,當小翁進入計費系統也是BlueIce主題。
2,目前各子產品及其資料庫是在同一台伺服器上,但以後會采用将幾個子產品及其對應的資料庫分布在不同的伺服器上,針對共同的基礎資訊如個人資訊進行資料同步。
3,開發團隊成員有各自負責的子產品,成員之間應将公共資源檔案如js,images,css,類庫保持一緻,不能出現混亂。
解決方案
1,設定一個UserControl用來接受使用者對皮膚主題的個性化選擇,将這個UserControl存于資料庫中,在每一次使用者登入任一子產品之後将使用者的個性化資訊(如使用的主題,權限等)加載進基礎資訊伺服器的HashTable,以後使用者通路任一個子產品,該子產品即可根據HashTable裡面的使用者資訊做個性化顯示。
2,在XML中進行配置伺服器的IP和連接配接字元串資訊,根據需要選擇不同的連接配接字元串和資料通路類,利用WCF進行中轉操作資料庫,這樣做的好處是以後可以很友善的切換到分布式部署。
3,在項目開始時,建立好開發的一個架構,在根檔案夾下建立子產品之間公共使用的部分如masterpage,iamges,theme,公共方法、類庫等。由于幾個系統之間但又要在項目周期内完成,采用了多人在相同架構下開發,後期進行分離的方法進行。
<a target="_blank" href="http://blog.51cto.com/attachment/201106/221804523.jpg"></a>
如上圖,項目中的幾個子產品公用的元素如masterpage,js,css,theme,image 等抽取出來放到項目的根檔案夾下,每個子產品各自的個性化圖檔,腳本等放到各自的檔案夾中。這樣到了後期分離時,隻需要将公共的部分逐一配置設定給各個子產品,單個的子產品即可形成獨立的系統。
團隊成員的開發風格雖然經過磨合之後基本能達成一直,但為了保持風格的統一,在masterpage上留的可編輯區域非常有限,各個成員能夠修改的部分隻有一級标題、二級标題、子產品内容三個地方。
備份,目前采用的是微軟的Windows Live Sync各自建立自己的共享檔案夾,組長可看到團隊全部成員的代碼進展,并可同步備份。
這次項目牽扯到了WCF,Windows Service等以前沒有具體用過的東西。在開發Web過程中遇到了很多的困難,其中根據不同的使用者權限生成不同的一級标題和二級标題部分性能處理的不太好,正在着手解決,另外,感覺和同僚進行溝通也是很重要的一個環節,有的時候需要堅持己見,有的時候需要虛心聽同僚的見解,希望能共同把這個項目做好。
本文轉自wengyuli 51CTO部落格,原文連結:http://blog.51cto.com/wengyuli/588631,如需轉載請自行聯系原作者