主體架構
各頻道分別位於不同的Web Project(具有獨立的二級域名)並將所有的業務邏輯以及數據訪問功能封裝成Class Library所有頻道共用這個Class Library
下面詳細介紹實現方法
假設網站有三個頻道新聞論壇以及博客對應的二級域名為newsforumblog除此之外還需要另外定義兩個域名分別用於網站首頁以及用戶注冊登陸功能(基於Passport機制本文後面將作詳細介紹)對應域名為homepagepassport
配置各頻道URL
a配置hosts文件
用文本編輯器打開hosts文件(位於c:\windows或winnt\system\drivers\etc\)該文件中存放初始的域名解析信息當我們在浏覽器中請求某個URL時系統首先在hosts文件中查找相應域名如果找到則跳轉至指定IP如果沒找到則進一步提交DNS進行域名解析
配置很簡單格式形如[IP][空格][域名]每條數據對應一行下面為配置內容
wwwmysitecom
passportmysitecom
newsmysitecom
forummysitecom
blogmysitecom
你可能已經注意到了各頻道對應於不同的IP這正是該架構的開發靈活性所在各頻道(Web Project)可以創建於不同的開發者電腦通過將配置內容同步到各台電腦可以方便的在各頻道間進行頁面浏覽就像這些頻道位於你自己的電腦一樣!采用這種方式可以極大降低開發耦合性每個頻道都是一個獨立的模塊一個頻道中的Bug不會影響到另一個頻道
b配置WebConfig
考慮到各頻道二級域名有可能進行調整將相應配置信息存放於WebConfig文件是一個好辦法同樣的該配置信息必須同步到各Web Project下面為配置內容
<add key=
SiteDomainName
value=
mysite
com
/>
<add key=
HomepageSiteURL
value=
http://www
mysite
com/homepage/
/>
<add key=
PassportSiteURL
value=
http://passport
mysite
com/passport/
/>
<add key=
NewsSiteURL
value=
http://news
mysite
com/news/
/>
<add key=
ForumSiteURL
value=
http://forum
mysite
com/forum/
/>
<add key=
BlogSiteURL
value=
http://blog
mysite
com/blog/
/>
<add key=
LocalSiteURL
value=
/blog/
/>
各配置項說明如下
SiteDomainName:站點域名形如mysitecommysitecomcnmysitenet等該配置項的使用方法將在後文介紹
LocalSiteURL:當前頻道根路徑也就是Web Project所在網站或虛擬目錄的路徑以/開頭該配置項主要用於頻道內部的引用比如圖片引用頁面鏈接等
其余配置項:用於頻道間的引用比如頻道導航功能調用等
創建Model部件
在MVC模式組成中Model部件包括所有的業務邏輯操作其中也包含數據訪問操作
本方案將Model部件拆分成對象實體對象操作以及數據訪問三部分封裝成三個Class Library
由於Class Library設計本身就是一個很大的話題本文就不再祥述了有興趣的話可以參考一些相關資料
[] []
From:http://tw.wingwit.com/Article/program/net/201311/15771.html