六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP.NET 打造互聯網未來空間站(3)

[摘要]程序員話題 下面我們談一談開發人員如何快速地開始ASP.NET的程序設計。你發現ASP.NET中什么東西比ASP更吸引人?有些人說是配置,ASP.NET配置起來更容易嗎?因此,我想談論關于這個問題的一點內容。我們的確發現ASP.NET的一個優點是可以簡單地配置。由于ASP.NET的應用程序是由編譯...
程序員話題

下面我們談一談開發人員如何快速地開始ASP.NET的程序設計。

你發現ASP.NET中什么東西比ASP更吸引人?
有些人說是配置,ASP.NET配置起來更容易嗎?因此,我想談論關于這個問題的一點內容。我們的確發現ASP.NET的一個優點是可以簡單地配置。由于ASP.NET的應用程序是由編譯過的代碼組成,所以不需要注冊DLL或者停止某些服務。例如,在今天的ASP環境中,如果在你的網站上,有一個非常重要的商業組件需要被一個功能更加強大的組件替換時,你將不得不暫停WEB站點的服務,以便使得DLL不被鎖定。然后替換該組件,重新在系統中注冊,重新啟動你的WEB站點,這樣做的結果是在某一段的時間里,你的站點將不能對外工作。然而,令人興奮的是在ASP.NET中,你不需要在做上面的任何工作,你在也不必考慮那個該死的regsrv32。你只需要將這個新的DLL放到與老的DLL系統的目錄下。當前訪問的新的DLL的請求仍然在工作,新的請求將會觸發新的DLL,這一切會持續到老的DLL完成所有的請求時為止。那時,新的DLL就會代替老的DLL,這一切不會引發停機,這一切只需要調用XCOPY的配置功能,這一切使得我們的工作更有效率,更加簡潔。

這樣做的好處是不用再考慮哪個DLL需要關閉,然后再關閉它;哪個DLL中有BUG。是否有一種方式可以使得當前應用的所有的DLL迅速的被關閉,還是必須要將WEB站點停掉。
對我來說,保留它前面的版本,后面的版本是一件很容易的事情。只需要利用XCOPY重新配置一下就可以了,那些DLL很快會被自己替換。

好了,除了前面所見的配置簡單的這個特性以外,你們還有那些優點足以吸引ASP 程序員快速移植到ASP.NET環境中?
這個問題問得好,如果我是一個VB程序員,當我進入ASP編程環境時,我會發現,他是如此熟悉,我樂意立刻在那里編制程序。我不用擔心那些腳本語言,不用再考慮那種從頭到尾都是線性的處理模型,我可以在ASP.NET中使用更新的邏輯關系,使用提供的更多新服務器組件,提供比ASP程序更多的功能。
確實是這樣的,ASP.NET節省了我們大量的的開發時間,你可以在同樣的環境下開發供ASP+頁面調用的DLL,并且可以安全的使用。然而,對大多數的開發者來講,最大的收益來自于他提供的caching功能。
我們都理解caching功能對于標準的web頁面的重要性,客戶端的caching可以使得頁面很快重現,服務器端的caching存儲了一些已經編譯過的代碼,可以提訪問的速度。
我們下面舉一個caching的例子,一個在線的商店,這是一個銷售CD的網上商店,在他的主頁面上,你列舉了一系列的商品。因此,你使用了數據庫存儲商品信息、價格信息、種類信息等。當ASP腳本訪問數據庫時,不可避免地會有時間延遲。但是,當你使用caching時,一些訪問過的信息將會留在caching中。當請求的信息在caching之內被檢索的時候,caching中的頁面作為原頁面輸出,因此,你不必在訪問數據庫就可以獲得數據,因為他們已經在caching中了。.NET框架會一直監視caching中的頁面,如果這些頁面相關的數據庫的信息發生了變化,他就會立即更新這些頁面。因此,你不必擔心得不到最新的數據信息。通過caching的設置功能你還可以設置caching的時間長度,規定他在多長時間內定期更新caching中的內容,你也可以在caching中緩存頁面的點擊數�?傊�,通過caching技術,你實際上為你站點的用戶提供了快速獲得信息的可能性。在本質上,他實際上直接獲取的是生成好的HTML頁面,從而避免了一系列的頁面生成的過程。

caching將真正幫助網站的開發人員調整網站的性能以及快速的相應客戶的請求。
是的。實際上你可以看到這樣的情形---網站服務器每秒鐘可以相應更多的點擊數,因為用戶大部分的請求都落在caching中。

