ASP.NET

**ASP.NET** sī 1 thò Microsoft leh hêng-siau (*marketing*) ê web khai-hoat ki-su̍t. Thêng-sek siat-kè-su ē-tàng ēng ASP.NET lâi kiàn-li̍p tōng-thài ê bāng-chām, web èng-iōng (*web application*), kap XML web ho̍k-bū (*web service*). ASP.NET sī .NET pêⁿ-tâi ê 1 pō͘-hūn, ē-tit kóng sī sin pán ê ASP (*Active Server Pages*).

## ASP.NET ê goân-chek

Sui-bóng ASP.NET sī ēng Microsoft éng-koè ê web khai-hoat ki-su̍t ASP lâi hō miâ, m̄-koh 2 ê ū toā cheng-chha. Microsoft kin-kì .NET pêⁿ-tâi kong-ke ēng ê ki-chhó͘ CLR (*Common Language Runtime*), têng-thaû kiàn-li̍p ASP.NET. Thêng-sek siat-kè-su ē-sái ēng .NET ki-kut (*framework*) chi-oān ê chhìn-chhái 1 chióng thêng-sek gí-giân lâi siá ASP.NET ê thêng-sek, pau-hâm choan-iú ê VB.NET (*Visual Basic .NET*), JScript .NET, iah sī piau-chún ê C#, sīm-chì khai-hòng goân-má ê gí-giân mā ē-tàng, chhan-chhiūⁿ Perl kap Python. ASP.NET chip-hêng sok-tō͘ khah hó koè chìn-chêng script chò ki-chhó͘ ê ki-su̍t, in-ūi web ho̍k-bū-khì (*web server*) ê thêng-sek ē seng pian-e̍k chò DLL (*dynamic link library*) ê tóng-àn chiah lâi chip-hêng.

### [[widget|Control]]
ASP.NET hō͘ bāng-ia̍h ē-tàng chhan-chhiūⁿ Windows UI kāng khoán, ùi chi̍t-koá control (*khòng-chè-hāng*) lâi cho͘-ha̍p, án-ne khai-hoat-chiá ē khah hó ùi Windows choán-oāⁿ lâi web. Web control, chhiūⁿ kóng *button* iah sī *label*, kap Windows téng-koân--ê chin sio kâng, lóng ē-tàng siat-tēng in ê sèng-chit (*property*), pēng-chhiáⁿ tùi sū-kiāⁿ (*event*) chò hoê-èng. Control chai-iáⁿ án-choáⁿ biâu-siá (*render*) ka-tī: Windows control ē-hiáu kā ka-tī oē tī êng-bō͘, web control ē-tàng sán-seng chi̍t-koá HTML sàng tńg-khì liû-lám-khì.

### Chōng-thài
ASP.NET kó͘-lē ēng sū-kiāⁿ khu-tōng (*event-driven*) GUI ê hong-sek lâi tāi-thè thoân-thóng ê web script siat-kè hong-hoat. ASP.NET lī-iōng hiān-chhú-sî JavaScript chiah-ê ki-su̍t, koh kiat-ha̍p chi̍t-koá loē-pō͘ ê goân-kiāⁿ (*component*), chhiūⁿ kóng *viewstate*, hō͘ pún-té bô chōng-thài ê web khoân-kéng ē-tit chū-tōng pó-liû chōng-thài.

### Ūn-chok ki-chè
ASP.NET the̍h .NET Framework chò ki-chân, thê-kiong chhiūⁿ Java hit khoán siū koán-chè ê chip-hêng khoân-kéng, ū JIT (*Just-in-time*) ê hi-gí ki-khì (*virtual machine*), koh ū lūi-pia̍t-khò͘ (*class library*).

### Chéng-ha̍p
ASP.NET thê-kiong ê control, lūi-pia̍t (*class*), kap ke-si ē-sái toā kiám-sok khai-hoat ê sî-kan. Chhan-chhiūⁿ kóng chu-liāu lia̍h-chûn (*access*) tō kap ASP.NET chéng-ha̍p chò-hoé, chu-liāu-khò͘ ê chu-liāu nā beh tiàm bāng-ia̍h hián-sī, ASP.NET pí tit ASP ke chin lī-piān.

## ASP.NET khah iâⁿ ASP ê só͘-chāi
* Pian-e̍k ê hong-sek ē-tit tī siat-kè ê sî tō lia̍h tio̍h siat-kè chhò-ngō͘, chip-hêng--khí-lâi mā chaú khah kín.
* Lī-iōng lē-goā (*exception*) kap Try-catch ki-chè toā kái-chìn chip-hêng sî-kî chhò-ngō͘ ê chhú-lí.
* Sú-iōng-chiá tēng-gī ê control ē-tit ēng template, chhan-chhiūⁿ chhài-toaⁿ (*menu*).
* Control kap sū-kiāⁿ téng-téng ē-tàng ēng lâi khai-hoat khah súi-khùi ê UI, chìn-chêng kan-taⁿ tī toaⁿ-ki nńg-thé khoàⁿ ē-tit tio̍h.
* Hong-hù ê control kap lūi-pia̍t-khò͘ ē-tit khoài-sok khai-hoat èng-iōng hē-thóng.
* ASP.NET ē-tit ēng VB.NET, C#, J#, téng-téng gí-giân lâi khai-hoat.
* Ē-tit cache kui ê bāng-ia̍h iah sī kan-taⁿ 1 pō͘-hūn, lâi kái-chìn hāu-lêng.
* Ē-tit ēng CodeBehind khai-hoat bô͘-sek lâi chhiat-koah siong-gia̍p lô-chip (*business logic*) kap chu-liāu têng-hiān (*presentation*). 
* ASP.NET runtime ē-tit chū-tōng têng khé-tōng ū kì-tî liû-sit (*memory leak*) ê èng-iōng.
* Session chōng-thài ē-tit kì tiàm SQL Ho̍k-bū-khì iah sī pa̍t-ê process.

