全力推出--【ASP.NET(bata2)立即上手教程(c#版)】不能不看!!! (轉)

worldblog發表於2007-12-09
全力推出--【ASP.NET(bata2)立即上手教程(c#版)】不能不看!!! (轉)[@more@]一、開始
1、介紹
歡迎光臨立即上手教程。
立即上手教程是由一系列例項和支援解說構成的,他的目的是為了讓開發者理解ASP.NET的語法、以及ASP.NET應用框架的強大功能。所有的例項設計的短小而容易理解,可以充分展示ASP.NET的相應功能。在學習完本教程以後,你應該熟悉以下內容:
·ASP.NET語法。當然,對於熟練的ASP開發者,有些ASP.NET語法元素會很熟悉,而有些卻是新框架所獨有的。本教程的例項覆蓋了所有語法元素的細節。
·ASP.NET結構和特性。本教程介紹ASP.NET的特性,這些特性可以讓開發者以前所未有的建立互動式的、世界級水平的應用程式。
·最佳實踐。本教程的例項示範了ASP.NET功能的最佳途徑,同時也避免了潛在的缺陷。
本教材的讀者水平要求:
如果你以前從來沒有過開發頁的,那麼本教材不適合你。你應該熟悉html和一般的web開發術語。你不需要有過asp的經驗,但是你應該熟悉互動式頁面的概念,包括表單,指令碼和資料訪問。
消化吸收本教材的例項
本教材是所展示內容的最佳實踐。每個例項建立在概念的辨析和前面例項的引申之上。該例項是一個從簡單到複雜,從單一技術到應用的完整的系列

2、什麼是ASP.NET
Asp.net是建立在通用語言執行時刻庫(CLR)上的應用程式框架。他用來在端構建功能強大的web應用程式。Asp.net提供了幾個超越以前web開發的優點:
·增強的。Asp.net是執行在伺服器端的編譯後的CLR程式碼,而不是像ASP那樣解釋。Asp.net利用提前繫結,即時編譯,本地和快取服務來提高效能。所有這一切,效能遠遠大於你以往寫的每一行程式碼。
·世界級水平的開發工具支援。在的整合開發環境()中,Asp.net框架由豐富的工具箱和設計器組成。所見即所得的(WYSIWYG)編輯方式、拖放伺服器、以及自動部署,僅僅是這一強大工具所提供的一少部分功能。
·強大而富有彈性。由於asp.net是基於(CLR)的,因此整個.net平臺的強大和富有彈性,同樣可以應用於web應用程式開發者。.net框架的類庫、訊息以及資料訪問解決方案,都可以無縫整合到web。Asp.net也是語言中立的,因此你可以選擇你最熟悉的語言,或者透過幾種語言來共同完成一個應用。而且,CLR的互用性可以保證你升級到asp.ent的時候,現存的基於COM的開發投資依然保留。
·簡單。Asp.net使執行常用的工作變得很容易,比如從簡單的表單提交、客戶端驗證,到部署和站點。例如,asp.net允許你建立介面,實現頁面和邏輯程式碼的分離,同時,就像vb的表單執行模式那樣來處理事件(也就是說,由頁面模式變成了事件驅動模式)。此外,CLR簡化了部署,用來管理程式碼服務,例如自動參照和垃圾回收。
·易於管理。Asp.net使用一個基於文字的、分層次的配置,它簡化了伺服器端環境和web應用程式的設定。由於配置資訊用純文字格式儲存,新的設定不需要本地管理工具的支援。這種“零本地支援”的理念也同樣應用到了部署asp.net應用程式。Asp.net應用程式部署到伺服器,簡化為複製必要的到伺服器。在部署,甚至替換正在執行的變異程式碼的時候,也不需要重新啟動伺服器。
·可伸縮性和有效利用性。Asp.net被設計成可伸縮的,能為和多環境設計提高效能。而且,asp.net執行時刻密切監視和管理程式,這樣,如果發生了錯誤的行為,例如和死鎖,新的程式會在當前位置建立,來幫助你的應用程式繼續處理事件請求。
·可訂製和擴充套件。Asp.net提供一種良好的擴充結構,允許開發者在適當的級別“插入”他們的程式碼。事實上,使用自己的編寫的可以擴充套件或者替換asp.net執行時刻的任何子元件。執行自定義驗證或狀態服務變得前所未有的容易。
·性。內建的驗證和每一個應用程式的獨立配置,你可以認為你的應用程式是安全的。
接下來的asp.net教程勢力將向您展示這些概念的練習

3、語言支援(版本)
語言支援
的.net平臺現在提供內建的三種語言支援:C#, , 和 。本教材的練習和例項程式碼展示如何使用這三種語言建立.net應用程式。關於其他語言的更多得語法資訊,請參考.NET SDK文件。
下面提供的的程式碼段幫助你理解本教材中程式碼例項,以及這三種語言之間的差異。
變數宣告
int x;
String s;
String s1, s2;
o;
Object obj = new Object();
public String name;

語句
Response.Write("foo");
註釋
// 這是單行註釋

/*
這是


註釋*/

訪問屬性
String s = Request.QueryString["Name"];
String value = Request.["key"];
宣告索引屬性
// Default Indexed Property
public String this[String name] {
 get {
 return (String) lookuptable[name];
 }
}
宣告簡單屬性
public String name {

 get {
 ...
 return ...;
 }

 set {
 ... = value;
 }

}

宣告和使用列舉
// Declare the Enumeration
public enum MessageSize {

 Small = 0,
 Medium = 1,
 Large = 2
}

// Create a Field or Property
public MessageSize msgsize;

// Assign to the property using the Enumeration values
msgsize = Small;

遍歷集合
foreach ( String s in coll ) {
...
}

宣告和使用方法
// Declare a void return function
void voidfunction() {
...
}

// Declare a function that returns a value
String stringfunction() {
...
 return (String) val;
}

// Declare a function that takes and returns values
String parmfunction(String a, String b) {
...
 return (String) (a + b);
}

// Use the Functions
voidfunction();
String s1 = stringfunction();
String s2 = parmfunction("Hello", "World!");

定製屬性
// Stand-alone attribute
[STAThread]

// Attribute with parameters
[DllImport("ADV32.DLL")]

// Attribute with named parameters
[DllImport("KERNEL32.DLL", CharSet=CharSet.Auto)]

陣列
 String[] a = new String[3];
 a[0] = "1";
 a[1] = "2";
 a[2] = "3";

 String[][] a = new String[3][3];
 a[0][0] = "1";
 a[1][0] = "2";
 a[2][0] = "3";
初始化
String s = "Hello World";
int i = 1;
double[] a = { 3.00, 4.00, 5.00 };
If 語句
if (Request.QueryString != null) {
 ...
}
Case 語句
switch (FirstName) {
 case "John" :
 ...
 break;
 case "Paul" :
 ...
 break;
 case "Ringo" :
 ...
 break;
 default:
 ...
 break;
}

For 迴圈
for (int i=0; i<3; i++)
 a(i) = "test";
While 迴圈
int i = 0;
while (i<3) {
 Console.WriteLine(i.ToString());
 i += 1;
}

異常處理
try {
 // Code that throws exceptions
} catch(OverflowException e) {
 // Catch a specific exception
} catch(Exception e) {
 // Catch the generic exceptions
} finally {
 // Execute some cleanup code
}

字串連線
// Using Strings
String s1;
String s2 = "hello";
s2 += " world";
s1 = s2 + " !!!";

// Using StringBuilder class for performance
StringBuilder s3 = new StringBuilder();
s3.Append("hello");
s3.Append(" world");
s3.Append(" !!!");

事件處理委派
void MyButton_Click(Object sender,
 EventArgs E) {
...
}
宣告事件
// Create a public event
public event EventHandler MyEvent;

// Create a method for firing the event
protected void OnMyEvent(EventArgs e) {
 MyEvent(this, e);
}

向事件增加或移除事件處理
Control.Change += new EventHandler(this.ChangeEventHandler);
Control.Change -= new EventHandler(this.ChangeEventHandler);
構造
MyObject obj = (MyObject)Session["Some Value"];
IMyObject iObj = obj;
轉換
int i = 3;
String s = i.ToString();
double d = Double.Parse(s);

帶有繼承的類定義
using System;

namespace MySpace {

 public class Foo : Bar {

 int x;

 public Foo() { x = 4; }
 public void Add(int x) { this.x += x; }
 override public int GetNum() { return x; }
 }

}

// csc /out:librarycs.dll /t:library
// library.cs

實現介面
public class MyClass : IEnumerable {
...

 IEnumerator IEnumerable.GetEnumerator() {
  ...
 }
}

帶有Main方法的類定義
using System;

public class ConsoleCS {

 public ConsoleCS() {
 Console.WriteLine("Object Created");
 }

 public static void Main (String[] args) {
 Console.WriteLine("Hello World");
 ConsoleCS ccs = new ConsoleCS();
 }

}

// csc /out:consolecs.exe /t:exe console.cs

標準模板
using System;

public class Module {

public static void Main (String[] args) {
 Console.WriteLine("Hello World");
}

}
// csc /out:consolecs.exe /t:exe console.cs

經過以上介紹以後,我們下面開始講ASP.NET Web Forms.......待續

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990182/,如需轉載,請註明出處,否則將追究法律責任。

相關文章