日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

ASP.NET多頻道網(wǎng)站架構實現(xiàn)方法_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:ASP.NET 2.0高級數(shù)據(jù)處理之數(shù)據(jù)綁定
在前面的"模板中的數(shù)據(jù)綁定"部分中我們論述過,ASP.NET包含了一種宣告式的數(shù)據(jù)綁定語法,用于在數(shù)據(jù)綁定模板中把數(shù)據(jù)源字段與控件的屬性相關聯(lián)。你也可以在代碼中使用<%# ... >語法

各頻道分別位于不同的Web Project(具有獨立的二級域名),并將所有的業(yè)務邏輯以及數(shù)據(jù)訪問功能封裝成Class Library,所有頻道共用這個Class Library。

下面詳細介紹實現(xiàn)方法。

假設網(wǎng)站有三個頻道,新聞、論壇以及博客,對應的二級域名為"news"、"forum"、"blog"。除此之外,還需要另外定義兩個域名,分別用于網(wǎng)站首頁以及用戶注冊、登陸功能(基于Passport機制,本文后面將作詳細介紹),對應域名為"homepage"、"passport"。

1、配置各頻道URL

a、配置hosts文件

用文本編輯器打開hosts文件(位于c:\windows或winnt\system32\drivers\etc\),該文件中存放初始的域名解析信息。當我們在瀏覽器中請求某個URL時,系統(tǒng)首先在hosts文件中查找相應域名,如果找到則跳轉至指定IP,如果沒找到,則進一步提交DNS進行域名解析。

配置很簡單,格式形如"[IP][空格][域名]",每條數(shù)據(jù)對應一行。下面為配置內(nèi)容:

192.168.1.2 www.mysite.com

192.168.1.2 passport.mysite.com

192.168.1.3 news.mysite.com

192.168.1.5 forum.mysite.com

192.168.1.9 blog.mysite.com

你可能已經(jīng)注意到了,各頻道對應于不同的IP,這正是該架構的開發(fā)靈活性所在。各頻道(Web Project)可以創(chuàng)建于不同的開發(fā)者電腦。通過將配置內(nèi)容同步到各臺電腦,可以方便的在各頻道間進行頁面瀏覽,就像這些頻道位于你自己的電腦一樣!采用這種方式可以極大降低開發(fā)耦合性,每個頻道都是一個獨立的模塊,一個頻道中的Bug不會影響到另一個頻道。

b、配置Web.Config

考慮到各頻道二級域名有可能進行調(diào)整,將相應配置信息存放于Web.Config文件是一個好辦法。同樣的,該配置信息必須同步到各Web Project。下面為配置內(nèi)容:

<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:站點域名,形如"mysite.com"、"mysite.com.cn"、"mysite.net"等。該配置項的使用方法將在后文介紹。

LocalSiteURL:當前頻道根路徑,也就是Web Project所在網(wǎng)站或虛擬目錄的路徑,以"/"開頭。該配置項主要用于頻道內(nèi)部的引用,比如圖片引用、頁面鏈接等。

其余配置項:用于頻道間的引用,比如頻道導航、功能調(diào)用等。

2、創(chuàng)建Model部件

在MVC模式組成中,Model部件包括所有的業(yè)務邏輯操作,其中也包含數(shù)據(jù)訪問操作。

本方案將Model部件拆分成對象實體、對象操作以及數(shù)據(jù)訪問三部分,封裝成三個Class Library。

由于Class Library設計本身就是一個很大的話題,本文就不再祥述了,有興趣的話可以參考一些相關資料。

經(jīng)驗分享:

上述的Model部件拆分方式適用于業(yè)務功能比較復雜的大型項目,要求團隊內(nèi)部有著明確、細化的分工合作。但如?????? ?o㧟?果面對的是中小型項目,該方式很有可能成為開發(fā)效率的瓶頸。這主要是由項目特點決定的,中小型項目業(yè)務功能相比大型項目沒有那么復雜,開發(fā)人員數(shù)量也比較有限,往往一個人要負責整個模塊的開發(fā)。在這種情況下,架構層次過于繁多,每次修改一個層時,其他相關層也得跟著同步修改,這樣反而影響了開發(fā)效率。