## Pêⁿ-tâi iu-sè
* ASP.NET pún-té sī tiàm Microsoft IIS 5.0 í-siōng ê pán-pún iah sī Cassini leh chaú, m̄-koh i mā ē-tit tiàm ū chi-oān ECMA ê Linux pêⁿ-tâi lâi chip-hêng, chhiūⁿ kóng Mono sū-kang.
* Chìn-chêng ê ASP 1.0 kap 1.1 sán-seng--chhut-lâi ê HTML kap JavaScript bô chiâu hù-ha̍p W3C kap ECMA piau-chún; IE lia̍h-goā, tùi liû-lám-khì ê chi-oān mā ū būn-tê. M̄-koh ASP.NET 2.0 tō ē-tàng hù-ha̍p HTML 4.0, XHTML 1.0, XHTML 1.1; ah nā liû-lám-khì ū chun-chiàu piau-chún tō ū chi-oān; mā chi-oān koh khah chē ê CSS (*Cascading Style Sheets*) kong-lêng.
* ASP.NET 2.0 chit-má chò--chhut-lâi ê phiau-kì (*markup*) ē-tit thong-koè giām-chèng (*validation*), mā ū thê-kiong chin kiông ê control. M̄-koh iáu ū koá só͘-chāi tio̍h kái-chìn:
** Chûn-chhú (*accessibility*): chhiūⁿ kóng lī-iōng XHTML phoè-ha̍p CSS. 
** Pâi-pán (*layout*): Login control, Wizard Server control, ... iáu ēng HTML ê table lâi pâi.
** Loē-iông (*content*) kap iūⁿ-sek (*style*) ê chhiat-koah: Calendar Server control, ... ēng siuⁿ chē inline ê CSS.

## Khai-hoat ê ke-si

Ū koá thò-chng nńg-thé ē-tit ēng lâi khai-hoat ASP.NET ê èng-iōng:
* Visual Studio .NET (choan-iú)
* ASP.NET Web Matrix (choan-iú)
* Macromedia Dreamweaver MX 2004 (choan-iú)
* Macromedia Dreamweaver 8 (choan-iú)
* Macromedia HomeSite 5.5 (For ASP Tags) (choan-iú)
* Microsoft SharePoint Designer 12 (choan-iú)
* Visual Web Developer 2005 Express Edition (hō͘ ASP.NET 2.0) (choan-iú)
* Delphi 2005 (choan-iú)
* SharpDevelop (chū-iû/khai-hòng goân-má)

## Pán-pún
* 1.0: 2002 nî chiaⁿ--goe̍h ASP.NET khǹg tiàm Microsoft .NET pêⁿ-tâi chèng-sek kong-pò͘.
* 1.1: 2003 nî 4/9 kong-pò͘.
* 2.0: 2005 nî 1/7 Microsoft kong-pò͘ ASP.NET 2.0, chò-tīn kong-pò͘--ê koh ū khai-hoat ke-si Visual Studio 2005, kap chū-liāu-khò͘ nńg-thé SQL Server 2005.

## Khai-hoat-chiá
Ū koá ASP.NET ê khai-hoat-chiá ū siá bāng-chì. Chia lia̍t kui ê á:
* Scott Guthrie, chóng-keng-lí - http://weblogs.asp.net/scottgu
* Nikhil Kothari, kiat-kò͘-su (*architect*) - http://www.nikhilk.net 
* Brian Goldfarb, sán-phín keng-lí (*product manager*) - http://blogs.msdn.com/bgold

## Chham-khó
* ASP (*Active Server Pages*) - goân-té ê ASP
* Sí-bông n̂g êng-bō͘ - ASP.NET ê lē-goā (*exception*) ia̍h
* PHP - 1 ê kap ASP.NET pêⁿ-tú-theng ê web èng-iōng pêⁿ-tâi

## Goā-pō͘ liân-kiat
* Microsoft koaⁿ-hong:
** Microsoft ê ASP.NET koaⁿ-hong bāng-chām
** ASP.NET 1.1 pán
** ASP.NET tī MSDN ê khai-hoat chu-liāu
** Visual Web Developer Express Edition 2005 
* Kî-thaⁿ:
** ASP.NET Interview Questions 
** Developer Fusion; ASP.NET ê chū-ha̍k kaù-châi kap goân-má 
** Dot Net Junkies
** DotNetSpace ASP.NET 2.0 articles and code examples
** W3Schools ê chū-ha̍k kaù-châi 
** Mono: 1 ê khai-hòng goân-má, ē-tit tī bô kāng pêⁿ-tâi chip-hêng ê .NET Framework si̍t-chok
** ASP.NET Web Matrix: bián-hùi ê khai-hoat ke-si 
** C# Friends: ASP.NET chū-ha̍k kaù-châi, sin-bûn, kap lūn-toâⁿ 
** ASPAlliance: ASP kap ASP.NET ê chū-ha̍k kaù-châi 
** 4GuysFromRolla.com: ASP kap ASP.NET ê chū-ha̍k kaù-châi
** ASP.NET Podcast 
** WWWCoder.com: ASP, ASP.NET, kap DotNetNuke ê chū-ha̍k kaù-châi