ASP.NET開源架構HIPPO系統技術內幕(一)

來源:互聯網
上載者:User

一、概述

  CMS是Content Management System的縮寫,意為“內容管理系統”。關於CMS的系統介紹,在網上可以找到很多,在此不做過多說明。CMS的產品也是多種多樣,並且有各種平台的,價格從免費到上千萬也是千差萬別,每個企業在選擇的時候需要根據自己的實際需要進行。

  HIPPO是本人在吸取了BroadVision這個頂級的CMS系統的核心設計方式的基礎上,加上Oracle EBS的一些特色技術,組成的一個小型CMS系統,考慮到商用的實際情況,目前可以支援MSSQL及Oracle,暫不提供對Access的支援,因為Access資料庫缺少多種企業級資料庫的特性,不能像其它資料庫一樣發揮優勢。資料庫連接封裝了專門的組件,這個組件是本系統的基礎模組,在各個層面都會調用,在使用者自訂網站的時候,可以直接使用。

  本產品的核心採用Meta-Data驅動方式,所謂Meta-Data,就是把所有的基礎資訊抽象出來,儲存在資料庫中,然後在使用的時候從裡面進行調用,再組裝成一個頁面,這樣就保證了系統的靈活性,並且為以後的多語言奠定了基礎。

  系統中大量的採用“對象”的模式,如“使用者”,“內容”等,使用者註冊的模組裡面不需要再向以前一樣去寫插入語句(INSERT),只要建立一個使用者,並給使用者物件賦上相關的屬性值即可,使用者登入驗證的時候,只要調用相關的驗證函式即可,不需要再寫SQL語句進行驗證,有效防止了SQL注入攻擊,並且可讀性及可維護性都得到大大的提高。所有對象的屬性都可以擴充,擴充的資訊就儲存在Meta-Data中。

  本系統採用的是微軟的dotnet技術架構,採用ASP.NET語言,使用靈活,共用ASP.NET的多種優勢,特別是在多語言方面,可以實現真正意義上的多語言,多語言部分採用類似資源檔的方式,但是又有所不同,操作簡單,語言的擴充只需要提供相應的翻譯資料即可,不需要對程式進行修改,也不需要重新編譯,最大限度的降低了後期維護的難度及成本。

  為了達到更好的使用者體驗,採用了第三方現成的組件進行封裝,這樣可以得到相當完善的控制項,並且開發速度快,品質高。特別是GRID組件的使用,使用手感就如同CS結構一樣,可以實現多種多樣的控制,比如右鍵菜單等,再加上多文檔效果的使用,效果非常絢。當然,在得到較好的使用者體驗的同時,也會帶來一定的負面效應,就是需要更大的頻寬資源,因為複雜的介面需要傳輸更多的資訊,不過在當今的網路情況下,加上我推廣的實際情況,我認為增加一點頻寬資源換來的好處,是非常值得的。當然這種很複雜的效果僅出現於後台管理程式,前端會員使用的網站繼續採用傳統的HTML方式。

  關於前端網站的實現,本系統並沒有像有些小型CMS產品那樣提供現成的網站直接使用,而是以framework的形式提供給使用者,這樣可以更充分的進行客戶化定製,特別是美工方面,完全不需要本產品提供模板,而是可以採用標準的MVC架構進行開發,靈活自由,由於本產品封裝了大量的組件及控制項,所以開發難度極低,在開發過程中,不需要知道資料庫的存在,直接調用資料庫組件即可。很多大型系統均採用這種架構結構。

  與前端展示不同,後端管理程式是本產品的組成部分,可以直接使用,並且在管理程式部分對系統的各個模組進行配置,在客戶化中如果需要新增加功能,只要在菜單裡加上相應的串連即可,不需要對主程式做過多的變動。

  關於資料存放區,有一個重要的指標就是安全性。本系統的登入密碼採用MD5密碼編譯演算法,與其它產品類似,即便能進入資料庫,得到密碼串,也無法反推出密碼的原文,因此就無法進行正確的登入。但是針對所管理的內容,如果進入資料庫,雖然沒有密碼,一樣可以看到資料的真實內容,比如您的系統如果管理著上千萬的會員資訊,或房屋置換資訊,那麼會員的聯絡電話就成了非常敏感的資訊,如果被競爭者拿到,會對公司造成致命打擊。針對這種情況,本產品有一個專門的加密策略,可以對某個表的某個欄位進行單獨加密處理,這樣在資料庫中直接查看的時候,就只能看到一些亂碼,只有登入系統後才能看出原文。

  從下一章開始,介紹一下Meta-Data驅動,這是本系統的設計核心所在。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.