Download presentation
Presentation is loading. Please wait.
1
Ch03 VB.NET語法建立ASP.NET 網頁程式設計
2
大綱 ASP.NET的開發環境 ASP.NET基本架構 VB.NET變數的資料型態 VB.NET陣列資料型態 VB.NET運算子
3
認識ASP.NET 動態網頁可以藉由下列兩種方式來完成: 用戶端scripts (描述語言):JavaScript、VBScript
CGI JSP PHP ASP
4
ASP.NET的基礎-說明 ASP.NET是ASP 3.0的新版本,不過ASP.NET並不能說是ASP的改版。因為ASP.NET是全新架構的伺服端網頁技術,屬於微軟.NET Framework技術的一環,能夠在伺服端建立功能強大的Web應用程式。 ASP.NET是架構在.NET Framework的「CLR」(Common Language Runtime,詳細的說明請參閱第1-2-3節)平台的網頁技術,其主要目的是用來建立Web應用程式。
5
.NET Common Language Runtime-說明
.NET Framework是微軟下一個世代的程式開發平台,它是由CLR和.NET Framework類別函式庫組成。 當使用.NET Framework支援的程式語言編寫程式碼檔案後,就可以使用.NET編譯程式進行編譯,不過,並不是編譯成CPU可執行的機器語言,而是一種中間程式語言稱為「MSIL」(Microsoft Intermediate Language)。
6
.NET Common Language Runtime-圖例
當需要執行程式時,CRL使用「JIT」(Just In Time)編譯程式將MSIL轉換成機器語言來執行程式,如下圖所示:
7
ASP.NET的基礎-特點 ASP.NET網頁技術的特點,如下所示: 執行效能的改進。 強大的功能和擴充性。 程式語言無關。
更強大的伺服端功能。 進階的伺服端控制項。
8
ASP.NET 2.0新增功能(1) 新的網站管理工具
9
ASP.NET 2.0新增功能(2) 改良的網頁撰寫模式 增強的快取功能 先行編譯網站以進行錯誤檢查與部署 為特殊功能所保留的資料夾
10
ASP.NET 2.0新增功能(3) 巡覽控制項
11
ASP.NET 2.0新增功能(4) 佈景主題 (theme) 主版頁面 (master page) Profile屬性 會員與角色管理
支援XML 改良的控制項 新增的控制項
12
ASP.NET開發需求 Web伺服器 .NET Framework 2.0 撰寫程式碼的工具
13
使用IIS將電腦架設為Web伺服器(1) 一、安裝IIS (Internet Information Services)
14
使用IIS將電腦架設為Web伺服器(2) 二、測試Internet Information Services (IIS)
啟動瀏覽器,然後在網址列輸入本機電腦的IP位址或 ( 一定是指向本機電腦) 或htpp://localhost
15
使用IIS將電腦架設為Web伺服器(3) 三、管理Web伺服器
16
使用IIS將電腦架設為Web伺服器(4)
17
使用IIS將電腦架設為Web伺服器(5) 5.
18
安裝 .NET Framework 2.0 (1) 下載軟體並安裝 或隨書光碟的dotnetfx.exe,然後依照畫面的提示操作。
19
安裝Visual Web Developer-說明
Visual Web Developer 2005 Express版簡稱VWD,它是Visual Studio產品線的擴充,微軟Express系列提供實用和最少負擔的程式開發工具,可以讓學生和初學者輕鬆進入Visual Studio和.NET Framework開發平台,快速建立所需的.NET應用程式。
20
安裝Visual Web Developer-步驟1
1. 請將書附光碟置入光碟機,稍等一下,就可以自動啟動安裝程序,如果沒有啟動,請自行按二下光碟的【setup.exe】程式來啟動安裝精靈,可以看到歡迎安裝的精靈畫面。 2. 按【下一步】鈕,可以看到軟體的使用者授權合約。 3. 勾選【我接受授權合約中的條款】同意授權,按【下一步】鈕選擇安裝元件。
21
安裝Visual Web Developer-步驟2
4. 請勾選全部元件,同時安裝MSDN 2005和SQL Server 2005 Express版,按【下一步】鈕更改安裝路徑和檢視準備安裝的元件清單。 5. 預設安裝路徑是「C:\Program Files\Microsoft Visual Studio 8\」,在下方的安裝元件清單包含.NET Framework 2.0中文版,按【安裝】鈕開始複製元件安裝Visual Web Developer Express。 6. 等到複製和安裝完成後,可以看到完成安裝的精靈畫面。 7. 請按【結束】鈕完成Visual Web Developer Express版的安裝。
22
指定IIS使用的ASP.NET版本 ASP.NET各版本可以在Windows作業系統並存,如果Windows作業系統同時安裝多個版本的.NET Framework,我們可以在IIS管理工具指定網站使用的ASP.NET版本,如右圖所示:
23
網頁撰寫模式(以記事本) 0-4-1 single-file模式 \Ch00\Hello1.aspx
Page Language="VB" %> 02:<script runat="server"> 03: Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 04: label1.Text = "Hello World!" 05: End Sub 06:</script> 07:<html> 08: <body> 09: <form runat="server" id="form1" > 10: <asp:Label runat="server" ID="label1" /> 11: </form> 12: </body> 13:</html>
24
編譯與部署 第一次執行 ASP.NET網頁 code-behind類別 .aspx檔案 第一次要求網頁 產生結果回應給瀏覽器 剖析器 編譯器
類別檔案 DLL檔案
25
第二次執行 ASP.NET網頁 code-behind類別 第一次要求網頁 產生結果回應給瀏覽器 剖析器 編譯器 .aspx檔案 類別檔案
DLL檔案 第二次要求網頁 產生結果回應給瀏覽器
26
就地先行編譯 我們可以在命令提示字元視窗切換到 .NET Framework安裝路徑 (例如C:\WINDOWS\Microsoft.NET\Framework\vxxxx),然後使用aspnet_compiler.exe公用程式進行就地先行編譯
27
針對部署先行編譯 我們可以在命令提示字元視窗切換到 .NET Framework安裝路徑 (例如C:\WINDOWS\Microsoft.NET\Framework\vxxxx),然後使用aspnet_compiler.exe公用程式進行針對部署先行編譯
28
物件的基本觀念 ASP.NET是一種伺服端網頁技術,本身並沒有專屬的程式語法,預設是使用VB.NET語法,VB.NET語言是一種支援.NET Framework的物件導向程式語言。 ASP.NET主要是使用VB.NET語法和.NET Framework類別的物件,就算不熟悉物件導向程式設計也沒有關係,因為只需了解物件的基本觀念和如何使用即可。
29
物件的基本觀念-物件(Objects)與類別(Classes)
物件為物件導向程式的基礎,簡單的說物件是資料(Data)和包含處理資料相關函數(稱為方法)的綜合體 而「類別」(Class)是物件的藍圖,可以用來定義物件和建立物件,在類別中會設計一些方法,即處理的程序(程式碼) 在建立好物件後,並不用考慮物件內部處理的程式碼,只需知道物件提供的屬性和方法和如何使用,就可以使用這些物件。 例如:ASP.NET可以使用.NET Framework的類別物件提供的HTTP物件:Response、Server、Request、Session和Application等物件。
30
物件的基本觀念-屬性(Properties)
物件的屬性是物件的性質和狀態,例如: Response物件的ContentType屬性。 Response物件的BufferOutput屬性。 Response.ContentType Response.BufferOutput
31
物件的基本觀念-方法(Methods) 方法就是物件的處理函數,例如:Response物件擁有下列方法,如下所示:
Response.Write() Response.Redirect()
32
物件的基本觀念-事件(Events) 事件是指物件回應的事件,例如:Page物件的Load事件,我們可以建立處理此事件的程序,如下所示:
Sub Page_Load(Sender As Object, e As Eventargs) ……. End Sub
33
物件的基本觀念-集合物件(Collections)
集合物件如同此名是一組物件的集合,例如:Response物件的集合物件Cookies(通常是使用指定屬性取得集合物件),如下所示: Response.Cookies("name").Value 程式碼取出集合物件中名為name的Cookie物件,然後使用Value屬性取得其值,事實上,Application和Session物件都屬於一種集合物件
34
ASP.NET程式的基本架構 在舊版ASP 3.0版使用的程式語法是VBScript或JavaScript等腳本語言,ASP.NET使用的是.NET語言C#、VB.NET或Jscript.NET等,以本書為例是使用「VB.NET」(Visual Basic.NET,簡稱VB.NET)。 VB.NET是Visual Basic 6的下一個版本,和前一個版本的主要差異在VB.NET是支援.NET Framework的物件導向程式語言。
35
微軟的BASIC家族 源於Bill Gates對於BASIC語言的喜愛,BASIC語言在微軟程式開發語言上一直佔有十分重要的地位,在經歷超過10年的長時間發展,目前微軟Basic家族包含Visual Basic 6到VB.NET,Office家族提供VBA,客戶端有VBScript。伺服端VBScript語法的ASP和VB.NET語法的ASP.NET。
36
範例1:字型大小的變化(HTML) 希望的結果:
37
範例1:字型大小的變化(HTML)續 <html> <head>
<title>第三章範例1:字型大小變化</title> </head> <body> <font size=4> <p>ASP.NET網頁設計範例教本</p> </font> <font size=5> <font size=6> </body> </html>
38
使用VB.NET <% For i=4 to 6 %> <fornt size= <%=i%> >
<font size=4> <p>ASP.NET網頁設計範例教本</p> </font> <font size=5> <font size=6> For i = 4 to 6 <font size=i> <p>ASP.NET網頁設計範例教本</p> <font> Next i <% For i=4 to 6 %> <fornt size= <%=i%> > <p>ASP.NET網頁設計範例教本</p> <font> <% Next i %>
39
範例2:字型大小變化(aspx) <html> <head>
<title>第三章範例2:字型大小變化</title> </head> <body> <% Dim i As Integer For i = 4 to 6 %> <font size= <%=i%> > <p>ASP.NET網頁設計範例教本</p> </font> <% Next i %> </body> </html>
40
檢視原始檔 在IE下 -> 檢視 -> 原始檔 是不是和範例1的HTML檔一樣
41
練習1 建立一個HTML檔案,作字型的大小變化 建立一個aspx檔案,作字型的大小變化
42
建立VB.NET語法的ASP.NET程式-說明
ASP.NET程式的附檔名為.aspx,程式碼直接內嵌於HTML標籤,置於<%…%>符號間,如下: 08: <% 09: ' 變數宣告 10: Dim beginSize, endSize, i As Integer 11: beginSize = 4 12: endSize = 6 13: ' 設定字型尺寸由小變大 14: For i = beginSize To endSize 15: %> 16: <font size=<%=i%>> 17: <p>ASP.NET網頁設計範例教本</p></font> 18: <% 19: Next i 20: %>
43
建立VB.NET語法的ASP.NET程式-Page指引
02: Page Language="VB" %> @ Page是ASP.NET程式的「指引」(Directive),Language「屬性」(Attribute)定義ASP.NET程式使用的程式語言,以此例為VB,表示使用VB.NET,因為預設值是VB,如果使用VB.NET,也可以省略這一列程式碼。
44
變數宣告和迴圈開始 變數宣告和迴圈開始:第8~15列的ASP.NET程式區塊宣告變數和For Next迴圈指令的開始,整段程式碼並沒有任何HTML標籤,所以只需在開始和結束加上<%和%>符號,如下所示: 08: <% 09: ' 變數宣告 10: Dim beginSize, endSize, i As Integer 11: beginSize = 4 12: endSize = 6 13: ' 設定字型尺寸由小變大 14: For i = beginSize To endSize 15: %>
45
內含於HTML標籤 內含於HTML標籤:第16列的<font>標籤指定字型尺寸,在標籤屬性size加上ASP.NET程式碼,這個屬性屬於動態變數,隨著迴圈產生不同的字型尺寸,同樣是位在<%和%>符號間,如下所示: 16: <font size=<%=i%>>
46
迴圈結束 迴圈結束:最後第18~20列屬於迴圈結束的程式碼,因為前後都有不同的HTML標籤,這列程式碼也需要使用<%和%>符號標示出來,如下所示: 18: <% 19: Next i 20: %>
47
儲存成ASP.NET程式 ASP.NET程式檔案內容也擁有HTML標籤,只是其副檔名為【.aspx】,如果使用【記事本】儲存檔案時,預設儲存的副檔名為【.txt】,所以當編輯好ASP.NET程式,要將儲存類型設定為”所有檔案“, 並且在檔名要輸入附檔名為.aspx
48
ASP.NET程式的執行過程 ASP.NET程式為伺服端網頁技術,我們需要將程式檔案公佈到Web伺服器後才能執行ASP.NET程式,其執行的過程,如下圖所示:
49
使用註解文字 程式註解是程式設計上很重要的部分,良好的註解不但能夠輕易了解程式的目的,而且在維護上也可以提供更多的資訊,VB.NET的程式註解是以「'」符號或Rem指令開始的列,或程式列之後此符號後的文字內容,如下所示: ' 註解文字 Rem 註解文字 Response.Write(“<h2>大家好!</h2>”) ‘ 使用Response物件,Response.Write(“輸出的字串”)可將“輸出的字串”送到客戶端
50
太長的程式碼 如果程式碼的長度太長,基於程式編排的需要可以將它分成兩列,此時請在第一列程式碼的最後加上「_」符號,如下所示:
Response.Write("<h2>大家好!這是比較長的程式碼, " & _ "所以需要分為兩列.</h2>") 將字串分成兩列需要使用字串運算字「&」連結兩個字串,並不能直接分割字串,如下所示: Response.Write("<h2>大家好!這是比較長的程式碼, _ 所以需要分為兩列.</h2>")
51
VB.NET變數的資料型態 VB.NET變數的目的是儲存程式執行中的一些暫存資料,程式設計者只需使用變數名稱就可以存取記憶體位置中的資料,資料型態可以指定變數儲存的資料種類。
52
變數的資料型態-1 VB.NET的變數並沒有強調一定需要宣告其資料型態,如果沒有宣告資料型態,預設的資料型態是Object,Object是所有VB.NET資料型態的基礎資料型態。VB.NET的資料型態,如下:
53
變數的資料型態-2
54
變數的資料型態-3
55
變數的宣告-命名原則 VB.NET的命名原則,如下所示: 不可以使用VB.NET的保留字或系統的物件名稱。
必需是英文字母或底線「_」開頭,如果以底線開頭,至少需要一個英文字母或數字。 名稱長度不可超過16383個字元,不區分英文大小寫,abc和ABC代表同一個名稱。 名稱中間不能有句點「.」或空白,只能是英文字母、數字和底線。 在宣告的有效範圍內需唯一。
56
變數的宣告-範例 VB.NET元素名稱的範例,如下所示: abc, ab_123, size1, _123, _abc ' 合法名稱
57
變數的宣告-宣告變數 變數在程式碼扮演的角色是用來儲存程式執行中的一些暫存資料,在VB.NET程式碼是使用【Dim】指令宣告所需的變數,其指令如下: Dim balance ' 變數balance的資料型態是Object 程式碼宣告一個變數,因為沒有指定資料型態,預設的資料型態為Object,可以儲存各種資料型態的值。如果宣告的變數需要指定型態,我們需要使用As指令宣告變數的資料型態,如下: Dim size1,size2 As Integer ' 變數都是Integer資料型態
58
變數的宣告-指定初值 如果同一列的2個變數屬於不同資料型態,我們可以分別宣告其資料型態,如下所示: 程式碼宣告2個變數:一為字串,一為整數。
Dim name As String,size3 As Integer 程式碼宣告2個變數:一為字串,一為整數。 如果需要,還可以在宣告時同時指定變數的初值,如下所示: Dim name As String ,size3 As Integer = 100 程式碼指定變數size3的初值為100。
59
指定敘述 在VB.NET宣告變數後,因為變數是用來儲存資料,所以需要指定或更改變數值,使用的是指定敘述「=」等號,例如:指定變數值,如下所示: balance = 1000 size1 = 500 size2 = 400 name = “陳會安” 變數balance是Object資料型態,可以儲存各種資料型態的資料,可以再次在程式碼使用指定敘述設定變數成其它值,如下所示: balance = "1000"
60
常數的宣告與使用 程式碼的常數是使用一個常數名稱取代固定的數字或字串,與其說它是一種變數,不如說只是一個名稱的轉換,將一些數值的值用有意義的名稱取代,VB.NET本身已經擁有一些內建常數,我們也可以自行建立所需的常數,常數在宣告同時需要指定其值,如下所示: Const PI = 常數就是圓周率的常數,在VB.NET程式碼就可以直接使用這個常數計算圓面積。
61
VB.NET的運算子 在VB.NET指定敘述的等號右邊若為運算式或是條件運算式,這都是使用「運算子」(Operator)和「運算元」(Operand)所組成,VB.NET擁有完整的算術(Arithmetic)、關係(Relational)、連結(Concatenation)和邏輯(Logical)運算子。一些範例如下所示: A + B - 1 A >= B A > B And A > 1 運算式變數A、B和數值1都屬於運算元,「+」、「-」、「>=」和「>」為運算子。
62
運算子的優先順序 如果運算子沒有優先順序的差異,運算式依照出現的順序,由左到右依序的執行。 "( )"括號內比括號外先執行。
當運算式擁有多種運算子時,算術運算子最先,接著關係運算子,最後是邏輯運算子,如下: 算術運算子 > 關係運算子 > 邏輯運算子 關係運算子擁有相同的優先順序。 算術運算子的優先順序,如下所示: ^指數 > (-)負號 > */乘除 > \整數除法 > Mod > +-加減 > & 邏輯運算子的優先順序,如下所示: Not > And, AndAlso > Or, OrElse > Xor
63
算術運算子
64
字串連結運算子 VB.NET字串資料型態的變數可以使用字串連結運 算子「&」來連結,其優先順序是在算術運算子 之後,但在關係運算子之前,如下表所示:
65
關係運算子
66
邏輯運算子-說明
67
邏輯運算子-範例
68
邏輯運算子-真假值表
69
指定運算子
70
範例3:一些運算的輸出 <html> <head>
<title>第三章範例3:一些運算的結果</title> </head> <body> <% Dim i, j As Integer i = 5 j = 3 Response.Write("<p> i = " & i & "</P>") Response.Write("<p> j = " & j & "</p>") Response.Write( i & "+" & j & "=" & i+j & "<br>") Response.Write( i & "-" & j & "=" & i-j & "<br>") Response.Write( i & "*" & j & "=" & i*j & "<br>") Response.Write( i & "/" & j & "=" & i/j & "<br>") Response.Write( i & "\" & j & "=" & i\j & "<br>") Response.Write( i & "mod" & j & "=" & i mod j & "<br>") %> </body> </html>
71
陣列的基礎 「陣列」(Arrays)是程式語言的一種資料結構,屬於一種順序性的資料結構,在日常生活最常見的是公寓大樓的信箱,一排排的信箱,郵差使用門牌號碼投遞信件,住戶依門牌號碼取出信件。我們可以將每一個單獨信箱視為變數,整排的信箱就是陣列,門牌號碼就是取得變數值所需的索引值,如下圖所示:
72
一維陣列-宣告 一維陣列對比前述的信箱就是單排信箱,VB.NET的陣列通常是固定大小的陣列,也就是在宣告時需要指定陣列大小,宣告陣列的語法,如下所示: Dim array_name(size-1) As type_name 語法的array_name為陣列名稱、size是陣列大小、type_name是資料型態,括號是最大索引值,需要減一,例如:宣告字串陣列name,如下: Dim name(4) As String 陣列的大小為5,因為從0起算所以括號值為4。
73
一維陣列-存取 使用指定敘述指定陣列值,其程式碼如下所示:
name(0) = "陳會安" name(1) = "江小魚" name(2) = "張無忌" name(3) = "楊過" name(4) = "小龍女" 程式碼可以看出使用名稱加上索引值來指定陣列元素,至於取出陣列值的程式碼,如下所示: userName = name(3) 程式碼取得陣列元素索引值為3的陣列變數值,也就是第4個陣列元素。
74
多維陣列 多維陣列擁有多個索引,對比前述的信箱就是多排信箱,二維陣列擁有2個索引,三維陣列有3個,依序類推。
只需是表格編排的資料,我們就可以建立多維陣列來儲存這些資料,例如:大樓住戶名稱和管理費的二維陣列,其宣告如下所示: Dim home(2,1) As String
75
範例4:二維陣列的宣告和使用 預期結果:
76
範例4:二維陣列的宣告和使用 <table border = "1"> <% <tr> ' 宣告二維陣列
<td>住戶名稱</td> <td>管理費</td> </tr> <% For i = 0 to 2 Response.Write("<tr>") For j = 0 to 1 %> <td> <% Response.Write(home(i,j)) %> </td> <% Next j Response.Write("</tr>") Next i <% ' 宣告二維陣列 Dim home(2,1) As String ' 指定陣列值 home(0,0) = "陳會安" home(0,1) = "1500" home(1,0) = "江小魚" home(1,1) = "2500" home(2,0) = "張無忌" home(2,1) = "3500" ' 以表格方式顯示陣列值 Dim i, j As Integer %>
77
範例4:二維陣列的宣告和使用 <% ' 宣告二維陣列 Dim home(2,1) As String ' 指定陣列值
<table border = "1"> <tr> <td>住戶名稱</td> <td>管理費</td> </tr> <% For i = 0 to 2 Response.Write("<tr>") For j = 0 to 1 Response.Write("<td>") Response.Write(home(i,j)) Response.Write("</td>") Next j Response.Write("</tr>") Next i %> <% ' 宣告二維陣列 Dim home(2,1) As String ' 指定陣列值 home(0,0) = "陳會安" home(0,1) = "1500" home(1,0) = "江小魚" home(1,1) = "2500" home(2,0) = "張無忌" home(2,1) = "3500“ ' 以表格方式顯示陣列值 Dim i, j As Integer %>
78
動態陣列-說明 動態陣列是指陣列大小允許在程式執行時變更其大小,即動態更改陣列的尺寸。
79
動態陣列-宣告 VB.NET的陣列可以使用【ReDim】指令在程式執行時重新更改陣列大小,不過ReDim並不能宣告陣列,只能更改現存的陣列大小,如下: ReDim name(2) 程式碼使用ReDim指令變更陣列大小為3,現在陣列擁有3個元素,如果陣列內已經儲存內容,為了保留原陣列的內容,需要使用Preserve指令,其宣告如下所示: ReDim Preserve name(4)
80
動態陣列-相關函數 在動態陣列的處理上,在程式更改大小後,我們需要取得目前陣列索引的範圍,此時可以使用函數取得陣列的索引範圍,相關函數說明,如下所示: Lbound()函數:取得陣列的最小索引,變數size的值是陣列的最小索引,如下所示: size = Lbound(name) Ubound()函數:取得陣列的最大索引,變數size的值是陣列的最大索引,如下所示: size = Ubound(name)
81
範例5:動態陣列的宣告和使用 ReDim name(2) Response.Write("更動第二次:<br>")
Response.Write("陣列最小索引:" & Lbound(name) & "<br>") Response.Write("陣列最大索引:" & Ubound(name) & "<br>") For i = 0 to 1 Response.Write("name(" & i & ")= " & name(i) & "<br>") Next i '宣告變數 Dim i As Integer ' 宣告陣列大小 Dim name(3) As String Dim size As Integer Response.Write("更動前:<br>") Response.Write("陣列最小索引:" & Lbound(name) & "<br>") Response.Write("陣列最大索引:" & Ubound(name) & "<br>") name(0) = "金獅王Alex" name(1) = "馬提" name(2) = "河馬莉" For i = 0 to 2 Response.Write("name(" & i & ")= " & name(i) & "<br>") Next i ReDim Preserve name(4) Response.Write("更動第一次:<br>") name(3) = "長頸男" For i = 0 to 3
82
範例5:動態陣列的宣告和使用(結果)
83
練習2 姓名 成績 愛力斯 100 馬提 85 河馬莉 56 冷靜 78 長頸男 34 課本p. 3-45實作題3,4
建立ASP.NET程式使用二維陣列變數儲存下列成績資料,如右表: 再新增2位學生的成績資料: 美化畫面 姓名 成績 愛力斯 100 馬提 85 河馬莉 56 冷靜 78 長頸男 34
84
補充資料 VB 6.0並沒有規定程式設計人員在使用變數之前必須先宣告,但是VB2005則要求程式設計人員必須先宣告變數
若要將多個敘述寫成同一行,中間必須加上冒號:
Similar presentations