ASP.NET 2.0網頁製作徹底研究

Download Report

Transcript ASP.NET 2.0網頁製作徹底研究

第18章 個人入口網站的建立





18-1入口網站的基礎
18-2 建立網站的搜尋引擎
18-3 網頁組件的個人化功能
18-4 Web服務的基礎
18-5 Amazon的Web服務
18-1入口網站的基礎-說明


入口網站(Portal Site)是Internet網路上的資
源中心,它是進入其他網站的橋樑,通常入口網
站是瀏覽程式設定的首頁,可以提供大量不同來
源的資訊和服務。例如:搜尋引擎、新聞、股市
行情、電子報、免費電子郵件和聊天室等。
入口(Portal)在定義上本來並不包含個人化功
能,不過,現在的入口網站都有提供會員個人化
使用介面來存取各種服務和資訊,簡單的說,它
是一種客製化搜尋服務的資訊搜集網站。例如:
Yahoo!、微軟MSN、新浪網和PC HOME等網站。
18-1入口網站的基礎-圖例
18-1入口網站的基礎-功能

目前的入口網站一般都希望提供的功能,如下所
示:
• 以使用者觀點,而非資訊提供者的觀點來提供資訊與
服務。
• 以會員角色提供個人化資訊,例如:在特定時間提供
股票族會員所需的股票資訊。
• 自動以使用者設定的需求來提供資訊與服務,例如:
自動每日顯示工作所需的相關新聞資訊。
• 提供介面可以讓使用者自行選擇有興趣內容、版面和
色彩。
• 提供單一登入服務,只需登入一次,就可以使用入口
網站所提供的資訊與服務。
18-2 建立網站的搜尋引擎




18-2-1
18-2-2
18-2-3
18-2-4
制項
搜尋引擎的種類
網址搜尋引擎
System.IO的全文檢索搜尋
建立Google搜尋的Web使用者控
18-2-1 搜尋引擎的種類-網址搜
尋引擎


在入口網站都會提供搜尋引擎來搜尋符合
條件的網站或網頁。
網址搜尋是找尋指定關鍵字的相關網站,
其目的是透過搜尋引擎快速找出有興趣或
所需資訊的網址,在實作上,只需使用資
料庫儲存網站和相關資訊,在輸入搜尋關
鍵字後,就可以找出符合條件的網址清單。
18-2-1 搜尋引擎的種類-網站內容的
全文檢索搜尋


全文檢索搜尋是針對目前網站內容進行搜
尋,因為網站提供的資訊太多,就算透過
超連結也無法快速或完整找到所需的資料,
此時,透過全文檢索功能就可以幫助使用
者完整且快速找到所需的資訊。
在實作上,全文檢索搜尋通常都是使用作
業系統提供的索引服務(Indexing
Service),在建立好索引資料庫後,就可
以建立網站內容的全文檢索搜尋。
18-2-2 網址搜尋引擎-說明

在本節的網址搜尋引擎是功能十分陽春的
搜尋引擎,主要目的是說明資料表的SQL
查詢技巧,也就是如何在資料表記錄欄位
執行欄位資料的全文檢索搜尋。
18-2-2 網址搜尋引擎-WebSearch資
料表

在Access資料庫【WebSearch.mdb】擁
有WebSearch資料表,它是用來儲存網站
的相關資訊,如下表所示:
欄位名稱 資料類型 大小
SiteID
自動編號 N/A
SiteName
50
文字
URL
100
文字
Description
N/A
備忘
Keywords
100
文字
說明
網站編號
網站名稱
網站 URL 網址
網站說明
網站搜尋的關鍵字
18-2-2 網址搜尋引擎-SQL指令

在ASP.NET程式可以建立SQL查詢指令搜尋所需
的記錄資料,如下所示:
strSQL
strSQL
strSQL
strSQL
strSQL
strSQL

= "SELECT * From WebSearch "
&= "WHERE SiteName LIKE '%" & keyword
&= "%' OR URL LIKE '%" & keyword
&= "%' OR Description LIKE '%"
&= keyword & "%' OR Keywords LIKE '%"
&= keyword & "%'"
上述程式碼建立SQL指令字串,指令使用LIKE運
算子查詢所有文字內容欄位,換句話說,它就是
資料表記錄欄位的全文檢索搜尋。
18-2-3 System.IO的全文檢索搜尋說明

雖然全文檢索搜尋都是使用作業系統提供
的索引服務,不過,在ASP.NET程式只需
使用System.IO名稱空間的檔案物件,我
們一樣可以撰寫遞迴版本的全文檢索搜尋
程序,快速搜尋網站內容。
18-2-3 System.IO的全文檢索搜尋遞迴函數


