摘要:瞭解如何使用 Microsoft ASP.NET 和 Microsoft Visual Studio 2005 或 Microsoft Visual Web Developer 2005 Express Edition 來構建自己的入門套件。
單擊此處可下載本文的程式碼範例。
本頁內容
|
簡介 |
|
Media Share Library Starter Kit 的用途 |
|
建立所需的 Admin 角色 |
|
建立 Admin 使用者 |
|
管理員頁面 |
|
將項目手動輸入媒體庫 |
|
使用 Amazon Web 服務將項目輸入媒體庫 |
|
使用個人媒體庫 |
|
瀏覽和借閱主媒體庫中的項目 |
|
借入和借出項目警報 |
|
更改借出項目的狀態 |
|
小結 |
簡介
歡迎閱讀 ASP.NET Jumpstart 系列,本系列中的四篇文章將引導您完成整個應用程式的建立(從頭至尾)。本文主要針對 Microsoft ASP.NET 初學者或愛好者,但是對 ASP.NET 2.0 中新功能感興趣的人也能通過本系列文章受益。
ASP.NET 2.0 在 2000 年首次引入的 ASP.NET 1.0/1.1 基礎之上進行了較大改進。可從 MSDN 獲得 ASP.NET 2.0(在撰寫本文時是 Beta 2 版),供您免費下載並用於當前要構建的任何應用程式。雖然 ASP.NET 1.x 在構建 Web 應用程式方面具有相當的創新力,但您會發現,在使您成為最高效的開發人員方面,ASP.NET 2.0 同樣具有創新力。本文將重點介紹如何使用新的 ASP.NET 2.0 功能,以及如何充分利用它提供的功能。
本文是 Media Share Library Starter Kit 的簡介,在伺服器上安裝該工具包之後將提供相應的功能。本文將協助您設定和安裝該入門套件,以便您可以立即開始使用。之後,後續文章將為您介紹如何實際構建該應用程式。
下面,首先來看一下 Media Share Library Starter Kit 提供的功能。
返回頁首
Media Share Library Starter Kit 的用途
Media Share Library Starter Kit 使您能輕鬆地建立允許註冊使用者呈現媒體項目(例如,影視 DVD、音樂 CD、書籍等)集合的應用程式,以便其他註冊使用者借閱。使用者能夠瀏覽使用該應用程式的群組所共有的項目庫,並能夠請求從登入的項目擁有者借閱特定項目。Media Share Library Starter Kit 旨在為您提供一個架構,以用於快速組織可與更多人共用的項目庫集合。
該入門套件提供一系列頁面,以允許您輕鬆地呈現和管理媒體庫中的項目以及借出的項目。對於登入使用者,該入門套件的起始頁包含一個基本的首頁和登入頁。該入門套件還包含允許您查看群組庫和個人庫的頁面,以及針對其他人的項目或您的項目發出警報的警報頁面。
從這個簡短的描述中,可以看到該架構應用程式提供了許多功能。在編譯和運行 Media Share Library Starter Kit 並使用該應用程式一段時間後,將看到 1 所示的內容。
圖 1. Media Share Library Starter Kit 的警報頁面
通過簡單修改所提供的代碼,您可利用 Media Share Library Starter Kit 中的每個頁面來構建自己的頁面。這將啟動群組庫 Web 網站的個人化過程。
Media Share Library Starter Kit 還是一個很好的學習工具。您可以查看產生應用程式每一頁的代碼,您會發現,它使用了最新版本 ASP.NET 的某些最強功能。即使您不打算使用該入門套件來產生實際的 Web 網站,但對於學習如何使用 ASP.NET 2.0 建立應用程式而言,它仍不失為一種有價值的資源。
但是,在瞭解如何使用該應用程式之前,我們先看一下該入門套件的安裝和啟動。
Media Share Library Starter Kit 的初始設定
可從 MSDN 下載 Media Share Library Starter Kit,它是一個 Windows 安裝程式包檔案 — Media Share Library.msi。雙擊該檔案將啟動一個進程,從而在電腦上安裝該入門套件。安裝嚮導的第一個螢幕 2 所示。需要注意的是,Media Share Library Starter Kit 僅在 Visual Basic 2005 中可用。
圖 2. 安裝 Media Share Library Starter Kit
完成安裝過程後,可以開啟 Visual Studio 2005,然後以兩種不同的方式開啟 Web 網站。通過從 Visual Studio 菜單中選擇 File -> Open Web Site,然後選擇左窗格中的 File System 按鈕,可將 Web 網站作為檔案系統項目開啟。這允許您導航到 C:\Inetpub\wwwroot\MediaShareLibrary 中已安裝的入門套件。另一個選項是選擇 Local IIS 按鈕,並開啟 Default Web Site 節點以導航到 MediaShareLibrary。這兩種方法 3 所示。
圖 3. 開啟 Media Share Library Starter Kit
開啟 Media Share Library Starter Kit 選項後,您將會注意到,項目包含許多檔案夾和檔案。您可以在 Visual Studio 的方案總管中查看所有這些建立的項目, 4 所示。
圖 4. Media Share Library 解決方案
在圖 4 中,可以看到該入門套件中有許多內容。它實際上分為五個主要部分:
• |
根檔案(包括 Default.aspx、Web.config 和 Web.sitemap)以及一些處理登入和註冊過程的頁面。新增到該 ASP.NET 2.0 列表的檔案是 Web.sitemap 檔案,它是一個基於 XML 的 Web 網站導覽結構定義。 |
• |
App_Data 檔案夾,它包含一個 Microsoft SQL Server Express Edition 檔案 (ASPNETDB.MDF),以及用於將所有資訊輸入儲存到 Media Share Library 的 Library.mdf 檔案。ASPNETDB.MDF 檔案用於儲存應用程式使用的所有成員資格和角色管理資訊。 |
• |
App_Themes 檔案夾,它包含的檔案允許您定義整個應用程式的樣式(外觀)。這是 ASP.NET 2.0 中的新功能,它允許您通過一個中心點管理整個應用程式的外觀。該檔案夾中的檔案類型包括一個階層式樣式表檔案 (.css) 和一個 ASP.NET skin 檔案 (.skin)。這個新檔案(skin 檔案)將在本文後面介紹。 |
• |
Admin 檔案夾,它包含一個簡單的頁面,允許角色為 Admin 的使用者管理媒體庫所使用的類別。隨後,當註冊使用者將他們的媒體庫項目輸入系統時將使用這些類別。輸入媒體庫中的每個項目必須有一個關聯的類別(DVD、XBOX、Book 等)。 |
• |
Library 檔案夾,它包含本文中討論的應用程式的絕大部分。 |
返回頁首
建立所需的 Admin 角色
在 Visual Studio 中建立 Media Share Library Starter Kit 的執行個體時,應該做的第一件事是編譯和運行該應用程式。這將啟動一個包含介紹頁的頁面, 5 所示。
圖 5. 應用程式的介紹頁
初次開機應用程式時,還要建立一個管理員角色,以便隨後將一個或多個使用者映射到該角色。這些角色是如何建立的呢?它們在應用程式的 Global.asax 檔案中建立。看一下該檔案,您會注意到,在 Application_Start 事件上有以下代碼(如清單 1 所示)。
清單 1. 在 Global.asax 檔案的 Application_Start 事件中建立 Admin 角色
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs on application startup If (Roles.Enabled) Then If Not Roles.RoleExists("Admin") Then Roles.CreateRole("Admin") End If End IfEnd Sub
從這段代碼中,您可以看到,If 語句首先檢查角色管理系統是否已啟用,如果是,則檢查 Admin 角色是否存在於系統中。這通過使用 Roles 類的 RoleExists() 方法完成。如果該檢查的結果為 False,則使用 CreateRole() 方法建立角色。
該應用程式中角色為 Admin 的使用者能夠查看 Admin.aspx 頁,而其他人則不能。Admin.aspx 頁可讓您管理允許在媒體庫中使用的類別。輸入媒體庫中的所有項目都需要有一個關聯的類別。
既然為 Media Share Library Starter Kit 建立了 Admin 角色,現在可以通過關閉瀏覽器執行個體來關閉應用程式。然後,通過在 Visual Studio 菜單中選擇 Website -> ASP.NET Configuration 來開啟該應用程式的 ASP.NET Website Administration Tool。將看到一個基於 Web 的 GUI,它允許您為應用程式設定特定的配置設定。單擊 Security 選項卡,將看到為應用程式配置的一個角色。 6 所示。
圖 6. 檢查是否為應用程式建立了 Admin 角色
既然建立了角色,下面來看一下如何建立使用者(隨後,我們將為其中一個使用者賦予 Admin 角色)。
返回頁首
建立 Admin 使用者
建立使用者最方便的地方是應用程式的註冊頁 (Join.aspx)。可通過在應用程式的每個頁面上單擊 Join Today! 連結來訪問該頁。註冊頁 7 所示。
圖 7. Join.aspx
註冊過程分為兩個步驟。第一個表單要求輸入使用者的姓名以及所屬的群組。單擊 Next 按鈕可將使用者轉到註冊過程的第二個表單。該表單要求輸入使用者的使用者名稱、密碼和電子郵件地址。完成後,使用者只需單擊 Create User 按鈕即可在系統中註冊。
瀏覽到 Media Share Library 應用程式的任何人都可以訪問該頁並在網站中註冊。這意味著,預設情況下,應用程式對所有使用者開放。任何人都可以將自己設定為使用者並登入應用程式。
如果某人希望查看媒體庫並建立他自己的媒體庫,則需要成為註冊使用者。通過 Library 檔案夾下 Web.config 檔案中應用的設定,限制匿名使用者使用大部分應用程式。如清單 2 所示。
清單 2. 在 Web.config 檔案中阻止匿名使用者
<?xml version="1.0" encoding="utf-8"?><configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.Web> <authorization> <deny users="?" /> </authorization> </system.Web></configuration>
由於清單 2 所示的 Web.config 檔案位於 Library 檔案夾,因此在該檔案中指定的任何設定僅應用於 Library 檔案夾下的檔案和檔案夾。使用 元素,可通過使用子項目 並指定匿名使用者(通過使用問號作為值)來拒絕所有匿名(未註冊)使用者。
Admin 檔案夾中包含的單個檔案也通過類似的方式控制,但 Web.config 會拒絕所有人,並只允許新建立的 Admin 角色中包含的註冊使用者,而不是拒絕匿名使用者。該 Web.config 如清單 3 所示。
清單 3. Admin 檔案夾中的 Web.config 檔案
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.Web> <authorization> <allow roles="Admin" /> <deny users="*" /> </authorization> </system.Web></configuration>
現在已經通過 Join.aspx 上的註冊表單建立了新使用者,下一步是像先前那樣開啟 ASP.NET Web Site Administration Tool 並導航到 Security 頁。在該頁上,您會看到已經建立的一個使用者。單擊 Manage users 連結,將轉到一個允許您管理剛才建立的使用者的頁面。由於我們希望在 Admin 角色中添加新使用者,因此在該頁中單擊使用者名稱稱旁邊的 Edit roles 連結。隨後將顯示可用的單個角色。然後,可選中角色名稱旁邊的複選框,將新使用者添加到 Admin 角色。 8 所示。
圖 8. 將使用者添加到 Admin 角色
現在,已經建立了一個使用者來作為管理員使用應用程式,下面來看一個管理員能夠訪問、但其他註冊使用者不能訪問的頁面。
返回頁首
管理員頁面
應用程式中只有一個用於應用程式系統管理員的頁面。您將在 Admin 檔案夾中看到這個頁面 Default.aspx。如前所示,Admin 檔案夾中還包含一個 Web.config 檔案,該檔案可以控制對該檔案夾的訪問,並且僅允許 Admin 角色的使用者訪問該頁面。如果您是已經登入到應用程式的註冊使用者,並且嘗試訪問該頁,則系統會將您轉到 Login.aspx 頁,並要求您提供適當的訪問憑據。如果能夠訪問,將看到一個 9 所示的頁面。
圖 9. 管理頁面
當使用者將新項目輸入媒體庫時,他/她必須為每個項目指定一個特定類別。這些類別隨後可用於表示項目,並使其他人能夠更輕鬆地搜尋打算借閱的項目。為此,必須有一種動態顯示類別列表的方法。
類別儲存在 Microsoft SQL Server Express Edition 檔案 (.mdf) 中,這個管理頁面允許您添加、編輯或刪除應用程式所使用的類別。預設情況下,Media Share Library Starter Kit 隨附三個預設類別(DVD、XBOX 和 Book)。
返回頁首
將項目手動輸入媒體庫
如果您登入並登入到應用程式,就可以開始將項目輸入主媒體庫系統了。輸入到整個媒體庫系統的項目將顯示在您的個人媒體庫中。其目的是,輸入媒體庫的項目可供其他人借閱一段特定的時間。例如,如果將該應用程式用於工作中的一個小組,則某個人可能會請求借閱您放在系統中的某個項目。收到請求後,應將該項目啟用並出借給請求方一段時間。然後,當項目到期後,借用方會將該項目返回給原始擁有者。這是用於所有帳戶的自治媒體庫系統。
將項目輸入該系統的方法有多種 — 手動或使用 Amazon Web 服務。我們首先來看一下如何將項目手動輸入系統。
要手動輸入項目,請單擊網站導覽中的 Enter New Media 連結。將看到一個 10 所示的頁面。
圖 10. 將新媒體輸入個人媒體庫
從 EnterMedia.aspx 頁中,可以看到系統首先要求使用者選擇一個類別來放置項目。該列表派生自管理員建立的集合(如前所示)。要求輸入的下一項是項目的 ISBN 或 ASIN 編號。
書籍一般使用 ISBN 編號,可在書籍背面的條碼上方找到該編號。一個樣本 ISBN 是 0764576100。除書籍以外,其他產品(例如 XBOX 遊戲)一般使用 ASIN 編號。這些編號很難找到,因為它們不會列在實際產品上;但是,您通常可以在網上找到產品的 ASIN 編號(嘗試在 Amazon 上尋找)。
除了項目的類別和 ISBN/ASIN 編號以外,其他要提供的內容還包括項目的標題、描述以及用於該項目的映像 URL。如果沒有用於項目的聯機映像,則使用預設的 ~/Images/NoImage.gif。將項目的所有詳細資料輸入表單後,請單擊 Enter Into System 按鈕。單擊之後,該項目將記錄到 SQL Express Edition 檔案中,而您將重新導向到媒體庫頁面。
返回頁首
使用 Amazon Web 服務將項目輸入媒體庫
將項目輸入媒體庫的另一個(較容易的)選項是,使用 Amazon Web 服務(免費)根據提供的 ISBN/ASIN 編號填充所有必需的值。
第一步是訪問 Amazon Web 網站,並註冊一個 Amazon Web 服務帳戶。
Amazon 允許通過基於 SOAP 的 Web 服務或 REST Web 服務來請求並使用他們的服務。這個 Media Share Library 應用程式通過 REST 來使用所需的 Amazon 資料。
一旦在 Amazon 註冊,將為您提供一個訂閱 ID,需要將該 ID 放到 EnterMediaAmazon.aspx 頁的程式碼後置檔案中。在頁面的程式碼後置檔案中,可以找到需要放置訂閱 ID 的位置,如清單 4 所示。
清單 4. 修改頁面以使用 Amazon 訂閱 ID
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load XmlDataSource1.DataFile = "http://Webservices.amazon.com/onca/xml? Service=AWSECommerceService& SubscriptionId=[YOUR SUBSCRIPTION ID]& Operation=ItemLookup &ResponseGroup=Medium &ItemId=" & Request.QueryString("ISBN").ToString() FormView1.DataBind() End Sub
注 請確保該 URL 在一行上;出於方便閱讀目的,這裡將它分為多行。
要使用 Amazon 填充所有必需的值,您必須首先將項目的 ISBN/ASIN 編號輸入 EnterMedia.aspx 頁的表單中。輸入該編號後,下一步是單擊表單底部的 Populate Values From Amazon Instead 按鈕。這會將您轉到另一個頁面,它顯示了從 Amazon 收集的結果。 11 所示。
圖 11. 使用 Amazon 自動獲得結果
在該頁(即 EnterMediaAmazon.aspx 頁)上,首先進行檢查以確保資訊正確,再使用所提供的下拉式清單選擇媒體類型,然後按下頁面底部的 Select 按鈕。這會將結果輸入媒體庫。轉到 MyLibrary.aspx 頁之後,將看到這個新添內容。
返回頁首
使用個人媒體庫
輸入到系統的項目將顯示在您的個人媒體庫中,該媒體庫在 MyLibrary.aspx 頁上顯示。個人媒體庫中顯示的項目也會顯示在主媒體庫中,並且允許其他人請求借閱該項目。MyLibrary.aspx 頁的樣本螢幕快照 12 所示。
圖 12. 查看個人媒體庫
個人媒體庫頁面允許您查看輸入系統的項目。這些項目按媒體類型顯示,媒體類型由表單頂部的下拉式清單控制。例如,圖 12 僅顯示該使用者輸入系統的所有書籍。
個人媒體庫將告訴您有關輸入系統的項目的所有資訊,包括項目是否在出借期間。如果在出借期間,則行的背景將為淺藍色。對於表中的每一項,可通過單擊適當的 Edit 按鈕來編輯某些項目資訊。甚至可單擊 Delete 按鈕來刪除項目。
返回頁首
瀏覽和借閱主媒體庫中的項目
無論將什麼項目輸入主媒體庫,您都能夠仔細瀏覽主媒體庫以便請求借閱它所包含的任何項目。主媒體庫將顯示輸入系統的所有項目。樣本媒體庫 13 所示。
圖 13. 查看主媒體庫
在圖 13 的螢幕快照中,可以看到主媒體庫類似於個人媒體庫,但不同之處在於,在主媒體庫中,無法編輯或刪除列表中包含的項目。在頁面頂部,將看到一個允許您篩選項目類型的下拉式清單,這些項目顯示在下面的表格中。在圖 13 的樣本中,選擇了 XBOX 並顯示系統中的所有 XBOX 遊戲。表格將顯示項目的標題、擁有者、項目被查看和出借的次數,以及當時項目是否處於出借狀態。
單擊項目的標題將顯示所選項目的詳細視圖。 14 所示。
圖 14. 查看媒體庫中項目的詳細視圖
項目的詳細視圖可顯示所選項目的映像、是否處於出借狀態、項目的所有者、描述以及資訊(例如,前面提及的項目被查看和出借的次數)。
從項目的詳細視圖中,可通過單擊表單底部的 Borrow 按鈕來實際請求借閱某個項目(如果可用)。單擊之後,系統將通知您進行了請求並由您挑選擁有者的項目。語句中還包含將項目返還給擁有者的日期(參見圖 15)。
圖 15. 從主媒體庫借出項目
返回頁首
借入和借出項目警報
登入 Media Share Library 應用程式後,將看到 Library 檔案夾中的 Default.aspx 頁。該頁將顯示一組有關您從其他人借入的項目的警報,以及一組有關您所擁有的項目的警報。 16 所示。
圖 16. 項目到期警報
除了針對您借入和擁有的項目的警報,該頁面底部還有一個表格,它顯示輸入主媒體庫的最新十個項目。
返回頁首
更改借出項目的狀態
使用者將項目返還給原始擁有者後,由擁有者在系統中將項目標記為已返還。這會將項目放回系統中以便其他人借閱,並會移除所有警報。為此,使用者必須進入他/她的個人媒體庫頁,並單擊頁面底部的 Log items in catalog as returned 按鈕。
這將使用者引導至 ReturnItems.aspx 頁,其中,使用者將看到所有處於出借狀態的項目的複選框列表( 17 所示)。
圖 17. 將所選項目標記為已返還
隨後,這些項目的擁有者需要檢查所有已返還的項目,然後單擊表單底部的按鈕來變更標記項目的出借狀態。
返回頁首
小結
本文為您介紹了 Media Share Library Starter Kit,以及如何設定和使用它。該入門套件旨在為愛好者介紹如何使用 ASP.NET 2.0,並展示構建 ASP.NET 2.0 應用程式是多麼的容易。
該 ASP.NET Jumpstart 系列的下一篇文章將介紹如何親自構建該應用程式(從資料層開始)。
祝您編程愉快!