3、實現(xiàn)Passport機制

很多網(wǎng)站都采用Session來存放個人信息,比如登錄信息,并以次作為用戶登錄與否的判斷依據(jù)。但Session有一個缺陷,就是無法在多個Web應用中共享,一個Web應用生成的Session只能由他自己使用。哪種方法可以在多個Web應用中實現(xiàn)數(shù)據(jù)共享呢?答案是Cookie。Cookie將信息存放于客戶端, 并在需要時發(fā)送回服務器端。

Passport,即通行證,是目前普遍采用的一種用戶身份認證機制,簡單來說就是一次登錄,全站通行。這也正是我們的要求。

這里討論的通行證機制基于Cookie,實現(xiàn)也比較方便。其中的關鍵點是Cookie的Domain屬性設置,Domain屬性表示Cookie信息回發(fā)的目標域,也就是接收Cookie的域,接收Cookie的域必須與發(fā)送Cookie的域一致,否則無效。比如:發(fā)送域為"blog.mysite.com",則接收域可以設為"blog.mysite.com"或"mysite.com",而"news.mysite.com"和"blog.yoursite.com"為無效接收域。要想讓所有頻道都能接收到Cookie,必須將Domain屬性設置為不帶二級域名前綴的形式,如"mysite.com"、"mysite.com.cn"、"mysite.net"等。

登錄成功后向客戶端發(fā)送相應Cookie,其中可以包括一些全局信息,比如用戶編號、用戶名等。用戶退出時刪除相應Cookie,特別要注意的是,刪除Cookie時也要設置正確的Domain屬性。

關于該Passport機制,還有兩個問題值得討論:

a、Cookie的過期時間

有兩種方案可以采用,一種是默認方式,即不設置Cookie的Expires屬性,采用這種方案時,Cookie存放于內(nèi)存中,在瀏覽器關閉前Cookie將一直存在,也就是一直處于登錄狀態(tài)。這種方式主要用于對信息安全要求不是很高的網(wǎng)站,比如娛樂休閑類網(wǎng)站;另一種是指定明確的過期時間,一般情況下會將用戶最后一次訪問網(wǎng)站的時間加上一個超時時間段作為過期時間,有點類似于asp中的session超時機制,這種方式主要用于對安全性要求比較高的網(wǎng)站,比如網(wǎng)上銀行、電子郵箱等。

b、Cookie的信息安全

由于Cookie是以明文方式傳遞數(shù)據(jù),不可避免的存在安全隱患,因此對重要數(shù)據(jù)的加密是非常有必要的。加密可以采用可逆算法,比如DES。

4、創(chuàng)建Web Project

前文已提過,Web Project的創(chuàng)建比較靈活,既可以創(chuàng)建于不同的開發(fā)者電腦,也可以創(chuàng)建于同一臺電腦。這主要取決于開發(fā)團隊規(guī)模。

5、部署

分別部署各頻道,設置二級域名,將Web.Config中的相關配置改為生產(chǎn)環(huán)境的實際數(shù)據(jù)。

其中比較繁復的工作就是各頻道中相同部分的部署,比如說網(wǎng)站頭部(Logo、導航欄等),網(wǎng)站底部(版權聲明、聯(lián)系方式等),圖片,CSS,JavaScript等。當然也可以把這些公用資源單獨部署于一個頻道中,以供其他頻道調(diào)用,但這樣做就破壞了各頻道松耦合的特性,如果用于存放公用資源的頻道出了問題,那其余頻道也將無法正常使用。

結束

本文討論了asp.net中多頻道網(wǎng)站架構的一種實現(xiàn)方法,由于涉及到的內(nèi)容較多,無法一一展開,但對其中的重點部分還是多加了點筆墨,希望對你有用。

分享:ASP.NET里的事務處理
事務是一組組合成邏輯工作單元的數(shù)據(jù)庫操作,雖然系統(tǒng)中可能會出錯,但事務將控制和維護每個數(shù)據(jù)庫的一致性和完整性。如果在事務過程中沒有遇到錯誤,事務中的所有修改都將永久成為數(shù)據(jù)庫的一部

來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
相關.Net教程