asp.net|web
Web controls使建立forms 和HTML controls.的工作將會變得簡單易行。例如在ASP中典型的選擇框/ select box裡,你不得不建立一個迴圈以便讓控制系統裝入資料。但在ASP.NET裡,你將會擁有一個"data-bound",這意味著它會與資料來源串連,並會自動裝入資料。
這些功能聽起來簡直是妙不可言,但是讓我們細細的來檢驗一下。通過傳統的ASP和ADO,你能夠選擇在哪裡放置資料庫遊標(伺服器一邊或是使用者一邊),至於其它的,是依靠你想要建立的效能和功能類型來做決定。但是在ASP+裡,你不再有選擇。因為在web controls和伺服器之間的 連結,迫使你不得不將所有的事物都放置在客戶方。對於客戶和伺服器來說,不啻於一個效能中心,因為它必須將所有的資料存放區在本地記憶體裡。
Web controls 也在嚴格的XML 術語中引進了新的文法。因此,你會不再有比較鬆散的代碼編輯過程,你必須關閉所有的標記符,使用定義等等。當然,大多數人對於適應這個功能會感到非常痛苦,但是嚴格的的代碼編輯過程通常意味著更少的錯誤。
另一方面關於web forms 缺陷在於,要想使用web form的大部分功能,你必須使用forms 的POST 方法;例如,state 管理。當你使用GET方法時,所有的all best 會被關閉掉,你就不能使用相應的功能。這個限制實在太沒必要了。
ASP.net Server Controls
許多系統過去的組成部分現在成為ASP.NET Server Controls。例如:ad rotator已升級,並開始用XML來儲存它的資訊,但不僅僅於此。這兒有一整套控制系統,它可以做任何事情,從代為管理你的表單狀態到顯示日曆、案頭。事實上,幾乎每HTML元素都有ASP.NET Server Controls,通過ASP.NET Server Control,可以與HTML元素程式化的相互影響。例如,你不再需要為了維持一個在LISTBOX裡選定的 OPTION而大走彎路。你只需指示LISTBOX 在伺服器裡運作並代你進行管理就可以了。更為方便的是,你只需設定好程式,LISTBOX就會按指令依次顯示選定的項目。
也許在這個新的 controls中最有趣的莫過於 DataGrid。Datagrid是一個多列的資料繫結網格,通過它你可以輕而易舉將資料置於其中。它同時提供分頁、排序等所有你所期望的功能。我們看一個Datagrid的例子.
註:我們將在另外的文章裡介紹Datagrid的屬性和方法。
$#@60;%@ Page language="C#" src="DataGrid.cs" inherits="Sample ataGridPage"%$#@62;
...
$#@60;ASP:DataGrid runat=server id="titlesGrid"$#@62;
$#@60;/asp:DataGrid$#@62;
上面的 .aspx 檔案顯示在不設定 DataGrid 控制項任何屬性的情況下對其進行聲明。
DataGrid.cs:
namespace Samples {
...
public class DataGridPage : Page {
protected DataGrid titlesGrid;
public ICollection GetTitlesList() {
// 從在應用程式狀態中快取的 DataSet 中檢索標題列表。
DataSet titlesDataSet = (DataSet)Application["TitlesDataSet"];
if (titlesDataSet != null) {
return titlesDataSet.Tables["Title"].DefaultView;
}
else {
return null;
}
}
private void LoadTitlesGrid() {
// 從資料庫中檢索資料
ICollection titlesList = GetTitlesList();
// 設定控制項的資料來源
titlesGrid.DataSource = titlesList;
// 並使它用此資料來源構建其項目
titlesGrid.DataBind();
}
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
if (!IsPostBack) {
// 首次請求此頁
LoadTitlesGrid();
}
}
}
}
記錄丟失,對於程式員來說是一個非常嚴重的事情。在新的系統中, 中心對象是Dataset。它與recordset相類似,是資料內在儲存記憶的副本。Dataset對於您的開發來說是中心所在,但是現在,我只能說它只是相近與XML,使程式在簡單化和統一化的過程中,相對簡單。你還是可以用你過去用過的來處理一切…(除了伺服器端遊標)…