那些年,我還在學習asp.net(二)
那些年覺得看視頻是很輕鬆的瞭解一個東西,但是這樣的不足就是感覺太慢了,沒有看書來得快,所以在有了一些瞭解後,還得看點書,也許書上的不一定好,但書上會把每一個應該說到的地方說到,好有個初步的認識。比如說.NET平台、組件等知識的介紹,所以,那些年就開始了asp.net方面的進一步學習。
一、學習asp.net的準備知識
正如我前面那些年所學習的,在開始之前得對它們有一定的認識:
1、 html語言的基本使用
2、 CSS+DIV的學習,撐握基本的布局
3、 Javascript基礎。在初期,特別是對DOM的操作。
4、 瞭解asp.net的基本控制項的使用
二、開始學習asp.net
1、.NET平台中的一些概念,比如說:CLR(通用語言執行平台)、IL(微軟中繼語言)、JIT(即時編譯器)、CTS(一般型別系統)、CLS(Common Language Specification)以及.NET FrameWork等,當然還得知道.NET的體繫結構,
(此圖來自網上51cto)
2、asp.net頁面請求響應機制與HTTP協議是必須瞭解的。HTTP是一個無狀態的協議,全名叫超文字傳輸通訊協定 (HTTP),也就是說在瀏覽器與伺服器之間是以html檔案形式傳輸的,當使用者通過瀏覽器向WEB伺服器以URL的形式請求一個頁面時,WEB伺服器處理使用者的請求,返回一個WEB頁面給瀏覽器展示給使用者,這個過程完成後瀏覽器與WEB伺服器就不在有關係了;基於這個過程,asp.net的請求響應也很相似,當瀏覽器請求WEB頁面時,WEB伺服器處理這個請求,尋找是否有請求的頁面,從而定位這個檔案,若是以.aspx的檔案,WEB伺服器會把請求交給asp.net的CLR,編譯執行,並從資料庫取後請求的資料後,產生一個html檔案,發送給瀏覽器。這裡還有一些概念:
動態網頁面:簡單的說就是所請求的頁面是通過從資料庫讀取資料產生的頁面,伺服器上不存在的這樣一個檔案。
靜態頁面:簡單的說就是伺服器上有這樣一個檔案,比如404頁面
B/S:指的是瀏覽器與伺服器的方式
C/S:指的是用戶端與伺服器的方式
三、Asp.net的基礎
1、 內建對象,asp.net中有很多內建對象,它們發揮了相當大的作用,下面就選幾個常用的來說說吧。
Request對象:請求對象,是HttpRequest類的執行個體,是自動建立的,可以用於獲得使用者在瀏覽器提交的資料以及一些HTTP資訊,常用的屬性有:Cookies、Files、Form、Params、QueryString等,還有一些方法,如:MapPath、SavaAs等;
Response對象:響應對象,是HttpResponse類的執行個體,也是自動建立的,同樣有很多屬性(Cache、Cookies等)與方法(Redirect、Write等);
Session對象:會話對象,當一個使用者開啟網頁時,那麼伺服器中就會有一個會話,儲存目前使用者的一些資訊,當使用者退出或關閉瀏覽器時,會話就消失;常用於儲存使用者狀態,如登入、購物車等;使用方法以鍵/值對的形式,如Session[“KEY”]=Value;
Application對象:是一個全域的,在應用程式內的狀態,從應用的開始運行,直到應用的結束,使用方法同Session;
2、主版頁面,這可是個好東西,在上網時,經常會發現一些網站的頭尾是一樣的,或是某個版塊沒有變過,每個頁面都有,那麼,這就可以用到主版頁面來實現。在asp.net中,主版頁面是一個以.master結尾的檔案,其中有一個佔位的控制項,用來表示子頁顯示的地方,代碼如下:
複製代碼 代碼如下:<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Show.master.cs" Inherits="Show" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server"> <title>無標題頁</title></head>
<body>
<form id="form1" runat="server">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
//子頁
</asp:ContentPlaceHolder>
</form>
</body>
</html>
3、 自訂使用者控制項,是一個以.ascx結尾的檔案,裡面存放的是一些html和asp.net的伺服器控制項,當然還有一個代碼檔案,是一個繼承自System.Web.UI.UserControl的類,我們可以將一些通用的模板做成這樣的控制項,比如說用repeater與aspnetpager完成一個分頁的清單控制項,這樣我們就重用這些代碼了,下面看一下樣本:
Aspx代碼: 複製代碼 代碼如下:<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="images_WebUserControl" %>
<div>
<table style="background-color: buttonface; width: 318px;">
<tr style="text-align:left;">
<td style="background: #cccccc; font-size: 22px; color: #003399; font-weight: bold;
width: 1284px;">
→新聞搜尋
</td>
</tr>
<tr>
<td style="width: 1284px; height: 26px;">
作 者:<asp:TextBox runat="server" ID="Textbox1" Width="214px"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 1284px">
標 題:<asp:TextBox runat="server" ID="Textbox2" Width="234px"></asp:TextBox>
</td>
</tr>
<tr>
<td style="text-align: right; width: 1284px;">
<asp:Button runat="server" ID="button" Text="查詢" OnClick="button_Click" /></td>
</tr>
</table>
</div>
CS代碼: 複製代碼 代碼如下:public partial class images_WebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void button_Click(object sender, EventArgs e)
{
string URL = "AuthorName=" + Server.UrlEncode(Textbox1.Text);
URL += "&Title=" + Server.UrlEncode(Textbox2.Text);
Response.Redirect("Search.aspx?" + URL);
}
}
四、第一個asp.net程式
1、開啟VS2010,建立一個asp.net網站,如:
2、 在這個應用中添DAL、BLL層,在解決方案中右擊-〉添加-〉建立項目,完成後如:
由圖可以知到,一個項目應有樣式、指令碼,母片等,當然用VS2010建的一個項目用了Membership,我重來沒有用過。還是自已寫好。
總結
那些年看了很多書,到現在也許都忘了一些,此文以記憶那些看書的日子。