從開發人員的角度來看,如果他們在編寫第一個ASP.NET程序時,他們會遇到哪些大的困難?
我對您的話感到吃驚,從ASP到ASP.NET并沒有不可逾越的障礙。他們只是在一些細節上有所不同。當然有許多的是要引起注意的。例如,我們過去常用ASP與VB SCRIPT編寫程序,當我們想創建一個record set對象的時候,我們不得不SET一個變量等于record set。在ASP.NET中沒有SET這個參數,直接就是變量等于ADO records set對象。所以,在ASP與ASP.NET之間僅有一些小的語法的差異,這些小的語法差異根本不會影響到頁面的性能,但是如果你將ASP程序移植到ASP.NET上時,你要注意這些小的差異。實際上,從ASP遷移到ASP.NET的代碼量是很少的,不必考慮將整個程序代碼移植,這兩者實際上是可以并存的。因此你不必強制將你的網站的程序立即移植到ASP.NET上,你可以在新的工作中逐漸采用新的ASP.NET技術。

我想,你仍然可以像你從前那樣聲明你所有的數據類型。你仍然可以使用Server.CreateObject,你仍然可以使用 DIM RS,定義一個record set對象,你仍然可以使用DIM RS AS NEW ADO record set這種方式,對嗎?

這只是我們的一種選擇,在我們最少量的移植級別里面,你實際上不用考慮ASP 與ASP.NET的區別。你仍然可以使用 DIM RS 的方式,并且用這種方式創建與數據及相關的對象。這兩者之間的主要區別是一個是用VB SCRIPT創建的對象,另一個是用VB創建的對象。
這么說,你們現在是已經改變到一種擁有類型的開發語言平臺上了?
你說的很對,我們有數據類型了。我們現在更嚴格的進行應用程序的內存管理,而不是將每一件事情能夠都看成是變量,我們現在可以將不同的事物看成string、 integer、a data set,因此我們可以更好地控制內存的使用。

接下來,我們應該演示一些代碼用以解釋上面所說的一些東西。
好的。我們的第一個問題是移植問題。這是一個典型的ASP代碼的頁面,我們將從數據庫中取出數據放到表中。我們來看一下這些代碼,我們首先定義了我們的connection 和我們的 record set, 我們創建了這些對象,我們用SET關鍵字設置我們的record set 等于connection的執行。接下來是一個DO WHILE 循環,將數據庫中的信息顯示在頁面上。
<%
Dim con, rs
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Provider=SQLOLEDB;server=(local);database=Northwind;UID=sa;PWD=;"
Set rs = con.Execute("SELECT ContactName, City FROM Customers")
%>
<html>
<body>
<table border="0">
<tr>
<td>ContactName</td>
<td>City</td>
</tr>
<%
Do While Not rs.EOF
%>
<tr>
<td><%=rs("ContactName")%></td>
<td><%=rs("City")%></td>
</tr>
<%
rs.MoveNext
Loop
%>
</table>
</body>
</html>
如果轉到.NET框架下,僅需要少量的移植工作。我們可以看見哪些東西已經被改變了,哪些東西不能使用了。我們在Set con = Server.CreateObject("ADODB.Connection")和Set rs = con.Execute("SELECT ContactName, City FROM Customers")中所使用的set之類的關鍵字一去不復返了。但是在這里我要指出的是,在下面的代碼中,我們在rs("ContactName")和rs("City")的右邊添加了一個屬性Value。他的基本含義是,我們可以獲得指定行或者指定列的值。從ASP到ASP.NET也就這些改動,實際上有很少的變化,你可以看到ASP與ASP.NET代碼之間幾乎一樣,沒有什么特別大的變化。
<%
Dim con, rs
con = Server.CreateObject("ADODB.Connection")
con.Open("Provider=SQLOLEDB;server=(local);database=Northwind;UID=sa;PWD=;")
rs = con.Execute("SELECT ContactName, City FROM Customers")
%>
<html>
<body>
<table border="0">
<tr>
<td>ContactName</td>
<td>City</td>
</tr>
<%
Do While Not rs.EOF
%>
<tr>
<td><%=rs("ContactName").Value%></td>
<td><%=rs("City").Value%></td>
</tr>
<%
rs.MoveNext
Loop
%>
</table>
</body>
</html>

