2005年12月,公司又接到了一個小型網站建 設的項目,需求相對簡單:頁面要求美觀大方,后臺基本上就是新聞發布、留言板,最新產品推介、訪問統計、論壇等常用功能,多年來網站建設的經驗,使我深味 中小型網站的需求特點:后臺功能基本相同,而前臺頁面則要求精美,設計有創意,這就促使我多年來一直在尋求一種框架:它能夠隨心所欲的改變頁面視覺效果, 能夠快速的開發定制模塊,并且以插件的形式嵌入到現有的系統中,漫漫求索路,黃金框架喲,你到底在何方?
?
一次偶然的機會,我接觸到了.net平臺下名揚四海的開源項目DotNetNuke(簡稱DNN),一股電流剎時涌遍我全身,我感覺到了一見鐘情,感覺到了全所未所的震撼,我希望與朋友們一起分享這戀愛般的感覺。
?
DNN 首先是開源的,并且采用BSD開源協議,也就是說你可以任意修改源代碼、傳播、作為商品出售,僅有的要求就是保留源代碼中的版權文字,這就解決了我多年來 的心病:我知道動網新聞發布系統、微軟官方論壇等都做得相當不錯,可惜源代碼都是不公開的,并且有著很嚴格的產權保護,你在做項目時不得不多考慮一些東 西,但是DNN不一樣,它幾乎赤裸裸的以至于你可以為所欲為,并且得到了官方的穩定支持,學習和開發資料相對齊全,這么好的東西,我為什么不采用拿來主義 呢?
?
DNN部署是很簡單的,沒費多大勁,我從官方網站(
http://www.dotnetnuke.com
)下載了安裝版,數據庫只支持SQL Server,不過它提供了接口,你可以自己開發讓它也同時支持Oracle,Access等,但是工作量不小哦。
?
當 我輸入localhost進入剛安裝完畢的DNN時,啟動速度相對很慢,我的筆記本特別興奮,硬盤使勁的轉著,十幾秒后終于看到了首頁,界面設計屬菜鳥級 的,一如陳世美相遇秦香蓮,沒多大興趣也沒多大驚喜,而且撲面蓋地的英文,好在本人英文水平也還湊合,據說和子怡姐姐不相上下,整個網站沒有Flash。 我很快找到了登錄窗口,想進入后臺看看,程序員嘛,多少都是偷窺狂,都渴望盡早的撕開那美麗的外衣,渴望盡早的感受那驚心動魄的內部結構。
?
我 以最高權限Host用戶進入了,后臺不是我想象中,如動網一樣的Outlook菜單,而是和前臺沒多大區別,多個了工具欄,每個模塊,如新聞、友情鏈接都 多了一個小箭頭,鼠標晃過去就出現了菜單,很多功能所見即所得,真正震憾之旅開始了,要說清出這一大堆的前因后果,得聽我細細道來。
?
我 首先遇到的問題是漢化,我不可能拿個英文版的東西給客戶吧?人家當時就可以用中文罵死我,但是我不知道DNN如何實現多語言?看了一下開發文檔,原來 DNN是以資源包的形式實現的,我當時大笑,英雄所見略同啊。就是有一大堆的xml文件,你要變成中文的,就加個xml文件,按條目將標簽對照著翻過來就 行了,而強大之處在于,你可以在后臺直接上傳個中文包就立即漢化,也可將自己手動漢化的內容導出成xml資源文件包。這里特別感謝 dnnChina.net網站,將絕大部分都成功翻譯成中文了,而且相當專業,我從dnnChina.net網站下載完中文包,幾秒鐘后,網站全成中文的 了。不過后來經常發現一些亂碼,于是我在web.config文件中,把默認編碼utf-8換成了gb2312,亂碼問題都順利解決,我當時就納悶:你 utf-8不是號稱支持全球文字嗎?怎么一遇到中文就水土不服呢?郁悶了好久,始終不得其解,打電話咨詢相關機構,老外一口英文,他說的話我全能聽懂,可 是我說的英文這家伙竟然一句都聽不懂,這老外聽力根本不行,于是更郁悶了。
?
漢 化問題解決了,那么緊接著是改變頁面視覺效果了,這是我最耗時間的地方,客戶經常以頁面設計來決定整個項目的成敗,我當時嘔心瀝血,窮盡所思,終于設計出 了令客戶滿意的頁面,當時真的很崇拜自己,美工編碼雙料冠軍,人世罕見(臭美一下)。那么如何將這些定制的頁面套到DNN呢?DNN自己定義了一系列的標 準,按照這個標準,我幾乎當天就制作做完了HTML頁面,傳到后臺中就自動套上了,真的很神奇啊。
?
皮 膚問題搞定,然后就是要實現內容的后臺添加了。DNN以模塊的形式實現這些功能,比如,客戶要一個在線調查,直接插入相關模塊就行了,而且各個模塊可以在 頁面中自由的移動,很方便。其實所有模塊中,最重要的是就是文章管理模塊了,可惜DNN沒有自帶這個模塊,上網搜出一個免費的,備受國內開發者推崇的 Article模塊,可惜不太好使,沒辦法,只好自己開發一個。我覺得這才稱得上是黃金框架,你開發一個模塊,DNN提供了很好的接口,不用改變原系統一 行代碼,開發完成后,再以插件方式套上去,DNN自動識別并可以立即使用,真正的即插即用。
?
你如果能開發出第一個模塊,其他的產品推薦、留言板模塊就特別快了,不過很多模塊DNN都自帶了,不好使的可以到網上去搜,很快就可以找到,后來發現國外好多程序員在網上賣DNN模塊,有個我花一天完成的同樣功能模塊,老外竟然賣2美元,真是黑啊,商業意識真強啊。
?
不 過,當下DNN也有一些問題急待解決:1、性能不是很好,我用DNN搭建完成的這個項目后,用LoadRunner測試了一下,50人同時在線,首頁打開 竟要32秒,并且DNN是很耗資源的,我分析了一下,DNN由于產品化,為支持多語言、多數據庫等功能增加了許多額外的代碼,自帶的模塊從數據庫讀取數據 時沒做優化,都是按一股腦的綁到了DataSet中,當數據量到萬條以上,服務器估計就得撐不住了。
?
2、自帶的模塊大多不太好使,很多模塊連基本的翻頁功能都沒有,例如友情鏈接模塊,就只支持文字而不支持圖片鏈接,只好自己重新開發了。
?
3. 調試代碼太耗時間。由于DNN本身代碼量就不少,每次要調試一個功能時,你最好旁邊放杯茶,當你茶喝完了,要調試的代碼也就出來了。后來自己開發模塊時干 脆就自己建立解決方案,把需要的dll都引入,這才大大提高了開發效率。于是當時我又納悶了:Windows上千萬條代碼,也不知他們是怎么調試的?
?
中國軟件現狀:大企業買解決方案,小企業買產品,在中小企業建站這塊,一直沒有出現成熟的商業產品,此時,DNN卻吹響了這個令人心動的號角,我大膽預測,未來兩到三年,DNN在中小網站中必將大行其道,我將迎著這個趨勢大步走在社會主義軟件開發的康莊大道上。
?
這里有一本介紹DNN使用和開發的書籍,《Professional DotNetNuke ASP.Net Portals》是DNN開發者寫的,權威性和可讀性都很強,不過是全英文版的,有需要的朋友可以發電子郵件向我索取:
starchenzhi@163.com
原文地址:
http://blog.csdn.net/starchenzhi/archive/2006/03/26/639204.aspx#775530
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
