王国荣之ASP+与VB.Net问答QA总汇
由hejianzhong整理 版权归原作者所有
###################################################################################
現在的 VB7 (Beta 1)與將來發表的 VB7(正式版),在用法上會不會有很多不一樣的地方?
--------------------------------------------------------------------------------
文件日期:2001/01/29
程式語言的基本屬於 .NET Framework 較底層的部分,如果這個部分會有很大的變動,架構在 .NET Framework 上面的工具其變動將更大,因此,據研判將來 VB7 在語法上的變動應該很小,或者就不再變動了。
###################################################################################
安裝 .NET SDK之後,VB6是不是就會成為VB.NET,會不會影響VB6原來的程式的運作?
--------------------------------------------------------------------------------
文件日期:2001/02/06
安裝 .NET SDK 之後,VB6 不會成為 VB.NET,VB.NET Beta 1 附屬於 Visual Studio.NET Beta 1,而 Visual Studio.NET Beta 1 有 3 片光碟片。
###################################################################################
在Win2000 Server 是否有提供以網頁上傳檔案的功能,如果仍未提供,除了從 NT4.0 升級 2000 的方法外,是否有替代方案?
--------------------------------------------------------------------------------
文件日期:2001/02/06
ASP.NET 領先研究一書 8-1 節就有介紹 ASP+ 的檔案上傳功能(不管在 NT 4.0 或 2000 底下都可以正常運作)。
--------------------------------------------------------------------------------
###################################################################################
第二章所提到的 config.web 檔案是否要每個目錄都放一個,或是放在一個目錄後,其餘的子目錄都不用放了,另外,虛擬目錄要不要放?
--------------------------------------------------------------------------------
文件日期:2001/02/19
config.web 的效力及於其子目錄,如果放在 aaa 目錄,則 aaa 的子目錄就可以不用再放了,但如果 aaa 的子目錄想要有自己的設定,則可以在自己的目錄放置另一個 config.web 檔案。
最特殊的目錄是 wwwroot 目錄(若安裝時未做改變,預設目錄為 c:\Inetpub\wwwroot),放在 wwwroot 目錄的config.web檔案其效力則及於wwwroot的所有子目錄所有虛擬目錄。
####################################################################################
ASP 網頁中的 Session 變數似乎不能傳遞至 ASP+ 網頁中,還是另有其他方式可讀取?
--------------------------------------------------------------------------------
文件日期:2001/02/19
Session 在 ASP 及 ASP+ 之中確實是不相通的,但 Cookie 卻是相通的,因為 Cookie 是儲存在瀏覽器之中,您可以您可以改以 Cookie 取代 Session。
--------------------------------------------------------------------------------
####################################################################################
ASP 之中儲存及讀取 Cookie 的敘述好像不適用於 ASP+?
--------------------------------------------------------------------------------
文件日期:2001/02/19
在 ASP 網頁製作教本中,讀取及儲存 Cookie 的敘述如下:
data1 = Request.Cookies("data1")
Response.Cookies("data1") = data1
而這兩個敘述等於:(註:其中的 Value 是 Cookie 預設的屬性)
data1 = Request.Cookies("data1").Value
Response.Cookies("data1").Value = data1
但是在 ASP+ 並不接受預設的屬性,所以:
data1 = Request.Cookies("data1") ' 錯誤
Response.Cookies("data1") = data1 ' 錯誤
data1 = Request.Cookies("data1").Value ' 正確
Response.Cookies("data1").Value = data1 ' 正確
####################################################################################
如果一個 aspx 網頁使用兩個以上的 Pagelet(Pagelet 介紹於第 7 章),而其中的函數重複(例如兩個 Pagelet 都有定義 Page_Load 事件程序),是否會有衝突?
--------------------------------------------------------------------------------
文件日期:2001/02/19
不同 Pagelet 的副程式(函數)是各自獨立的,因此可以有各自的 Page_Load 事件程序。
--------------------------------------------------------------------------------
####################################################################################
在 Asp+ 裡要加上註解是如同 Asp 的規則嗎?
--------------------------------------------------------------------------------
文件日期:2001/02/19
跟 ASP 一樣,如果在 VB 程式中加註,也是使用單引號('),如果在 HTML 文件中加註,也是使用 <!-- 註解文字 -->。
--------------------------------------------------------------------------------
####################################################################################
在 Asp+ 裡如果一行太長的話,是不是可在任何地方將它移到下一行,而不必如 VB 一樣在第一行的行尾加上 ''_'' 符號..?
--------------------------------------------------------------------------------
文件日期:2001/02/19
一樣要使用 _。
####################################################################################
Page_load 事件程序的參數
--------------------------------------------------------------------------------
文件日期:2001/03/30
Q:
Page_load(sender As Object, e AS EventArges) 裡面都是用 sender 及 e,這是 ASP+ 的規定或是可以隨便用? 如果一個 <Script...> </Script> 裡面有兩個 Sub ...End Sub,也是可以都用 sender、e 嗎?
A:
Page_Load 是 ASP+ 預設的事件程序,事件程序跟副程式(函數)一樣會先定義參數(包含「個數」及「型別」),以 Page_Load 為例,參數有兩個,其型別分別等於 Object 及 EventArges,至於參數的「名稱」則可以由我們自定,例如將:
Sub Page_load(sender As Object, e AS EventArges)
改成
Sub Page_load(P1 As Object, P2 AS EventArges)
也是可以的。至於兩個不同的Sub都定義相同的sender參數「名稱」,是沒關係的。
--------------------------------------------------------------------------------
####################################################################################
grid8.aspx 程式的修改
--------------------------------------------------------------------------------
文件日期:2001/03/30
Q:
有關第五章的 p.5-21 DataGrid欄位的連結(程式位於 p5-23 的 grid8.aspx),我嘗試把「學號」的連結改為「姓名」的連結, 但皆顯示錯誤的訊息,我只是將:
<asp:BoundColumn DataField="學號" HeaderText="學號"/>
改成:
<asp:HyperLinkColumn DataTextField="姓名"
HeaderText="姓名"
DataNavigateUrlField="姓名"
DataNavigateUrlFormatString="students.aspx?id={0}"
Target="_blank" />
另一方面studends.aspx的修改如下:
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &
Server.MapPath("Sample.mdb")
SQL = "Select * From 成績單 Where 姓名=" & Request("id")
A:
問題出在studends.aspx的修改:
SQL = "Select * From 成績單 Where 姓名=" & Request("id")
「學號」欄位是數值,但「姓名」欄位是字串,所以以上敘述正確的修改是:
SQL = "Select * From 成績單 Where 姓名='" & Request("id") & "'"
就是在 Request("id") 前後加上單引號。
####################################################################################
我無法順利下載 .NET Framework Beta1
--------------------------------------------------------------------------------
文件日期:2001/03/30
Q:
依照「ASP.NET 領先研究」書上第二章 2-5 節上 msdn.microsoft.com/downloads/default.asp 下載 .NET Framework SDK Beta1,因為 .NET Framework SDK Beta1 太大,一直無法下載成功,是否有其他管道取得 .NET Framework SDK Beta1 ?
我朋友有 Visual Studio.NET Beta 1,其中是否會有 .NET Framework SDK Beta1?
A:
您也可以在 Visual Studio.NET Beta1 的「Component Update」光碟中找到 .NET Framework SDK Beta1,位置就在這片光碟的\FrameworkSDK 目錄中。
--------------------------------------------------------------------------------
####################################################################################
現在用 ASP.Net 製作網頁好嗎?會不會現在寫出來的 ASP.Net 網頁到了正式版推出時完全都不能用了?
--------------------------------------------------------------------------------
文件日期:2001/01/29
ASP.NET 現在的版本是 Beta 1,上一版是 Preview 版,從 Preview 版到 Beta 1 版,確實有些程式必須修改,不過都是小地方,就比例來看,約有 10% 有修改。
ASP.NET 的下一版應該是 Beta 2,然後是正式版,根據本站的判斷,目前 .NET Framework 的架構已經大致底定,比較容易變動的部分應該是 Visual Studio.NET 的部分,而 ASP.NET 較接近 .NET Framework 的底層,因此可判斷的是將來的變動應該不大,以上意見謹供參考。
還有,本站近來開發的 ASP 網頁,已經全部使用 ASP.NET 了。(當然,舊的 ASP 網頁暫時就不變動了)
--------------------------------------------------------------------------------
####################################################################################
ASP+ 的未來如何?
--------------------------------------------------------------------------------
文件日期:2001/01/29
以前 ASP 是附屬於 IIS 底下的小程式,現在 ASP+ 則是附屬於 .NET Framework 的軟體(當然,還是需要藉助 IIS 才能運作)。
可以確定的是 ASP+ 將成為微軟 Server 端製作網頁的主要工具,Visual Studio.NET 也會支援 ASP+ 網頁的編輯,所以 ASP+ 網頁的開發將變得更容易。
如果您的 Web Server 採用的是 Windows 2000 或 NT,那麼以 ASP+ 為網頁製作工具是無庸置疑的。
--------------------------------------------------------------------------------
####################################################################################
該學 ASP 還是 ASP+?
--------------------------------------------------------------------------------
文件日期:2001/01/29
目前(2001年 1 月)對於該學 ASP 還是 ASP+?的確是很尷尬的事情。
從功能來看,ASP+ 優於 ASP 甚多,且 ASP 的網頁完全相容於 ASP+,所以學 ASP+ 是無庸置疑的選擇,但問題是 ASP+ 的書籍很少,據本站所知,目前市面上的 ASP+ 書籍只有兩本,一本為 ASP.NET 領先研究(王國榮著),一本為 A Preview of Active Server Pages+(原文書, Wrox 出版),但這兩本都不是為初學者所寫的書。
如果您可以等待,ASP+ 正式版約 8 月份上市,預計到時候會有很多 ASP+ 的書籍出版,ASP+ 網頁製作教本(為初學者寫的書)也會在這個時候出版,或者現在先學 ASP 為自己奠定一點基礎,將來學 ASP+ 會比較輕鬆一點,應該不會浪費時間。
--------------------------------------------------------------------------------
####################################################################################
為何 ASP.NET 領先研究沒有介紹「視覺化的編輯工具」?
--------------------------------------------------------------------------------
文件日期:2001/01/29
在 .NET Framework Beta 1 版本中,微軟所提供可下載的軟體有 .NET Framework SDK 及 Visual Studio.NET,其中 Visual Studio.NET 提供有視覺化編輯工具可以直接編輯 .aspx 檔案,其操作介面類似 VB,很容易使用,不過 Visual Studio.NET 只提供給 MSDN Universal 訂戶下載,一般讀者不容易取得,故 ASP.NET 一書暫時沒有介紹。
將來 Visual Studio.NET 正式上市或是有提供給一般用戶下載時,本站將會另外撰稿或撰書介紹。
--------------------------------------------------------------------------------
####################################################################################
請問 ASP.NET 領先研究中第 6 章的 score.xml 檔是如何製作的?
--------------------------------------------------------------------------------
文件日期:2001/01/29
程式碼如下:
Dim fs As FileStream
Dim writer As StreamWriter
Dim Path As String
Dim ConnStr As String
Dim Cmd As ADODataSetCommand
Dim ds As DataSet = new DataSet()
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Sample.mdb")
Cmd = New ADODataSetCommand( "Select * from 成績單", ConnStr )
Cmd.FillDataSet(ds, "成績單")
Path = Server.MapPath( "Score.xml" )
fs = New FileStream(Path, FileMode.Create, FileAccess.Write)
writer = New StreamWriter(fs, Encoding.Default)
ds.WriteXml(writer)
以上程式將會開啟 Sample.mdb 資料庫的「成績單」資料表,然後將其儲存成 Score.xml 檔案。
註:請記得在 .aspx 檔案的最前面加上:
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.ADO" %>
--------------------------------------------------------------------------------
####################################################################################
####################################################################################
《ASP.NET 領先研究》GO——————http://www.kj.com.tw/2001/book/F8917/F8917.htm
王国荣的网站____________________________http://www.kj.com.tw/2001/2001.htm
VB.Net中文站____________________________http://vbnetcn.126.com