2011年暑假的時候,產生了設計一個cms的念頭。采用的是asp.net技術。
主要原因有五
原因一:公司不斷的在做新站,新站(三到四個)的維護量比較大。新站和老站用了幾個新聞管理后台。程序員維護工作量比較大。而且老代碼寫的不是太好,比如like橫飛,sql亂爬。修改起來牽連太多,非常容易出錯,出錯了,找到錯誤需要花費大量時間。
原因二:上一家公司,有一個部門,專門做站群,大約10-30個人,天天上seo站,這些站都是程序員操作,一個人花幾周的時間做一個站,聽說做了好幾千個,很多站之間沒啥區別,就是樣式換換,url換換,title換換,數據源換換。當時在公司,覺得這樣好傻。說別人傻么,自己比較提出解決方法,否則傻的就是自己了。
原因三:解決程序員和美工編輯的分工,美工編輯上個專題,直接跑過來,找個程序員,就叫上,每次都嚇到我。程序員應該多花時間學習新技術。重復勞動,交給系統把。
原因四:做了這么久的asp.net b2c網站,深深的感覺asp.net編譯一次不容易。項目變大,頁面數量變多的時候,編譯發布一次,那個叫噴血啊。之前機器性能差,編譯一次,要等好幾分鍾,天天啥事情不用干了,等vs工作。
原因五:url自己重寫,方便seo,自己配置,控制能力更強。特別體現在二級域名上邊。
還有性能,緩存,模塊重用等等等等,都是問題。
中間插上一小段,曾經看到一個兄弟做項目用到url重寫,看了一眼http.ini文件,嚇到我了,每個城市地區都加上一條映射。一個項目粗看,起碼加上了成百上千條。口味太重。
例子:
http://www.xx.com/suzhou/1.html
http://www.xx.com/nanjing/2.html
本人比較懶,在年輕的時候也受到過開源項目的傷害(主要是代碼看不懂,項目配置不起來),所以就按照工作需求設計。nxcms主要是單個web,實現多站系統,並且系統間相對獨立,這樣可以快速上新站,並且后台采用通用方式。頁面采用模塊開發。
使用的技術也很簡單,VTemplate,dbhelper,log4net
特別要感謝VTemplate這個開源項目。http://www.cnblogs.com/kingthy/,曾幾何時,為了提高性能,我還拿頁面拼string,有了模版技術,開發起來,爽多了。
上圖:網站結構圖

頁面請求流程:
用戶請求-》iis-》識別用戶域名二級域名等信息-》urlmodule-》加載頁模板-》數據綁定。
數據簡圖:
頁面管理融合了頁面的基本信息,url重寫信息等,頁模板的保存。並且開除編輯后台,讓編輯最快速的上線專題。

新聞站seo理想結構,以下是我目前的粗淺認識:
http://www.xx.com/
http://www.xx.com/html/
http://www.xx.com/html/index_2.html
http://www.xx.com/html/1.html
http://www.xx.com/html/jc/
http://www.xx.com/html/jc/index_2.html
http://www.xx.com/html/jc/1.html
圖片和資源管理,當然也是通過數據庫管理,接下來的文章,我會對每個用到的技術點進行分析。比如url重寫,比較我在項目中對緩存的理解。並且之后的文章,我還會寫到程序員,美工編輯,通過系統協同工作。
項目的開發,參考了discuz的開源代碼,對此表示感謝。
這段時間,我也在研究flex,android,flex開發分成二部分,一個是red5開發視頻服務器,還一個主要是針對pad。有興趣的朋友,可以加我的微博,一起討論哦
