沒有做非常深入了解,僅僅是一些大概的感覺:
首先,不愧是Asp.Net小組的開發人員寫的,將Asp.Net的特點優勢發揮得淋漓盡致,豐富強大的表現層,支持換膚等高級特征,基本上沿襲了Asp.Net Forum的技術。
但是,CS并不適合作為企業的開發架構,原因如下:
1、中間層和數據層很弱,雖然數據層提供了所謂的“Provider"模式,可以支持切換各種不同的數據源,但是業務邏輯依然采用的事務腳本的方式,雖然CS擁有一些領域實體類,但是這些實體基本上是用在表現層,在業務并沒有針對領域建模,大部分業務邏輯依然被封裝到的存儲過程中,是針對表編程,而不是面向對象編程。
1、中間層和數據層很弱,雖然數據層提供了所謂的“Provider"模式,可以支持切換各種不同的數據源,但是業務邏輯依然采用的事務腳本的方式,雖然CS擁有一些領域實體類,但是這些實體基本上是用在表現層,在業務并沒有針對領域建模,大部分業務邏輯依然被封裝到的存儲過程中,是針對表編程,而不是面向對象編程。
2、為了實現Provider模式,CS將所有的業務邏輯接口都提取出來,都放在CommonDataProvider中,這樣會導致該文件非常大,管理起來比較困難,而且具體的實現類則更夸張,Sql的SqlCommonDataProvider文件竟然達到了4000多行,這還僅僅只是一個論壇+BLOG+照片管理的邏輯而已,假如是企業級應用,那簡直不敢想象。
3、雖然采用了對象實體類,但是沒有采用ORM,Relation到Object的轉換竟然全都用手工!運行速度可能會比較快,但是開發效率嘛。。。。,假如是做企業開發也這樣,那完蛋了。
4、表現層的構造雖然巧妙,但是太復雜,不適合企業的快速反應開發,企業用戶的需求變化很頻繁,不可能用這種用CS代碼寫自己的服務器控件的方式來慢慢的精心構造一個功能強大支持換膚的表現層。
綜上所述,我個人認為Community Server只適合學習Asp.Net和代碼編寫技巧,架構則不適合模仿,除非你對Asp.Net的理解已經達到了CS作者的這種程度,否則采用這種架構來開發企業應用會死得很慘。
浙公網安備 33010602011771號