ASP.NET的遞迴函數以本書來說,就是Visual
Basic的遞迴函數,它是函數自己呼叫自己的程式
設計技巧,使用遞迴方式建立的函數和程序,可
以有效減少程式碼長度,讓程式碼看起來更簡潔,
但是功能上可是一點都不會縮水。
撰寫遞迴函數的注意事項,如下所示:
• 終止條件:能夠終止遞迴函數的執行,以資料夾或目
錄範例來說,就是沒有子資料夾,只有檔案的資料夾。
• 遞迴函式會縮小範圍:遞迴函數處理範圍會愈來愈小,
直到終上條件為止,如此遞迴函數才能結束執行,以
資料夾來說,就是進入一層層子資料夾,其下的子樹
將愈來愈小。
18-2-3 System.IO的全文檢索搜尋System.IO版的遞迴全文檢索搜尋

System.IO版的網站全文檢索搜尋是從Web伺服
器的目錄開始,逐一搜尋所有檔案(使用的是實
際資料夾),並且可以進入子目錄一層層往下搜
尋來找出網頁內含關鍵字的檔案,其特點如下所
示:
• 搜尋所有子目錄:遞迴程序可以搜尋所有子目錄檔案,
程式能夠指定查詢的檔案類型和搜尋數目。
• 提供繼續查詢功能:如果找到指定數目檔案並沒有所
需資料,能夠從上一次最後查詢位置,再往下繼續查
詢,直到全部查完為止。
• 多條件查詢:Web表單支援AND和OR邏輯連結,可以
處理一個條件以上的全文檢索查詢。
• 指定查詢範圍:能夠指定全文檢索的目標為網站的虛
擬目錄,不過搜尋時是以實際資料夾進行搜尋。
18-2-4 建立Google搜尋的Web使用
者控制項-控制項類別檔

Web使用者控制項(Web User Controls)是使
用和Web表單相同程式設計技術所建立的自定控
制項,其副檔名是.ascx。在控制項程式檔案開頭,
使用Control指引指令定義控制項的類別名稱,如
下所示:
<%@ Control Language="VB"
ClassName="Google" %>

程式碼指定ClassName屬性的類別名稱。我們可
以使用VWD,直接拖拉內建控制項來建立Web使
用者控制項,例如:Google搜尋表單的使用者控
制項。
18-2-4 建立Google搜尋的Web使用
者控制項-新增使用者控制項

在ASP.NET程式原始檔開頭是使用Register指引
指令註冊Web使用者控制項,如下所示:
<%@ Register Src="Google.ascx"
TagName="Google"
TagPrefix="uc1" %>


上述指引指令的Src屬性是檔案名稱,TagName
是標籤名稱,TagPrefix是標籤字頭。在註冊後,
就可以新增名為Google的Web使用者控制項,如
下所示:
<uc1:Google ID="Google1" runat="server" />
18-3 網頁組件的個人化功能



18-3-1 網頁組件的基礎
18-3-2 建立網頁組件
18-3-3 網頁組件的顯示模式
18-3-1 網頁組件的基礎-1


ASP.NET 2.0版支援MSPF(Microsoft Portal
Framework),提供網頁組件控制項(Web
Part Control)來建立個人化服務。
網頁組件控制項是一種擁有預設行為的ASP.NET
控制項,事實上,任何內建控制項或Web使用者
控制項都可以包裝成網頁組件控制項,換句話說,
它會自動擁有網頁組件控制項行為的個人化系統,
可以儲存使用者更改、配置、顯示或隱藏等功能。
18-3-1 網頁組件的基礎-2

在網頁新增網頁組件控制項前,我們需要
在網頁新增WebPartZone和
WebPartManger控制項,其說明如下所示:
• WebPartZone控制項:這是一種容器控制項,
可以在網頁建立區域來新增網頁組件控制項,
內含基本的使用介面。
• WebPartManager控制項:管理網頁的網頁組
件控制項,可以控制和管理個人化狀態,如果
網頁擁有網頁組件控制項,就一定需要新增此
控制項。
18-3-2 建立網頁組件

請啟動VWD開啟「Ch18」網站後,新增
Web Form範本名為Ch18-3-2.aspx的
ASP.NET程式,筆者準備在此程式建立網
頁組件。
• 新增WebPartManager控制項
• 新增WebPartZone控制項
• 新增網頁組件至WebPartZone控制項
• 格式化WebPartZone控制項
18-3-3 網頁組件的顯示模式-說明

網頁組件預設提供多種顯示模式,可以使用
WebPartManager物件的DisplayMode屬性來
更改顯示模式,其屬性值是WebPartManager物
件的欄位(Fields),各欄位說明如下表所示:
欄位
說明
BrowseDisplayMode
網頁的正常顯示模式,此為網頁組件的預設值
DesignDisplayMode 設計顯示模式可以讓使用者更改版面配置,拖拉網頁組
件至其他 WebPartZone 控制項
EditDisplayMode 編輯顯示模式會顯示編輯介面,可以讓使用者編輯控制
項的外觀、屬性和行為
CatalogDisplayMode 目錄顯示模式會顯示可用的網頁組件清單,可以讓使用
者自行新增或刪除所需的網頁組件
ConnectDisplayMode 連接顯示模式會提供介面來管理和編輯網頁組件間的連
接設定
18-3-3 網頁組件的顯示模式-在
ASP.NET程式切換顯示模式1

