BlogEngine.Net架構與原始碼分析系列part2:業務對象

來源:互聯網
上載者:User

共同的父類BusinessBase

上篇文章朋友的評論給了我很大的動力寫這個系列的文章,看來大家都比較關注這個系列。為了後續文章做一個鋪墊,我在這篇文章的前半部分講解一下BlogEngine.Net的整體架構,後半部分主要是對於BusinessBase類的分析。

下載原始碼以後開啟解決方案,我們發現從項目的組織圖上BlogEngine.Net分成兩個項目:一個是BlogEngine.Core,顧名思意,它就是BlogEngine.Net的核心邏輯層。所有的商務邏輯和一些功能都在這個項目中體現,實際上這個核心業務層中也有資料訪問的一部分,那就是Provider模式。在BlogEngine.Net中,關聯式資料庫或XML等的作用只有一個,那就是儲存資料,BlogEngine.Net的業務對象的ID產生是由核心層控制的,而不是用資料存放區部分產生的,因為這樣可以支援更多的資料來源。它不同於很多其他業務系統,資料庫裡面可能有很多預存程序,觸發器,函數等來完成一定的業務運算和資料處理。在BlogEngine.Net中,我們甚至可以使用一個.txt檔案來自己開發一個Provider給BlogEngine.Net使用,方法很簡單,只要實現BlogProvider(BlogEngine.Net提供),MembershipProvider和RoleProvider就可以了,實際上BlogEngine.Net也在很大程度上利用了.Net本身的經典模型。另外的一個項目是一個網站,主要就是具體的Web實現,但是具體的功能都是調用核心層來完成的。

實際上剛開始看BlogEngine.Net的原始碼時我也很難入手,不知道從哪裡看起,找不到入口的地方。其實也難怪,官方提供的資料大都是關於使用和開發擴充的,社區裡找到的東西也不是自己最想要的。研究了一段時間以後我發現整個BlogEngine.Net都在圍繞這BusinessBase這個基類展開,其它的類都是為它提供服務或接收它的訊息,例如Provider,Extension等。BusinessBase是所有業務類的基類,裡面封裝了很多業務類共有的特徵。它的子類有:

AuthorProfile:使用者的Profile的封裝。

Page:這個類實際上是對應著BlogEngine.Net中的一篇靜態文章,page和post具體區別不是很重要,感興趣的朋友可以參照一下官方提供的說明。

Post:在BlogEngine.Net應用最多的一個類,代表作者提交的一篇文章。

Category:文章分類,一篇文章可以屬於多個分類,分類之上還可以有父分類。

下圖是他們的繼承關係:

圖中的IPublishable介面我會在以後的文章中做詳細的講解。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.