開發(fā)Web應(yīng)用程序ppt課件
《開發(fā)Web應(yīng)用程序ppt課件》由會員分享,可在線閱讀,更多相關(guān)《開發(fā)Web應(yīng)用程序ppt課件(75頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
開發(fā)Web應(yīng)用程序 1 內(nèi)容 ASP NET的開發(fā)環(huán)境配置編寫ASP NETWeb應(yīng)用程序ASP NET服務(wù)器端控件創(chuàng)建Web服務(wù)Q A 2 1ASP NET的開發(fā)環(huán)境配置 首先并不是所有的Windows系統(tǒng)都可作為ASP NET的開發(fā)平臺 Windows98系統(tǒng)系列就不支持ASP NET其次為了能夠創(chuàng)建ASP NETWeb應(yīng)用程序 系統(tǒng)要安裝微軟的Internet信息服務(wù)器 IIS 如果使用的系統(tǒng)是Windows2000或WindowsXP系列 那它們直接就帶有IIS 可以通過 控制面板 中的添加 刪除程序來安裝 3 2編寫ASP NETWeb應(yīng)用程序 VisualStudio NET是一個(gè)功能十分強(qiáng)大的開發(fā)工具 我們先來使用它創(chuàng)建一個(gè)簡單的Web應(yīng)用程序 然后逐步對這個(gè)程序進(jìn)行講解 例 打開VisualStudio NET 選擇 文件 新建 項(xiàng)目 命令 從 模板 欄內(nèi)選擇 ASP NETWeb應(yīng)用程序 如果是第一次創(chuàng)建 Web應(yīng)用程序的名稱將是WebApplication1 接受默認(rèn)值 單擊 確定 按鈕 這時(shí)將出現(xiàn)WebForm1 aspx的設(shè)計(jì)界面 現(xiàn)在可以向其中添加控件形成一個(gè)完整的Web窗體 4 2 1ASP NET的基本語法 基本文件名種類 asax文件 ASP NET的系統(tǒng)環(huán)境設(shè)置文件 aspx文件 內(nèi)含ASP程序代碼的文件 瀏覽器可執(zhí)行此類文件 向服務(wù)器提出瀏覽請求 asmx文件 制作WebServices的源文件 sdl文件 制作WebServices的XML格式的文件 vb或 cs文件 在非ASP NET環(huán)境下 執(zhí)行WebServices的文件 aspc文件 可重復(fù)使用多個(gè) aspx文件 此文件內(nèi)可含有控件 ascx文件 內(nèi)含UserControl的文件 可內(nèi)含在多個(gè) aspx文件中 5 2 1ASP NET的基本語法 聲明代碼的語法代碼內(nèi)聯(lián)代碼段或者ASP NET服務(wù)器端控件語法ASP NETHTML服務(wù)器端控件語法數(shù)據(jù)綁定語法Object標(biāo)記語法例如注釋語法 6 2 2CodeBehind技術(shù) aspx例子WebForm1Label 7 2 2CodeBehind技術(shù) cs例子publicclassWebForm1 System Web UI Page protectedSystem Web UI WebControls TextBoxTextBox1 protectedSystem Web UI WebControls ButtonButton1 protectedSystem Web UI WebControls LabelLabel1 privatevoidPage Load objectsender System EventArgse 在此處放置用戶代碼以初始化頁面 privatevoidInitializeComponent this Button1 Click newSystem EventHandler this Button1 Click this Load newSystem EventHandler this Page Load privatevoidButton1 Click objectsender System EventArgse inti 100 stringstr Convert ToString i 2 Label1 Text str 8 2 3Web窗體 在Web窗體頁中 用戶界面編程分為兩個(gè)不同的部分 可視控件和邏輯 視覺元素稱作Web窗體 頁 page 這種頁由一個(gè)包含靜態(tài)HTML和 或ASP NET服務(wù)器控件的文件組成 Web窗體頁用作要顯示的靜態(tài)文本和控件的容器 Web窗體頁的邏輯由代碼組成 開發(fā)者創(chuàng)建代碼與窗體進(jìn)行交互 編程邏輯位于與用戶界面文件不同的文件中 該文件稱作 代碼隱藏 文件 用aspx cs 作為擴(kuò)展名 在代碼隱藏文件中編寫的邏輯使用C 來編寫 9 2 3Web窗體的事件響應(yīng) 像在Windows窗體上使用控件一樣 Web控件和HTML控件也有與它們相關(guān)的事件 可以為這些事件生成代碼 每個(gè)控件都有它們自己的特殊事件 例如 按鈕控件有Click事件 文本框有TextChanged事件 Web窗體事件和Windows窗體事件有一個(gè)重要的區(qū)別 Windows窗體的事件是在本地機(jī)進(jìn)行處理的 與Web窗體事件相關(guān)的代碼被存儲在Web服務(wù)器上的的代碼文件中 這意味著當(dāng)運(yùn)行在用戶瀏覽器上的Web窗體中的事件被觸發(fā)時(shí) 窗體不得不回叫Web服務(wù)器來處理它的事件 當(dāng)事件被觸發(fā)時(shí) Web窗體頁再次與Web服務(wù)器通信來處理這些代碼 因此 過多地使用控件事件會造成頻繁地訪問服務(wù)器 10 3ASP NET服務(wù)器端控件 3 1Web服務(wù)器控件3 2HTML服務(wù)器控件3 3驗(yàn)證控件3 4用戶控件 11 3ASP NET服務(wù)器端控件 服務(wù)器端控件是ASP NET編程的基礎(chǔ) 編寫Web頁面很大程度上就是將控件拼湊起來 以使其協(xié)同工作 Web窗體總共可以加入4種控件 它們是 Web服務(wù)器控件 HTML服務(wù)器控件 驗(yàn)證控件和用戶控件 12 3 1Web服務(wù)器控件 VisualStudio NET提供了眾多的Web服務(wù)器控件 這些控件都包含多種屬性 更改這些屬性可使控件具有不同的功能 控件的屬性既可以在VisualStudio NET的屬性對話框中進(jìn)行靜態(tài)更改 也可以在程序運(yùn)行時(shí)進(jìn)行動態(tài)更改 13 3 1Web服務(wù)器控件 文本框控件 TextBox控件文本框控件提供了向Web窗體輸入信息的方法 可以將文本框的TextMode屬性賦為SingLine MultiLine和Password來改變它的行為模式 14 3 1Web服務(wù)器控件 文本框控件的公共屬性 15 3 1Web服務(wù)器控件 文本框控件的公共方法 16 3 1Web服務(wù)器控件 按鈕控件 VisualStudio NET的工具箱中提供了3種按鈕控件 普通按鈕Button 顯示超鏈接樣式的按鈕LinkButton和顯示圖像樣式的ImageButton 按鈕控件發(fā)生Click事件時(shí)會直接導(dǎo)致向服務(wù)器端提交 17 3 1Web服務(wù)器控件 按鈕控件公共屬性 Button和LinkButton控件的公共屬性 ImageButton控件的公共屬性 18 3 1Web服務(wù)器控件 復(fù)選框和單選按鈕控件 復(fù)選框控件 CheckBox CheckBoxList 和單選按鈕控件 RadioButton RadioButtonList 復(fù)選框控件和單選按鈕控件十分類似 它們都允許從多個(gè)選項(xiàng)中進(jìn)行選擇 不同的是復(fù)選框控件允許同時(shí)選擇多項(xiàng) 而單選按鈕控件每次只能選擇一項(xiàng) CheckBoxList控件和RadioButtonList控件可以單獨(dú)使用 而CheckBox控件和RadioButton控件則需要多個(gè)一起使用 它們都可以和數(shù)據(jù)源進(jìn)行綁定 不過比較起來使用CheckBoxList控件和RadioButtonList控件訪問數(shù)據(jù)更為方便一些 19 3 1Web服務(wù)器控件 復(fù)選框和單選按鈕控件 20 3 1Web服務(wù)器控件 復(fù)選框和單選按鈕控件 對CheckBoxList控件和RadioButtonList控件來說 可以直接通過Items屬性來設(shè)置顯示項(xiàng)和標(biāo)簽 打開這些控件屬性對話框中的Items項(xiàng) 將出現(xiàn)ListItem集合編輯器可以在左側(cè) 成員 欄內(nèi)添加顯示項(xiàng) 右邊的屬性欄可以設(shè)置該項(xiàng)的屬性 Selected屬性表明該項(xiàng)是否被選定 Text屬性的值將作為該項(xiàng)的顯示標(biāo)簽 Value的值可以作為編程時(shí)的內(nèi)部值使用 該值可與Text屬性采用不同的值 21 3 1Web服務(wù)器控件 復(fù)選框和單選按鈕控件 CheckBox和RadioButton控件的公共屬性 22 3 1Web服務(wù)器控件 復(fù)選框和單選按鈕控件 CheckBoxList和RadioButtonList控件的公共屬性 23 3 1Web服務(wù)器控件 DropDownList控件和ListBox控件 DropDownList控件和ListBox控件都提供了選擇特定項(xiàng)的功能 不同處在于DropDownList控件提供一個(gè)下拉列表框進(jìn)行選擇 而ListBox控件直接提供多個(gè)選項(xiàng) 而且還可同時(shí)選擇ListBox控件中的多項(xiàng)與復(fù)選框控件和單選按鈕相同 它們都可以通過屬性對話框的Items項(xiàng)打開ListItem集合編輯器對顯示項(xiàng)進(jìn)行添加刪除 它們也都具有數(shù)據(jù)源綁定功能 24 3 1Web服務(wù)器控件 DropDownList控件和ListBox控件 ListItem集合編輯器 25 3 1Web服務(wù)器控件 DropDownList控件公共屬性 26 3 1Web服務(wù)器控件 ListBox控件公共屬性 27 3 2HTML服務(wù)器控件 ASP NET的Web窗體也支持HTML服務(wù)器控件 在工具箱的HTML子項(xiàng)就可以找到它們 你可能會發(fā)現(xiàn)HTML服務(wù)器控件和剛才介紹的Web服務(wù)器控件有些重復(fù) 它同樣也具有按鈕控件 文本框控件等 那它與Web控件有什么區(qū)別呢 什么時(shí)候應(yīng)該用Web服務(wù)器控件什么時(shí)候應(yīng)該用HTML服務(wù)器控件HTML服務(wù)器控件與Web服務(wù)器控件的區(qū)別瀏覽器都支持基本的HTML元素 而應(yīng)用這些基本的HTML元素可以組合出復(fù)雜的元素 HTML服務(wù)器控件和基本的HTML元素是對應(yīng)的 使用Web服務(wù)器控件時(shí) 從服務(wù)器方的角度來看根本不知道最終控件會在瀏覽器中用什么樣的HTML元素顯示出來 顯示一個(gè)Web服務(wù)器控件可能需要組合多個(gè)HTML元素 也就是說瀏覽器顯示什么樣的HTML元素對服務(wù)端是透明的 HTML服務(wù)器控件提供了操縱瀏覽器HTML元素的機(jī)會 28 3 2HTML服務(wù)器控件 例 新建一個(gè)Web項(xiàng)目 將位置欄中的項(xiàng)目名改為TestHTML 從 工具箱 中的HTML欄內(nèi)添加一個(gè)Button控件 切換到Web窗體的HTML對話框 將會顯示aspx文件的內(nèi)容 如以下代碼所示 無標(biāo)題頁 29 3 2HTML服務(wù)器控件 該Button控件在aspx文件里直接對應(yīng)著一個(gè)HTML元素 因此會不加處理地直接傳給瀏覽器 其他的HTML控件也與此類似 也可以在服務(wù)器端處理HTML服務(wù)器控件的事件 不過要先使它們能在服務(wù)器端運(yùn)行 在上面的例子的Web窗體的設(shè)計(jì)對話框中右擊Button控件 從中選擇 作為服務(wù)器控件運(yùn)行在Button控件的左上方會出現(xiàn)一個(gè)小綠色箭頭 它就表明該控件將作為服務(wù)器控件運(yùn)行 這時(shí)在aspx文件里對應(yīng)的行變成 30 3 2HTML服務(wù)器控件 使HTML控件作為服務(wù)器控件運(yùn)行 31 3 2HTML服務(wù)器控件 通過加入runat server 使它從簡單的HTML元素變成了HTML服務(wù)器控件 這樣就可以像Web服務(wù)器對它進(jìn)行服務(wù)器端編程 在上面的設(shè)計(jì)對話框中雙擊Button控件將切換到代碼編輯對話框 在Button1 ServerClick方法下填寫如下代碼 privatevoidButton1 ServerClick objectsender System EventArgse 改變按鈕標(biāo)簽Button1 Value Click 運(yùn)行這個(gè)程序 單擊Button按鈕 頁面刷新過后Button按鈕的標(biāo)簽就變成了Click 該Button按鈕的回發(fā)也是由客戶端腳本程序產(chǎn)生的 可以使用上面介紹查看瀏覽器內(nèi)容的方法來具體看一下實(shí)現(xiàn)過程 這些客戶端腳本程序是Web服務(wù)器處理ASP NET程序時(shí)產(chǎn)生的 現(xiàn)在就面臨著如何在Web服務(wù)器控件和HTML服務(wù)器控件直接選擇的問題 這里建議如果偏愛使用RAD編程模型的話最好使用Web服務(wù)器控件 如果想更好地控制瀏覽器的顯示 與客戶端腳本程序交互 那么就請用HTML服務(wù)器控件 32 web服務(wù)器控件HTML服務(wù)器控件和HTML控件的區(qū)別 1 Html控件最常用 出現(xiàn)最早web服務(wù)器控件 ASP NETServerControl 與WinForm開發(fā)相似HTML服務(wù)器控件 HTMLServerControl 向下兼容基于ASP系統(tǒng)的移植而推出的介于以上兩者之間的權(quán)宜產(chǎn)物 33 web服務(wù)器控件HTML服務(wù)器控件和HTML控件的區(qū)別 2 Html控件的標(biāo)簽Html服務(wù)器控件的標(biāo)簽Html服務(wù)器控件其實(shí)就是Html控件的基礎(chǔ)上加上runat server 所構(gòu)成的控件Web服務(wù)器控件的標(biāo)簽Web服務(wù)器控件會根據(jù)情況在瀏覽器端產(chǎn)生一個(gè)或多個(gè)對應(yīng)的Html標(biāo)簽 34 web服務(wù)器控件HTML服務(wù)器控件和HTML控件的區(qū)別 3 Html控件不能在服務(wù)器端控制 只能在瀏覽器端通過javascript等腳本語言操作Html服務(wù)器控件設(shè)定了runat server 屬性后 頁面對象會將該控件載入控制器 服務(wù)器端的代碼就能對其進(jìn)行控制Html服務(wù)器控件在頁面執(zhí)行完畢后會被轉(zhuǎn)換成Html標(biāo)注 然后當(dāng)成字符串流發(fā)送到瀏覽器端 瀏覽器端的腳本能夠進(jìn)行操作 Web服務(wù)器控件的操作則是由頁面把Form發(fā)回服務(wù)器 然后完全由服務(wù)器端代碼處理 35 web服務(wù)器控件HTML服務(wù)器控件和HTML控件的區(qū)別 4 Html控件不能在服務(wù)器端控制 只能在瀏覽器端通過javascript等腳本語言操作Html服務(wù)器控件設(shè)定了runat server 屬性后 頁面對象會將該控件載入控制器 服務(wù)器端的代碼就能對其進(jìn)行控制Html服務(wù)器控件在頁面執(zhí)行完畢后會被轉(zhuǎn)換成Html標(biāo)注 然后當(dāng)成字符串流發(fā)送到瀏覽器端 瀏覽器端的腳本能夠進(jìn)行操作 Web服務(wù)器控件的操作則是由頁面把Form發(fā)回服務(wù)器 然后完全由服務(wù)器端代碼處理 36 Web服務(wù)器控件 Html服務(wù)器控件和Html控件的優(yōu)缺點(diǎn) Html控件和Html服務(wù)器控件需要編碼以保持瀏覽器兼容 Web服務(wù)器控件能夠檢測瀏覽器的兼容性 保持表現(xiàn)的一致Html服務(wù)器控件通過為Html控件添加runat server 以實(shí)現(xiàn)ASP程序的移植 將ASP程序移植成使用Web服務(wù)器控件的ASP Net程序相當(dāng)于重寫新的應(yīng)用Html控件和Html服務(wù)器控件是標(biāo)準(zhǔn)控件 能夠用瀏覽器端腳本語言操作 使用Web服務(wù)器控件提供的對象模型 能夠得到和WinForm類似的編程體驗(yàn) 而且無需再學(xué)習(xí)不同的腳本語言 Web服務(wù)器內(nèi)部的代碼并不開放 你無法獲得比較直接的控制 37 Web服務(wù)器控件 Html服務(wù)器控件和Html控件小結(jié) Html服務(wù)器控件作為一個(gè)過渡的實(shí)現(xiàn) 雖然能夠兼顧瀏覽器端和服務(wù)器端 終究是一個(gè)奇怪的存在 盡量少使用為妙從微軟的角度 良好封裝的Web服務(wù)器控件提供了大量的便利 同時(shí)WebForm和WinForm開發(fā)模式的差異使得相互的經(jīng)驗(yàn)?zāi)軌蚧ネ?當(dāng)然是多使用Web服務(wù)器控件為好 不過Web服務(wù)器控件的缺點(diǎn)是占用服務(wù)器資源 頁面Postback過多存在的就是合理的 Html還是要會地 Javascript當(dāng)然是要好好學(xué)地 Web開發(fā)各種奇奇怪怪的標(biāo)簽共存于Page中的場面短時(shí)間內(nèi)是不可能消失地 38 3 3驗(yàn)證控件 ASP NET提供了多種驗(yàn)證控件這些驗(yàn)證控件都支持服務(wù)器端驗(yàn)證 如果瀏覽器支持DHTML的話也可提供客戶端驗(yàn)證 如果運(yùn)用得當(dāng)客戶端驗(yàn)證可以有效地減少與服務(wù)器端的交互 極大地提高Web應(yīng)用程序的性能 驗(yàn)證控件通常要認(rèn)證其他控件的有效性 因而必須和其他控件一起使用 它們都具有一個(gè)屬性ControlToValidate來指定要驗(yàn)證的控件 這個(gè)值是必需的 否則驗(yàn)證控件將會出錯(cuò) 39 3 3驗(yàn)證控件 40 3 3驗(yàn)證控件 示例 例 打開VisualStudio NET新建一個(gè)Web應(yīng)用程序項(xiàng)目 命名為Validator 向Web窗體中添加標(biāo)簽控件 輸入控件和驗(yàn)證控件 依次放入5個(gè)標(biāo)簽控件 設(shè)定它們的Text屬性分別為 姓名 年齡 密碼 確認(rèn)密碼 和 E mail 在標(biāo)簽控件之后依次放入5個(gè)輸入框控件 它們的ID在默認(rèn)狀態(tài)下會自動設(shè)為TextBox1 TextBox2 TextBox3 TextBox4和TextBox5 設(shè)定TextBox3和TextBox4的TextMode屬性為Password 在TextBox1 TextBox2 TextBox4和TextBox5控件后分別放入一個(gè)RequiredFieldValidator驗(yàn)證控件 分別將這些RequiredFieldValidatork控件的ErrMessage屬性設(shè)定為 姓名不能為空 年齡不能為空 密碼不能為空 和 E mail不能為空 ControlToValidate屬性分別設(shè)置為TextBox1 TextBox2 TextBox4和TextBox5 TextBox2后再放入一個(gè)RangeValidator驗(yàn)證控件其ErrMessage屬性設(shè)為 值不合法 ControlToValidate屬性設(shè)為TextBox2 MaximumValue屬性設(shè)為100 Minimum屬性設(shè)為1 Type屬性設(shè)為Integer TextBox4后再放入一個(gè)CompareValidator控件 它的ErrMessage屬性設(shè)為 兩次輸入不一致 ControlToCompare屬性設(shè)為TextBox3 ControlToValidtae屬性設(shè)為TextBox4 Text5后再放一個(gè)RegularExpressionValidator控件ErrMessage屬性設(shè)為 輸入不正確 ControlToValidator屬性設(shè)為TextBox5 當(dāng)在屬性對話框選擇ValidationExpress屬性時(shí)會彈出 正則表達(dá)式編輯器 對話框 從中選擇 Internet電子郵件地址 最后向窗體中添加一個(gè)Button控件和一個(gè)ValidationSummary控件 41 3 3驗(yàn)證控件 示例 RequiredFieldValidator控件保證它所驗(yàn)證控件的輸入不能為空RangeValidator控件保證了它所驗(yàn)證控件的輸入應(yīng)在一定的范圍內(nèi) 在本例中保證在TextBox2中輸入為1到100之間的整型值 CompareValidator控件將它驗(yàn)證的控件的內(nèi)容與另一個(gè)控件或另一個(gè)值進(jìn)行比較 在本例中使用了ControlToCompare屬性 以此來表明需要與另一控件相比較 默認(rèn)的比較操作屬性O(shè)perator的值是Equal 相等 這樣該控件的功能其實(shí)就是保證兩次密碼輸入相等 RegularExpressionValidator保證控件的輸入應(yīng)滿足特定的正則表達(dá)式規(guī)則 本例指定為 Internet電子郵件地址 即要求TextBox5中要輸入一個(gè)電子郵件地址 這些驗(yàn)證控件的EnableClientScript現(xiàn)在都默認(rèn)為True 這就表明將生成瀏覽器腳本在客戶端進(jìn)行驗(yàn)證 運(yùn)行程序 在驗(yàn)證控件對應(yīng)的文本框中必須正確輸入 否則將會在驗(yàn)證控件的位置出現(xiàn)錯(cuò)誤信息 在ValidationSummary控件中則會顯示出所有這些錯(cuò)誤信息CustomValidator控件提供了用戶自定義的功能 當(dāng)上面的驗(yàn)證控件都無法滿足要求的時(shí)候就需要CustomValidator控件了 它提供了自定義客戶端與服務(wù)器端驗(yàn)證的功能 它包含有一個(gè)ClientValidationFunction屬性和ServerValidate事件 可以分別與客戶端和服務(wù)器端進(jìn)行綁定 然后編寫滿足自己需要的驗(yàn)證函數(shù) 42 3 3驗(yàn)證控件 驗(yàn)證控件的使用 43 3 3驗(yàn)證控件 正則表達(dá)式編輯器 44 3 3驗(yàn)證控件 程序的運(yùn)行 45 3 4用戶控件 當(dāng)ASP NET提供的控件都無法滿足要求的時(shí)候就需要自己編寫控件了 這些控件叫做用戶控件 可以使用兩種方式來創(chuàng)建用戶控件一種方式是把以前編寫的Web頁面包裝成控件 這樣的控件稱為Web用戶控件另一種方式是從 NET的某個(gè)框架類繼承一個(gè)新類用來生成控件 這樣的控件稱為Web自定義控件 46 3 4用戶控件 Web用戶控件 先來介紹第一種方式 下面創(chuàng)建一個(gè)Web窗體 然后把它轉(zhuǎn)化成Web用戶控件的形式 接著再創(chuàng)建一個(gè)新的Web窗體來使用這個(gè)控件 例 新建一個(gè)ASP NETWeb應(yīng)用程序 命名為MyControl 在窗體上放入一個(gè)標(biāo)簽控件 一個(gè)文本框控件和一個(gè)Button控件 雙擊Button控件將切換到代碼編輯對話框 在Button1 Click方法中填寫下列代碼 privatevoidButton1 Click objectsender System EventArgse 改變文本標(biāo)簽的內(nèi)容Label1 Text Hello TextBox1 Text 切換到Web窗體的HTML代碼對話框 將顯示出WebForm1 aspx文件的內(nèi)容 現(xiàn)在依次進(jìn)行下面步驟 將Web頁面轉(zhuǎn)換成Web控件 1 從文件中刪除標(biāo)簽 標(biāo)簽 標(biāo)簽及內(nèi)容 標(biāo)簽和標(biāo)簽 2 將文件第一行的Page改為Control并把WebForm1 aspx cs更名為WebForm1 ascx cs 47 3 4用戶控件 Web用戶控件 48 3 4用戶控件 Web用戶控件 3 在解決方案對話框中選中WebForm1 aspx 右擊選擇 重命名 將WebForm1 aspx的名字改為WebForm1 ascx 這時(shí)文件WebForm1 aspx cs也會自動更名為WebForm1 ascx cs 將WebForm1 ascx cs中的publicclassWebForm1 System Web UI Page一行改為publicclassWebForm1 System Web UI UserControl 4 保存項(xiàng)目 Web用戶控件就完成了 這個(gè)Web用戶控件只實(shí)現(xiàn)了很簡單的功能 為使一個(gè)Web對話框變?yōu)榭丶仨毷紫葘⑵渲械捻撁嬖貏h除 其次由于Web用戶控件的擴(kuò)展名為ascx 因此也要將aspx擴(kuò)展名變?yōu)閍scx 最后Web用戶控件應(yīng)由用戶控件類派生 下面用一個(gè)新的Web應(yīng)用程序項(xiàng)目來測試一下剛才生成的Web用戶控件 新建一個(gè)ASP NETWeb應(yīng)用程序 命名為UserControl 在解決方案資源管理器對話框內(nèi)的UserControl項(xiàng)上右擊 選擇 添加現(xiàn)有項(xiàng) 彈出 添加現(xiàn)有項(xiàng) 對話框 文件類型中選擇 公用Web文件 定位到MyControl目錄選定WebForm1 ascx 單擊 打開 按鈕 添加MyControl引用這時(shí)就把Web用戶控件添加到了UserControl項(xiàng)目中 在解決方案資源管理器內(nèi)單擊WebForm1 ascx 把它拖動到Web對話框中 Web對話框中就會出現(xiàn)剛才新建的Web用戶控件由于現(xiàn)在的控件沒有設(shè)計(jì)器的支持 因此在設(shè)計(jì)對話框中沒有顯示出Web用戶控件的顯示界面 執(zhí)行這個(gè)項(xiàng)目 在文本框內(nèi)輸入 maj 單擊按鈕 這時(shí)標(biāo)簽中就會顯示出 Hellomaj 整個(gè)頁面的功能其實(shí)都是由一個(gè)Web用戶控件提供的 可以將更復(fù)雜的窗體組合在一起做成Web用戶控件 使用在項(xiàng)目里以達(dá)到代碼重用的目的 49 3 4用戶控件 添加現(xiàn)有項(xiàng)對話框 50 3 4用戶控件 向窗體中添加Web用戶控件 51 3 4用戶控件 使用Web用戶控件 52 3 4用戶控件 Web自定義控件 Web自定義控件是一種更方便 功能更強(qiáng)大的設(shè)置用戶控件的方式 它最終將編譯成DLL文件 可以方便地進(jìn)行發(fā)布 例 新建一個(gè)項(xiàng)目 在右側(cè) 模板 欄內(nèi)選擇 Web控件庫 將項(xiàng)目名稱改為MyCustomControl 單擊 確定 按鈕 usingSystem usingSystem Web UI usingSystem Web UI WebControls usingSystem ComponentModel namespaceMyCustomControl DefaultProperty Text ToolboxData publicclassWebCustomControl1 System Web UI WebControls WebControl 將此控件呈現(xiàn)給指定的輸出參數(shù) 要寫出到的HTML編寫器 輸出當(dāng)前時(shí)間protectedoverridevoidRender HtmlTextWriteroutput output Write DateTime Now ToString 53 3 4用戶控件 Web自定義控件 上面的代碼實(shí)現(xiàn)了一個(gè)顯示出當(dāng)前時(shí)間的控件 當(dāng)控件呈現(xiàn)在頁面上時(shí)會調(diào)用Render方法 本例中當(dāng)前的時(shí)間就是在Render方法中輸出的 這個(gè)控件沒有公開任何的屬性和事件 保存項(xiàng)目 選擇 生成 生成MyCustomControl 命令 這將會在該項(xiàng)目對應(yīng)目錄的bin Debug子目錄下生成名為MyCustomControl dll的文件 這樣這個(gè)簡單的Web自定義控件就生成了 現(xiàn)在演示如何使用這個(gè)控件 新建一個(gè)ASP NETWeb應(yīng)用程序項(xiàng)目 命名為UseCustomControl 下一步要把新建的控件加入到工具箱內(nèi) 選擇 工具 選擇工具箱 命令單擊 瀏覽 按鈕 在彈出的對話框中選定CustomControl項(xiàng)目所在目錄 選定文件CustomControl dll 單擊 確定 按鈕 這樣在Web的工具箱中就會出現(xiàn)一個(gè)新的控件 選定該控件并把它添加到窗體上 執(zhí)行這個(gè)項(xiàng)目 在瀏覽器中顯示出了當(dāng)前的時(shí)間 例子雖然簡單但是卻演示了Web自定義控件的基本生成方法 生成用戶自定義控件的過程都是一致的 如果綜合運(yùn)用 NET的類庫就可以實(shí)現(xiàn)更加復(fù)雜的自定義控件 如果想使控件設(shè)計(jì)時(shí)更加美觀 可以將System Design dll引用到項(xiàng)目里 并從System Web UI Design ControlDesigner繼承一個(gè)新類 實(shí)現(xiàn)該類的GetDesignTimeHtml方法 并把它加入到自定義控件的屬性聲明中 這樣就可像普通Web服務(wù)器控件一樣在設(shè)計(jì)階段就可以顯示出外觀 54 3 4用戶控件 向工具箱中添加控件 55 3 4用戶控件 添加到工具箱中的用戶自定義控件 56 3 4用戶控件 用戶自定義控件的使用 57 4創(chuàng)建Web服務(wù) 4 1Web服務(wù)4 2一個(gè)簡單的Web服務(wù)4 3使用Web服務(wù)訪問數(shù)據(jù)庫 58 4 1Web服務(wù) Web服務(wù)提供了一種調(diào)用網(wǎng)絡(luò)應(yīng)用的新方法 剛一出現(xiàn)就表現(xiàn)出了極大的生命力 它也許會帶來網(wǎng)絡(luò)應(yīng)用程序的重大變革在Internet的發(fā)展中 如何使各種應(yīng)用系統(tǒng)有效集成一直是一個(gè)令人頭痛的問題 使用不同技術(shù)建立起來的Internet應(yīng)用系統(tǒng)無法互相通信 彼此的功能無法相互調(diào)用 造成了網(wǎng)絡(luò)資源的極大浪費(fèi) 雖然CORBA DCOM COM 等技術(shù)為此進(jìn)行了極大的努力 但目前仍然無法有效地解決問題 Web服務(wù)的出現(xiàn)給我們帶來了新的希望Web服務(wù)使用基于XML的消息協(xié)議SOAP 提供了規(guī)范的數(shù)據(jù)封包格式并且使用HTTP協(xié)議傳輸 從而可以方便地在各種異構(gòu)的應(yīng)用系統(tǒng)之間進(jìn)行通訊 同樣基于XML的WSDL用作Web服務(wù)的服務(wù)描述 它向外公布了Web服務(wù)所提供服務(wù)的接口 UDDI則提供了Web服務(wù)的服務(wù)發(fā)現(xiàn)機(jī)制 59 4 2一個(gè)簡單的Web服務(wù) 下面來創(chuàng)建一個(gè)簡單的Web服務(wù)來演示它的基本組成 例 VisualStudio NET為Web服務(wù)提供了強(qiáng)大的支持 借助它可以方便地進(jìn)行Web服務(wù)的開發(fā) 打開VisualStudio NET 新建項(xiàng)目 在項(xiàng)目模板中選擇 ASP NETWeb服務(wù) 命名為MyWebService 這時(shí)將出現(xiàn)設(shè)計(jì)對話框 現(xiàn)在切換到代碼編輯對話框 按下面的程序改變對話框中的代碼 usingSystem usingSystem Collections usingSystem ComponentModel usingSystem Data usingSystem Diagnostics usingSystem Web usingSystem Web Services namespaceMyWebService Service1的摘要說明 60 4 2一個(gè)簡單的Web服務(wù) 設(shè)定該Web服務(wù)的命名空間 WebService Namespace 61 4 2一個(gè)簡單的Web服務(wù) endregion WEB服務(wù)示例 HelloWorld 示例服務(wù)返回字符串HelloWorld 若要生成 請取消注釋下列行 然后保存并生成項(xiàng)目 若要測試此Web服務(wù) 請按F5鍵 實(shí)現(xiàn)兩個(gè)數(shù)相加的Web服務(wù) WebMethod publicintAdd intfirstnumber intsecondnumber returnfirstnumber secondnumber 這樣就實(shí)現(xiàn)了一個(gè)簡單的Web服務(wù) 它只提供了一項(xiàng)功能 計(jì)算兩個(gè)整數(shù)的和 現(xiàn)在運(yùn)行程序來測試這個(gè)Web服務(wù) 不過要注意Web服務(wù)并不是在運(yùn)行后的瀏覽器對話框中顯示的這樣 它本身只是提供給用戶的服務(wù) 這里看到的只是ASP NET提供的一個(gè)方便的測試界面 62 4 2一個(gè)簡單的Web服務(wù) 測試Web服務(wù) 63 4 2一個(gè)簡單的Web服務(wù) 在類Service1上加入一行 WebService Namespace 64 4 2一個(gè)簡單的Web服務(wù) 測試Add方法 65 4 2一個(gè)簡單的Web服務(wù) Web服務(wù)調(diào)用結(jié)果 66 4 3使用Web服務(wù)訪問數(shù)據(jù)庫 下面結(jié)合使用ADO NET創(chuàng)建一個(gè)可訪問數(shù)據(jù)庫的Web服務(wù) 同時(shí)編寫一個(gè)客戶端程序 用來調(diào)用這個(gè)Web服務(wù) 例 新建項(xiàng)目 在 模板 中選擇 ASP NETWeb服務(wù) 將該項(xiàng)目命名為MyDataService usingSystem usingSystem Collections usingSystem ComponentModel usingSystem Data usingSystem Data SqlClient usingSystem Diagnostics usingSystem Web usingSystem Web Services namespaceMyDataService Service1的摘要說明 指定該Web服務(wù)的命名空間 WebService Namespace 67 4 3使用Web服務(wù)訪問數(shù)據(jù)庫 regionComponentDesignergeneratedcode Web服務(wù)設(shè)計(jì)器所必需的privateIContainercomponents null 設(shè)計(jì)器支持所需的方法 不要使用代碼編輯器修改此方法的內(nèi)容 privatevoidInitializeComponent 清理所有正在使用的資源 protectedoverridevoidDispose booldisposing if disposing 68 4 3使用Web服務(wù)訪問數(shù)據(jù)庫 endregion 建立一個(gè)sqlConnection連接SQLServer數(shù)據(jù)庫publicSqlConnectionmyConn newSqlConnection DataSource localhost IntegratedSecurity SSPI InitialCatalog northwind WebMethod publicDataSetGetDataSet 建立一個(gè)sqlDataAdapter取得products表內(nèi)容SqlDataAdaptermyDA newSqlDataAdapter SELECT FROMPRODUCTS myConn 新建一個(gè)數(shù)據(jù)集DataSetmyDS newDataSet 填充數(shù)據(jù)集myDA Fill myDS returnmyDS 該Web服務(wù)提供了一個(gè)GetDataSet方法 它通過SqlConnection對象連接到數(shù)據(jù)庫 并將Products表的數(shù)據(jù)填充到數(shù)據(jù)集中 然后將得到的數(shù)據(jù)集返回 下面開始編寫一個(gè)Web應(yīng)用程序來調(diào)用剛才生成的Web服務(wù)的客戶程序 新建一個(gè)ASP NETWeb應(yīng)用程序項(xiàng)目 命名為UseDataService 轉(zhuǎn)到該項(xiàng)目的解決方案資源管理器對話框 從列表中選擇 引用 右擊 選擇 添加Web引用 將彈出 添加Web引用 對話框 69 4 3使用Web服務(wù)訪問數(shù)據(jù)庫 添加Web引用 對話框 70 4 3使用Web服務(wù)訪問數(shù)據(jù)庫 在該對話框的地址欄中填入剛才新建的Web服務(wù)的位置 這里是http localhost MyDataService Service1 asmx 刷新后左側(cè)的對話框中將會出現(xiàn)該Web服務(wù)支持的方法 單擊 添加引用 現(xiàn)在在項(xiàng)目中就可以直接引用這個(gè)Web服務(wù)了 現(xiàn)在將一個(gè)DataGrid控件添加到Web窗體中 轉(zhuǎn)到代碼編輯對話框 填入下列代碼 usingSystem usingSystem Collections usingSystem ComponentModel usingSystem Data usingSystem Drawing usingSystem Web usingSystem Web SessionState usingSystem Web UI usingSystem Web UI WebControls usingSystem Web UI HtmlControls namespaceUseDataService WebForm1的摘要說明 publicclassWebForm1 System Web UI Page 71 4 3使用Web服務(wù)訪問數(shù)據(jù)庫 protectedSystem Web UI WebControls DataGridDataGrid1 privatevoidPage Load objectsender System EventArgse 生成Web服務(wù)引用實(shí)例localhost Service1myService newlocalhost Service1 DataSetmyDataSet newDataSet 在此處放置用戶代碼以初始化頁面 指定DataGrid控件數(shù)據(jù)源myDataSet myService GetDataSet DataGrid1 DataSource myDataSet 將數(shù)據(jù)綁定到DataGrid控件中DataGrid1 DataBind regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit EventArgse CODEGEN 該調(diào)用是ASP NETWeb窗體設(shè)計(jì)器所必需的 InitializeComponent base OnInit e 72 4 3使用Web服務(wù)訪問數(shù)據(jù)庫 設(shè)計(jì)器支持所需的方法 不要使用代碼編輯器修改 此方法的內(nèi)容 privatevoidInitializeComponent this Load newSystem EventHandler this Page Load endregion 運(yùn)行這個(gè)程序 在瀏覽器對話框中顯示了從Web服務(wù)得到的數(shù)據(jù)庫的內(nèi)容 把Web引用添加到項(xiàng)目中后會自動生成一個(gè)該Web服務(wù)的代理類 可以認(rèn)為這個(gè)代理類就是Web服務(wù)的本地映像 在Web應(yīng)用程序中可以直接生成該代理類的實(shí)例用來調(diào)用Web服務(wù) 本例中這個(gè)代理類是localhost Service1 這個(gè)名稱是添加Web引用后的默認(rèn)生成的 生成代理類的實(shí)例后直接調(diào)用了Web服務(wù)提供的GetDataSet方法用來返回?cái)?shù)據(jù)集 將該數(shù)據(jù)集綁定到DataGrid控件上就可以在瀏覽器中顯示數(shù)據(jù)了 73 4 3使用Web服務(wù)訪問數(shù)據(jù)庫 使用Web服務(wù)訪問數(shù)據(jù)庫 74 Question Answer Thankyou 75- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
30 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 開發(fā) Web 應(yīng)用程序 ppt 課件
鏈接地址:http://kudomayuko.com/p-4972866.html