ASP.NET程式新增RadioButtonList控制
項來選擇顯示模式,如下所示:
<asp:RadioButtonList Id="displayMode"
Runat="server">
<asp:ListItem>Browse模式</asp:ListItem>
<asp:ListItem>Design模式</asp:ListItem>
</asp:RadioButtonList>
<asp:Button Id="btn" Text="更改模式“
Runat="server"
OnClick="change_Mode"/>
18-3-3 網頁組件的顯示模式-在
ASP.NET程式切換顯示模式2
在change_Mode()事件處理程序指定
WebPartManager物件的顯示模式,如下所示:
Sub change_Mode(Sender As Object, _
E As EventArgs)
Select Case displayMode.SelectedIndex
Case 0:
WebPartManager1.DisplayMode = _
WebPartManager.BrowseDisplayMode
Case 1:
WebPartManager1.DisplayMode = _
WebPartManager.DesignDisplayMode
End Select
End Sub

18-4 Web服務的基礎


18-4-1 什麼是Web服務
18-4-2 建立Web服務應用程式
18-4-1 什麼是Web服務


Web服務(Web Services)是一種企業級的應
用程式,可以透過Internet建立自動機制提供資
料交換和工作分享等資源共享能力。Web服務使
用簡單和公開標準的通訊協定,並且提供低成本
的軟體整合和資料分享功能。
Web服務提供一組通用服務,可以同時提供多客
戶端(Clients)使用,這是一組以XML標籤作為
傳遞訊息的函數呼叫,客戶端透過HTTP傳送函數
呼叫給伺服端,伺服端以HTTP將結果傳回客戶端,
可以提供客戶端更多的彈性,因為只需傳遞函數
呼叫的訊息,就可以取得所需的資訊。
18-4-2 建立Web服務應用程式-架構

Web服務的客戶端和伺服端是使用「SOAP」
(Simple Object Access Protocol)通訊協定
來進行通訊,它是一種結合XML標籤訊息和HTTP
協定的通訊協定。Web服務的應用程式架構,如
下圖所示:
18-4-2 建立Web服務應用程式-.NET
Framework的Web服務


微軟.NET Framework可以建立Web服務
的伺服端和客戶端程式,不過,Web服務
的伺服端程式並非本書討論主題,有興趣
讀者可以自行參閱相關書籍。在本章主要
說明如何使用ASP.NET程式,建立Web服
務的客戶端程式。
VWD支援建立WSDL檔案的Web參考,換
句話說,我們根本不需要了解SOAP或
WSDL的細節,就可以在ASP.NET程式使
用類別方法和屬性來使用Web服務。
18-5 Amazon的Web服務


18-5-1 申請Amazon的Web服務
18-5-2 使用Amazon的Web服務
18-5-1 申請Amazon的Web服務


Amazon是著名的網路書店,相關圖書查
詢功能可以使用Amazon的Web服務,建
立ASP.NET程式來執行圖書查詢。
Amazon的Web服務(Amazon Web
Services,AWS)在本書使用的版本是
4.0版,網站首頁為
http://www.amazon.com/webservice
s,在使用AWS前需要先註冊成為會員。
18-5-2 使用Amazon的Web服務-說
明

在AWS申請取得Web服務的Access Key
ID後,就可以啟動VWD加入Web服務的
Web參考,然後才能夠建立ASP.NET程式
來使用Amazon的Web服務。
18-5-2 使用Amazon的Web服務-在
VWD加入Web參考



在VWD加入Web參考是匯入Web服務的WSDL
檔案。請啟動VWD開啟「Ch18」網站後,執行
「網站/加入Web參考」指令,可以看到「加入
Web參考」對話方塊。
在上方URL欄輸入Amazon的WSDL檔案網址,
如下所示:
http://webservices.amazon.com/AWSECo
mmerceService/AWSECommerceService.w
sdl
按【移至】鈕,稍等一下,可以在下方看到Web
服務的類別說明,請按【加入參考】鈕在網站加
入Web參考。
18-5-2 使用Amazon的Web服務-建
立ASP.NET程式使用Web服務

在ASP.NET程式使用指定的Web服務,需要匯入
Web服務的名稱空間,如下所示:
<%@ Import
Namespace="com.amazon.webservices" %>


現在我們只需使用Web服務定義的類別,就可以
在ASP.NET程式使用Web服務。
Amazon的Web服務就是建立
AWSECommerceService物件,如下所示:
Dim objAmazon As AWSECommerceService = _
New AWSECommerceService()
18-5-2 使用Amazon的Web服務-圖
例