這是很吸引人的,那些SET關鍵字被去掉了,VALUE關鍵字被引入,代碼本身實際上沒有什么變化,因此只要你看看輸出結果,你就會發現他們基本上是一致的。但是,ASP.NET是運行在.NET框架下,他的頁面擴展名是.ASPX,當然我們在該頁面也可以實現CACHE的功能,只不過在這個程序中沒有用到罷了。如果我們將上面的實例進一步深入下去并且考慮應用.NET框架和ASP.NET框架所提供的一些更為便利的手段。例如,用managed providers來獲取數據,那么我們將以入下面這個事例。我們依然工作在SQL 7.0上的NorthWind數據庫中。
.NET提供了一個重要手段是SQL managed provide,它可以直接連接到SQL上獲得數據而不必通過OLEDB這樣的東西,這種方式經過實踐被認定是大大提高了訪問速度。我們可以看一下下面的代碼,他們使用純粹的VB而不是VBs編寫的。但是輸出的結果幾乎一樣讀。我們要做的事情是import 一些namespaces , System.Data,這樣我們就會有最基本的數據處理能力以及獲得對SQL managed provider訪問能力的 SQL namespace。這些代碼的風格與前面討論的C#的風格好象很一樣,那時我們使用C#來處理基于.NET架構的各種類庫,現在我們所見到的在VB中的.NET類庫與C#中的類庫具有相同的風格。
這兩者之間的確是同一種風格。如果我用C#編寫,代碼會不同,但是namespace(名字空間)是一致的。對于編寫ASP.NET的程序,這兩種方法都是很好的。盡管某些類可能會有一些不同,但是我們可以僅僅修改幾個的地方,就可以將VB代碼快速移植成C#代碼。
實際上,許多代碼將不會被改變(一直保留下來)。例如,SQL connection 字符串只需要改變一點點, SQL select statement 字符串不會有什么改變。在這里,我們強調一下,對于connection 字符串我們不再使用 ADO provider,不再使用SQL OLEDB作為ADO provider,因為我們使用了SQL managed provider,因此我們提倡使用SQL7.0以上的版本,他能給我們更好的性能。我們創建一個data set用以保存我們的數據以及后來訪問的結果。我們用SQLDataSetCommand檢索SELECT的結果,并返回頁面,將他們插入到data set中,我們命名這個表為Customers。因此,我們現在有一個data set對象,他包含了一個Customers表。如果需要的話,我們可以加入更多的表和更多的關系。與ADO records set不同的是,我們現在可以處理更大的事情,我們可以將整張大表分成若干個小表,而他們之間的關系去保持不變,這種方式有利于更大的程序應用開發。.
<head>
<script runat="server">
Sub Page_Load(Source As Object, E As EventArgs)
Dim ds As New DataSet
Dim dsc As SQLDataSetCommand
dsc = New SQLDataSetCommand("SELECT ContactName, City FROM Customers", _
"server=localhost;database=Northwind;UID=sa;PWD=;")
dsc.FillDataSet(ds, "Customers")
dgCustomers.DataSource = ds.Tables("Customers").DefaultView
dgCustomers.DataBind()
End Sub
</script>
</head>
.
接下來,我們跳過幾行代碼,直接顯示與ASP data grid server控件相關的代碼。ASP data grid server的作用是提供一個最基本的表。我們要做的唯一的一件事情是告訴他我們要在服務器端運行他,他是服務器端的控件。接下來我們設置the border寬度為零 ,因為上面的例子中border="0"。此外,我們新加了一個屬性,他用來改變items的背景色。他用來標識在ASP表中不同表格項的顏色,這樣便于區分。當然,你要寫很多的代碼,用循環的方式改變每一個項目的背景色,在這里我們簡化一下工作,只是標志這個屬性。他表現的色彩是淺灰色。

<body>
<asp:DataGrid id="dgCustomers" runat="server"
AlternatingItemStyle-BackColor="#CCCCCC"
BorderWidth="0"
/>
</body>
</html>





主站蜘蛛池模板: 亚洲美女大bbbbbbbbb | 天天综合色天天综合网 | 天天干天天操天天拍 | 日韩中文在线观看 | 亚洲成a人片在线不卡 | 亚洲人成网站看在线播放 | 欧美性猛交xxxx乱大交极品 | 日本免费在线观看视频 | 最近更新免费韩国视频 | 日本三级视频 | 色噜噜狠狠色综合免费视频 | 永久免费观看午夜视频在线 | 日本在线成人 | 亚洲国产成人va在线观看网址 | 日本在线视 | 午夜特片网 | 欧美视频黄色 | 午夜性色视频 | 影音先锋色69成人资源 | 亚洲欧美视频在线 | 天天都色| 视频一区精品 | 天堂√在线中文资源网 | 倩女还魂在线观看完整版免费 | 亚洲综合自拍 | 天堂亚洲网 | 色婷婷激情综合 | 日韩成人毛片高清视频免费看 | 亚洲网站在线免费观看 | 亚洲视频自拍 | 婷婷六月天在线 | 日日干日日爽 | 中文字幕第一页在线播放 | 日本亚洲一区二区三区 | 天天草天天 | 亚洲伊人久久大香线焦 | 欧美午夜免费观看福利片 | 屁屁网站在线观看www | 婷婷六月丁香色婷婷网 | 日本久操| 人人爱人人看 |