ASP.NET Note

¥»ºô­¶¥H¥´³yµL»Ùê¾\Ū¬°¥Ø¼Ð¡A¥i¥H¥Î¥ô¦óÂsÄý¾¹¨ÓÆ[¬Ý¥»ºô­¶


.NET Framework

. NET ¬O·L³nÄ~¨ä DNA(Distributed interNet Applications) ¬[ºc¤§«á¡A©Ò´£¥X¤U¤@¥Nªº¤À´²¦¡³nÅéÀ³¥Î¬[ºc¡A¥¦ªºµo®i¤è¦V¬O­n«Øºc¤@­Ó¨Ï¥Îºô»Úºô¸ô¶}©ñ¼Ð·Ç ( ¦p¡G HTTP ¡B XML ¡B SOAP¡K µ¥ ) ªºÀ³¥Îµ{¦¡¶}µo»P°õ¦æªºÀô¹Ò¡A¨Ï¥ô¦ó¤H±q¥ô¦ó¦a¤è¡A¦b¥ô¦ó®É¶¡¨Ï¥Î¥ô¦ó¸Ë¸m³£¯à¦s¨úºô»Úºô¸ô¤W±o¸ê·½»PªA°È¡C

¦b·L³nªº³W¹º¤U¡A.NET ¥]§t¤F¤­¤jµo®iªº¥D¶b

­nÁA¸Ñ.NET ªºFramework¥i±q²¤Æªº°ª¶¥µ²ºc¨Ó¬Ý

²³¦hªº»y¨¥»P¶}µo¤u¨ã¡A¨Ò¦p VB, C#, J#, C++

°ò¦Ãþ§Oµ{¦¡®w(Base Class Library ; BCL)

¦@³q»y¨¥°õ¦æÀô¹Ò(Common Language Runtime ; CLR)

.NETÀ³¥Îµ{¦¡¦³2¤jÃþ

¦w¸Ë

  1. ¹ï©óWinXP§@·~¨t²Î¡A¥²¶·¥ý¦w¸Ë¦nIIS¡A¥BIIS¤¤ÁÙ¥²¶·¦w¸Ë FrontPage 2000 Server Extensions ³o¶µ¤l¤¸¥ó¡C
  2. µM«á¦w¸Ë¥H¤Uªº.NET Framework
¶È¶}µo ¶È°õ¦æ ¦w¸Ë®M¥ó
V V Microsoft Data Access Components 2.8 SP1ª©
­Y¬°XPSp2¤§«eªºª©¥»¡A³Ì¦n¥ý¦w¸Ë³o­Ó¦s¨ú¤¸¥ó
V V Microsoft .NET Framework 2.0 ª©¥iÂà´²µo®M¥ó (x86)
V V Microsoft .NET Framework 2.0 ª©ÁcÅ餤¤å»y¨¥®M¥ó (x86)
.NET Framework »y¨¥®M¥ó¥]§t­^¤å¥H¥~¨ä¥L»y¨¥ªºÂ½Ä¶¤å¦r (¨Ò¦p¿ù»~°T®§)¡C­Y¥¼¦w¸Ë»y¨¥®M¥ó¡A«h·|¥H¹w³]ªº­^¤åÅã¥Ü³o¨Ç°T®§¡C
V   Microsoft .NET Framework 2.0 ³nÅé¶}µo®M¥ó (SDK) (x86)

­Y»Ý­n°õ¦æJ#, «h­n¥t¥~¦w¸Ë¤U¦C®M¥ó

Microsoft Visual J# .NET¥iÂà´²µo®M¥ó 1.1 ª©
Microsoft Visual J# .NET¥iÂà´²µoÁcÅ餤¤å»y¨¥®M¥ó 1.1 ª©

¶}µo¤u¨ã

Visual Web Developer 2005 Express Edition(VWD)

Visual Web Developer 2005 Express Edition ´£¨Ñ¶}©l¨Ï¥Î ASP.NET 2.0 «Ø¥ß Web À³¥Îµ{¦¡©Ò»Ýªº¤u¨ã¡C¥Hµ{¦¡½X«á¸m(CodeBehind)ªº·§©À±Nµe­±»Pµ{¦¡½X¤ÀÂ÷¡A¥Hweb form¬°¨Ò¡Aaspx¦s©ñªº¬O»Pµe­±¦³Ãöªºhtml»Pserver control¡A¥t¥~·|²£¥Í¤@­Ó¦P¦Wªºvbµ{¦¡¦s©ñ¨Æ¥ó»PÅÞ¿è¡A¥¦´£¨Ñ¤F¡G

Microsoft ASP.NET Web Matrix

Web Matrix ¬O·L³n§¹¥þ¥Hc#¹ê§@¥X¨ÓªºWindows Form(Client-Side UI)ªººô­¶µ{¦¡IDE¶}µo¤u¨ã¡AÁöµM¨Ï¥Î¤¶­±Ãþ¦üVisual Studio.NET¦ý¹ê»Ú¬O¥H´O¤J¦¡(Embedded)ªº·§©À¨Óªí²{¡A¨äµ{¦¡½X»Pµe­±©ñ¦b¦P¤@­ÓÀɮפº(CodeInline)¡CWeb Matrix¬O¤@­Ó¡¨Community Project¡¨¡A¨Ï¥ÎªÌ¥i¥H³z¹L½u¤WªÀ¸sªº°Q½×¤è¦¡¡A°w¹ï·P¿³½ìªº¶µ¥Ø´£¥X°ÝÃD»P¦^À³¡A¥i±¤ªº¬O¤¤¤åªº¤ä´©«×¤£¨Î ¡C

Web Matrix»PVisual Studio.NET©|¦³­Y¤z®t²§:
1. Web MatrixÀ³¥Îµ{¦¡¤£¬O¥H±M®×«¬¦¡¶}±Ò¡AÀÉ®×¶¡¦U¦Û¿W¥ß¡C
2. Web Matrixªºµ{¦¡¼¶¼g°Ï¤£´£¨ÑIntellisenseªºÄݩʴ£¥Üµ¡®æ¡C
3. Web MatrixÀÉ®×µLªk¦Û°Ê½sͦ¨DLL¡A¦Ó¶·³z¹LCommand Line¦Û¦æ½sĶ¡C
4. Web Matrix IDE´£¨Ñ.NET Framework Class LibraryÄݩʬd¸ßµøµ¡»P½u¤W°Q½×°Ï³sµ²¡C
5. Web Matrixµ{¦¡§K¶O¤U¸ü»P¨Ï¥Î¡C

#develop

#develop (°á¦¨¡u Sharp Develop¡v) ¬O¤@®M¿í´`GPL±ÂÅvªº¦Û¥Ñ³nÅé¡A¥i¦b·L³nªº.NET¥­¥x¤W½s¼gC#»PVB.NETªºµ{¦¡

Mono

¦@³q»y¨¥°õ¦æÀô¹Ò(Common Language Runtime;CLR)

¶Ç²Îªºµ{¦¡½sĶ¤è¦¡¬O±N­ì©lµ{¦¡½Xª½±µ½sͦ¨¹q¸£¯àª½±µ°õ¦æªº­ì¥Í½X (Native Code) ¡A¥H°õ¦æÀɪº§Î¦¡Àx¦s¡A¦ý¬O³o¼Ë·|µo¥Í¬Y¥x¾÷¾¹¤W½s͹Lªº¥i°õ¦æÀɦb¥t¤@¥x¾÷¾¹¤£¯à¥¿±`°õ¦æ¡C

¦Ó¦b .NET Framework Àô¹Ò¤U¡ACLR(¦@³q»y¨¥°õ¦æÀô¹Ò) ¬°.NETÀ³¥Îµ{¦¡´£¨Ñ¤F¤@­Ó¸ó¥­¥xªº°õ¦æÀô¹Ò¡A¤@­Ó .NET À³¥Îµ{¦¡ªº­ì©l½X·|¥ý³z¹L IL (Intermediate Language) ½s;¹½sĶ¡A¦pªG¨S¦³»yªk¤Wªº¿ù»~¡A´N·|³Q¥[¤W Metadata ¤ÞÀº©Ò²£¥Íªº Metadata ¡A»P­ì©l½X²£¥Íªº¤¤¤¶»y¨¥ (Intermediate Language ¡A IL) ¡A¤@°_©ñ¦b¥Øªº®æ¦¡Àɮפ¤¡A³q±`¬O«ü¥i°õ¦æÀÉ (EXE) ©Î¬O°ÊºA³s±µÀÉ (DLL) ¡A¤]ºÙ¬°²Õ¥ó(Assembly)©ÎPE¡A¦ý¬O³o¨Ã¤£¬O¯u¥¿¥i¥Hª½±µ¥ÑCPU°õ¦æªºÀɮסA¦]¬°IL½s;¹¥u¬O±N­ì©lµ{¦¡½X½sͦ¨¤@­Ó¤¤¶¡½X¡A§Ú­ÌºÙ¬°MSIL (Microsoft Intermediate Language)¡A³oºØIL¥²¶·¦A¸g¹L²Ä¤G¦¸½sĶ«á¤~·|²£¥Í¯u¥¿¥i¥H¥ÑCPU°õ¦æªº°õ¦æÀÉ¡A¦P®É¦pªG¦b½s͹Lµ{»Ý­n¥Î¨ì¨ä¥Lµ{¦¡®w¡A¤¤¶¡·|¦A¸g¹L¤@­Ó³sµ²µ{¦¡ (Linker) ¨Ó§¹¦¨²Õ¦Xµ{¦¡½Xªº°Ê§@¡C

¹ê»Ú°õ¦æ®É¡ACLR·|±Ò°Ê¤@­Ó§Y®É½s;¹ (Just In Time Compiler ¡A JIT Compiler) ¡A±N°õ¦æÀɤ¤ªº¤¤¤¶»y¨¥Âà´«¦¨­ì¥Í½X¨Ã¥æ¥Ñ§@·~¨t²Î°õ¦æ¡C¦p¦¹¡A¤£½×¬O¨Ï¥Î¨º¤@ºØ¤ä´© .NET µ{¦¡»y¨¥¼¶¼gªºµ{¦¡¡A©Ò²£¥Íªº¤¤¤¶»y¨¥¬Ò¬Û¦P¡C±N¦¹¤¤¤¶µ{¦¡½X©ñ¸m©ó¤w¦w¸Ë Microsoft .NET Framework ªº¹q¸£¤W§¡¥i¥¿±`°õ¦æ¦Ó¤£½×¦Ò¼{§@·~¨t²Î©ÎµwÅ骺¤£¦P¡C

CLR°£¤F­t³d¤W­z°õ¦æµ{¦¡¤§¥~¡AÁÙ­n´£¨Ñ°O¾ÐÅéºÞ²z¡B°õ¦æºüºÞ²z (thread management)¡B¦w¥þºÞ²z¡Bª©¥»ºÞ²z¡B¨Ò¥~³B²z¡B»P¥Í©R¶g´ÁºÊ·þµ¥®Ö¤ßªA°È¡C

Metadata

¦b²Õ¥ó¤¤°£¤FIL code¤§¥~¡AÁÙ¥]§t¤F¤@¥÷Metadata¡A©Ò¿×ªºMetadata«üªº¬O¥Î¨Ó´y­z¸ÓAssemblyªº¸ê°T¡A¨Ò¦pª©¥»¡Bµ{¦¡¤º©Ò¥]§t©Î¤Þ¥ÎªºÃþ§O¡B°O¾ÐÅé¸ê·½ªº°t¸m¡B IL ½sͦ¨­ì¥Í½X©Ò»Ýªº¸ê°T¤Î¦w¥þºÞ²z¡Kµ¥¡A¦]¦¹¥u­n¤@­ÓAssembly´N¥i¥H¥]§t©Ò¦³»Ý­nªºµ{¦¡¡B¸ê·½¡B¥H¤Î¦Û§Ú´y­z¸ê°T¡A¤]´N¬O»¡Assembly¤£¦A»Ý­n¦p¦PCOM¤¸¥ó¤@¼Ë¥²¶·¦b¨t²Îµn¿ý (Registry) ¤¤µù¥U¡AÁ×§K¤FDLL Hellªº±¡§Î¡C

»PJavaªº¤ñ¸û

¦@³q«¬§O¨t²Î(Common Type System ; CTS)

ª«¥óÀx¦s¦ì¸m

ª«¥ó¥i¯àÀx¦s¦b°O¾ÐÅ骺¨â¶ô°Ï°ì¡GManaged Heap¥H¤ÎStack

¦@³q»y¨¥³W½d(Common Language Specification ; CLS)

°ò¦Ãþ§Oµ{¦¡®w(Base Class Library)

.NET Framework ¥]§t¤F¤@²ÕÂ×´IªºÃþ§O®wÅýµ{¦¡³]­p¤H­û¨Ï¥Î ¡A¥]§t

C#

¼Ð·Ç

VB.NET

¦]¬°ASP.NET¥i»P³\¦h»y¨¥§@·f°t¡A¦Ó¤j¦h¼Æªº¤H¿ï¾Üªº³£¬OVB.NET¡A©Ò¥H¦³¥²­n²`¤JÁA¸Ñ¤@¤U

¨Æ¥óÅX°Ê(event driven)

­n¸ÑÄÀ¤°»ò¬O¨Æ¥óÅX°Ê¼Ò«¬¡A½Ð¥ý¬Ý¥H¤U±±¨î«ö¶sªº½d¨Òµ{¦¡

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
    Select Case sender.text
        Case "·s¼W"
            Response.Write("·s¼W")
        Case "­×§ï"
            Response.Write("­×§ï")
        Case "§R°£"
            Response.Write("§R°£")
    End Select
End Sub

°w¹ï¤W­z¨ç¦¡ªºÃ±¦W(Signature)¸ÑÄÀ¦p¤U
sender As System.Object
sender ¥NªíIJµo¦¹¨Æ¥óªºª«¥ó¡A¥B¬°Object¸ê®Æ«¬ºA
e As System.EventArgs
e ¥NªíIJµo¦¹¨Æ¥ó®É©Ò¶Ç¶i¨Óªº°Ñ¼Æ¡A¸ê®Æ«¬ºA«h¨Ì·Ó¨Æ¥ó¦Ó¦³©Ò¤£¦P¡A³q±`¬°EventArgs«¬ºA
Handles Button1.Click......
¥Nªí¦¹¨ç¦¡¥i¥Ñ Button1....µ¥ª«¥óªº Click¨Æ¥ó©ÒIJµo

Structure

§Q¥ÎStructure¡A¥i¥H«Ø¥ßÃþ¦üª«¥óªº¸ê®Æµ²ºc¦Ó¦¨¬°¤@ºØDataType

Public Structure Employee
    Dim Name As String
    Dim IdNo As String
    Dim TelNo As String
    Dim Salary As Double
    Dim Bonus As Double
    Friend Sub CalculateBonus(ByVal Rate As Single)
        Bonus = Salary * Rate
    End Sub
End Structure

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   Dim David As Employee
   David.Name = 'David'
   David.Salary = 35000
   David.CalculateBonus(0.01)
   Response.Write(David.Name & "ªº¼úª÷¬°¡G" & David.Bonus)
End Sub

VB6ªº¤º«Ø¨ç¼Æ

  1. ©R¦WªÅ¶¡¡GMicrosoft.VisualBasic
  2. ½d¨Ò¡GMicrosoft.VisualBasic.Rnd()

ASP.NET

Àô¹Ò«Ø¸m

¥¿¦¡ªººô¯¸Àô¹Ò

  1. Windows 2003 Server
  2. IIS6.0 (­n¦b.NET Framework 2.0 ¦w¸Ë«e³]©w¦n)¡A«ØÄ³ªþ¥[¤U¦C¤l¤¸¥ó
    1. FrontPage 2000 Server Extensions
    2. SMTP Service
    3. FTP Service
  3. .NET Framework 2.0 ª©¥iÂà´²µo®M¥ó
  4. SQL Server 2000 / 2005
  5. Windows Update

«ØÄ³ªº¶}µoÀô¹Ò

  1. XP
  2. .NET Framework 2.0 ³nÅé¶}µo®M¥ó (SDK)
  3. Visual Web Developer 2005 Express (¤ºªþ SQL 2005 Express »P ASP.NETµ{¦¡¶}µo¦øªA¾¹)
  4. Windows Update
  5. ¥i¿ï¾Ü¦w¸Ë³nÅé
    1. IIS5.0 (IIS­n¦b.NET Framework 2.0 ¦w¸Ë«e³]©w¦n)¡A«ØÄ³ªþ¥[¤¸¥ó»P¥¿¦¡Àô¹Ò¬Û¦P
    2. SQL Server 2000 MSDEª©¥» ©Î Access 2003

¤]¥i³o»ò¬Ý¡A¥¿¦¡ªººô¯¸Àô¹ÒµL¶·¦w¸ËVWD2005¡A¶}µoÀô¹Ò«h¤£¤@©w­n¦w¸ËIIS©ÎMSDE©ÎAccess¸ê®Æ®w¡C

Visual Web Developer 2005 Express Edition

     Visual Web Developer 2005(VWD2005) Express¬°Visual Studio 2005(VS2005)ªº¤l¶°¦X¡A¬O·L³nªñ¨Ó´£¥X»PLAMP°}Àç¬Û·íªº¶}µo¤u¨ã¡A¨Ï¥Î©ì©ñ¤¸¥óªº¤è¦¡§Y¥i³]­pWebÀ³¥Îµ{¦¡¡A¨Ã¤ä´©¤¬°Ê¦¡ªº°£¿ù¤è¦¡¡C¤º§t§K¶Oºë²ª©ªºweb¦øªA¾¹(development server)»P¸ê®Æ®w(sql 2005 express server)¥i¨Ñ¥»¾÷´ú¸Õ¨Ï¥Î¡A¹ê»Ú¤W³¡¸p®É¤´¶··f°tIIS»PSQL Server¡C

VWD¾Þ§@½m²ß

¤p§Þ¥©

  1. Web Form¤W¥ô¦óªÅ¥Õªº¦a¤è Double Click¡A´N·|¸õ¨ì Code Behindªº³]­pµe­±
  2. ¦bCodeBehindªº³]­pµe­±¤¤¨Ï¥Î Me. ¥i±a¥X©Ò¦³¥i¨Ï¥Îªºª«¥ó¦WºÙ
  3. µe­±³]­p¤W·Q­n°ÊºAªº¼W¥[Åã¥Ü¤º®e¥i¨Ï¥Î Label ©Î Literal¡A®t§O¦b©ó Label ª«¥ó¤@©w¦û¾Úª©­±ªÅ¶¡¡A¥B¥i¥H¨Æ¥ý¨M©w¤j¤p¡A¦ÓLiteralª«¥ó­Y¤£Åã¥Ü«h¤£¦ûª©­±ªÅ¶¡¡A¥B¥i¥H¨Ï¥Î html»yªk¨ÓÅã¥Ü¨ä¤j¤p»P¤º®e

ASP.NET vs. ASP

ASP.NET¨Ã¤£¬OASP 4.0¡CµL½×´N¾ã­Óºô­¶ªº°õ¦æ¬[ºc¡A©Î¬O¼¶¼gµ{¦¡¨Ï¥Îªºµ{¦¡»y¨¥¡A¤Îµ{¦¡ªº³]­p·§©À¡A¨âªÌ¦Û¥»½è¤W´N§¹¥þ¤£¦P¡CASP.NET¤w¸g¹ýÀY¹ý§À¦a§ï¼g¤F¡I

¦p¦ó±N²V©M¼Ò¦¡ÂàÅܬ°µ{¦¡½X«á¸m¼Ò¦¡

±Nµ{¦¡½X¶}ÀYªº«Å§i­×§ï¦p¤U¡A¨Ã±N<script runat="server">»P</script>¤§¶¡ªºµ{¦¡®³±¼©ñ¨ìlist.aspx.vb

list.aspx
<%@ Page Language="VB" debug="True" Explicit="True" Strict="True" Src="list.aspx.vb" inherits="peter.myvb" %>
<html>
<body>
....²¤ ...
</html>

list.aspx.vb
Imports System
Imports System.Data
Imports System.Data.SqlClient

Namespace peter
  Public Class myvb : inherits System.Web.UI.Page
     Protected WithEvents Repeater1 As System.Web.UI.WebControls.Repeater
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
           Dim cnn As SqlConnection = New SqlConnection("server=(local);database=roam;uid='sa';pwd='591026';")
           Dim cmd1 As SqlDataAdapter = New SqlDataAdapter("select * from j05 where schyy='93'", cnn)
           Dim ds As DataSet = New DataSet()
           cmd1.Fill(ds,"j05") '¤]¥i³o¼Ë¼g cmd1.Fill(ds)
           Repeater1.DataSource = ds.Tables("j05") '¤]¥i³o¼Ë¼g Repeater1.DataSource = ds
           Page.DataBind() '¤]¥i³o¼Ë¼g Repeater1.DataBind()
           cnn.Close()
     End Sub
  End Class
End Namespace

@ Page

³o­Ó«ü¥Üµü¥u¯à¨Ï¥Î©ó Web Form ºô­¶¤¤ (.aspx ÀÉ®×)¡C±z¥u¯à¦b¨C¤@­Ó .aspx Àɮפ¤¥]§t¤@­Ó @ Page «ü¥Üµü¡A¥H¤U«ØÄ³±`¥ÎªºÄݩʡC(http://msdn.microsoft.com/library/cht/default.asp?url=/library/CHT/cpgenref/html/cpconPage.asp)

<%@ Page Language="VB" debug="True" Explicit="True" Strict="True" inherits="my.myCodeBehind" Codebehind="aa.aspx.vb" %>

Language
«ü©w½sĶºô­¶¤º©Ò¦³¤º´OÂàĶ (<% %> ©M <%= %>) ©Mµ{¦¡½X«Å§i°Ï¶ô®É¨Ï¥Îªº»y¨¥¡C³o¨Ç­È¥i¥H¥Nªí¥ô¦ó .NET ¤ä´©ªº»y¨¥¡A¥]¬A Visual Basic¡BC# ©Î JScript .NET¡C
Debug
«ü¥Üºô­¶¬O§_À³¨Ï¥Î°»¿ù²Å¸¹½sĶ¡C¦pªGºô­¶À³¨Ï¥Î°»¿ù²Å¸¹½sĶ¡A«h¬° true¡F§_«h¬° false¡C
Inherits
©w¸qºô­¶­nÄ~©Óªºµ{¦¡½X«á¸m (Code-Behind) Ãþ§O¡C³o¥i¥H¬O±q Page Ãþ§O­l¥Íªº¥ô¦óÃþ§O¡C
AutoEventWireup
«ü¥Üºô­¶ªº¨Æ¥ó¬O§_¦Û°ÊIJµo¡A¹w³]­È¬O true¡C­Y¬°false«h©Ò¦³­¶­±¨Æ¥ó¥²¶·¸g¹L¥Î¤á©ú½Tªº¾Þ§@¤~¯àIJµo¡C
Codebehind
³o­ÓÄݩʬO¥Ñ Visual Studio .NET Web Form ³]­p¤u¨ã©Ò¨Ï¥Î¡C¥¦·|±Nºô­¶Ãþ§Oªº¦ì¸m§i¶D³]­p¤u¨ã¡A¨Ï³]­p¤u¨ã¥i¥H«Ø¥ß¸ÓÃþ§Oªº°õ¦æ­ÓÅé¡A¨Ñ±z¦b³]­p¶¥¬q¨Ï¥Î¡C
Src
«ü©w·í­n¨Dºô­¶®É¡A¥H°ÊºA¤è¦¡½sͤ§µ{¦¡½X«á¸mÃþ§Oªº­ì©lµ{¦¡ÀÉ (Source File) ¦WºÙ¡C
ª`·N
RAD ³]­p¤u¨ã (¨Ò¦p Visual Studio. NET) ¤£¨Ï¥Î³o­ÓÄݩʡC¬Û¤Ï¦a¡A¥¦­Ì·|¹w¥ý½s͵{¦¡½X«á¸mÃþ§O¡AµM«á¨Ï¥Î Inherits ÄݩʡC
SmartNavigation
«ü¥Üºô­¶¬O§_¤ä´© Internet Explorer 5.5 (§t) ¥H«áª©¥»¤¤ªº´¼¼z«¬¨µÄý¡C
Explicit
§PÂ_ºô­¶¬O¤£¬O¨Ï¥Î Visual Basic ªº Option Explicit ¼Ò¦¡½sĶªº¡Ctrue «ü¥Ü Visual Basic ªº©ú½T½sĶ¿ï¶µ¤w±Ò¥Î¡A¦Ó¥B©Ò¦³ÅܼƳ£¥²¶·¨Ï¥Î Dim¡BPrivate¡BPublic ©Î ReDim ³¯­z¦¡«Å§i¡F§_«h¬° false¡C¹w³]¬° false¡C
ª`·N
°£¤F Visual Basic .NET ¥H¥~ªº»y¨¥³£·|©¿²¤³o­ÓÄݩʡC
Strict
«ü¥Ü¬O§_À³¨Ï¥Î Visual Basic Option Strict ¼Ò¦¡½sĶºô­¶¡C¦pªG¤w±Ò¥Î Option Strict¡A«h¬° true¡F§_«h¬° false¡C¹w³]¬° false¡C
ª`·N °£¤F Visual Basic .NET ¥H¥~ªº»y¨¥³£·|©¿²¤³o­ÓÄݩʡC
Trace
«ü¥Ü¬O§_¤w±Ò¥Î°lÂÜ¡C¦pªG¤w±Ò¥Î°lÂÜ¡A«h¬° true¡F§_«h¬° false¡C¹w³]¬° false¡C

´¼¼z«¬¨µÄý

´¼¼z«¬¨µÄý¬O ASP.NET ¤¤ªº¤@¶µ¥\¯à¡AInternet Explorer 5.5 (§t) ¥H«áª©¥»ªºÂsÄý¾¹³£¤ä´©³o¶µ¥\¯à¡C¥¦Åýºô­¶¦b¤£¦P¨µÄý¤§¶¡¶i¦æ­«·s¾ã²z®É¡A¤´¯àºû«ù±²°Ê¦ì¸m©M¶µ¥ØµJÂI (Focus)¡A¥u±N³æ¤@ºô­¶Àx¦s¦bÂsÄý¾¹ªº°O¿ý¤¤¡A¦Ó¥B¨S¦³¤@¯ë­«·s¾ã²z Web ºô­¶®É©Ò¥X²{ªº°{°Ê²{¶H¡C´¼¼z«¬¨µÄý³Ì¾A¦X»P»Ý­n®É±`¦^¶Ç¡B¦ý¶Ç¦^ªºµøÄ±¤º®e¨ÃµL¼@¯PÅÜ§óªº ASP.NET ºô­¶·f°t¨Ï¥Î¡C¨M©w¬O§_±N³o­ÓÄݩʳ]©w¬° true ®É¡A½Ð¥J²Ó¦Ò¼{³o¤@ÂI¡C

Server Control

server control¬O¤°»ò?

server control ¬O .NET Framework©Ò´£¨Ñwebµ{¦¡¼¶¼g®É©Ò»Ýªº±±¨î¶µ¡A ¦³ HTML Controls »P WEB Controls ¨â¤jÃþ

HTML Controls »P WEB Controls ªº²§¦P?

¨Ï¥Îserver controlªº®É¾÷

²Ä¤@¦¸¨Ï¥Î server control ·|¦³ªººÃ°Ý¬O¡G§Ú¬O§_À³¸Ó±N©Ò¦³«eºÝªº html ³£¥N´«¦¨ server control ¡A ¥¿½Tªºµª®×¬O¡G§AÀ³¸Ó¥u±N»Ý­n¤¬°Ê¦Ó²£¥ÍÅܤƪº«eºÝÂsÄý¾¹ª«¥ó§ï¼g¦¨¬° server control ©Î¬O»¡À³¸Ó±N·|¼gµ{¦¡»P¤§¤¬°Êªº«eºÝÂsÄý¾¹ª«¥ó§ï¼g¦¨¬°server control¡C

¨Ï¥Îserver control¨Ó´À¥N¶Ç²ÎclientºÝ¨Ï¥Îjavascript¦³¤°»ò¦n³B?

¶Ç²Îwebµ{¦¡¦]¬°http statelessªº½t¬G¥²¶·¨Ï¥Î»PserverºÝ¤£¦Pªºµ{¦¡»y¨¥¦p javascript ¨Ó°w¹ïclientºÝÂsÄý¾¹¤Wªºª«¥ó¥[¥H±±¨î¡A¤]¦]¦¹¦b­±¹ï«eºÝÂsÄý¾¹ªº¥­¥x¤£¤@­P®É (etc. mozilla, opera, packet pc) °w¹ï¤£¦P¼tµP¡Bª©¥»ªºÂsÄý¾¹¼¶¼g¼Æ­Ó¤£¦P ªºª©¥»ªººô­¶¤º®e¡C

server control ´N¬O .Net Framework ©Ò´£¥X¸Ñ¨M¤W­z°ÝÃDªº soloution ¡A web ¶}µo¤H­û¯à¥H»PserverºÝ¬Û¦Pªºµ{¦¡»y¨¥¨Ó¼¶¼g»PclientºÝ¨Ï¥ÎªÌ¤¬°Êªº³B²zµ{§Ç¡A¦Ó¤£»Ý­n¦Ò¼{ client ºÝªºÂsÄý¾¹¥­¥x¡A¦Ó .Net «h ·|®Ú¾Ú¨Ï¥ÎªÌªºÂsÄý¾¹Ãþ«¬°ÊºA¦a²£¥Í¾A¦XªºHTMLºô­¶¡BWML¤â¾÷µe­±¡B javascript µ{¦¡½Xµ¥¡A¹ï©óweb¶}µo¤H­û¦Ó¨¥¥i¥H´î»´¬Û·í¤jªº­t¾á¡C

¤@¨Ç¥¼¸ÑªººÃ°Ý

  1. ¦bASP.NET¤¤¨Ï¥ÎC++©ÎC#ªº°õ¦æ®Ä²v¬O§_¸ûVB­n¨Óªº¦n©O¡H®Ñ¤W³£»¡Âনmanaged code ©Ò¥H¨S®t¡A¦ý¬O¤£¦P»y¨¥¦bcompile¦¨managed code®ÉÃø¹D¤]¨S¦³®t²§¶Ü ?
  2. ÁöµM»¡.Net ¸¹ºÙ¥i¥H¦bServer³B²z±¼³\¦h¦bclientºÝ»Ý­n§@ªº¨Æ¡A²¤Æ¾Ç²ßJavascriptªº§xÂZ¡A¦ý¹ê»Ú¤Wµ{¦¡³]­p®vÁÙ¬O»Ý­n¼g³\¦hªºjavascript¡A¨Ã±N¤§¥]¦bserverºÝªºµ{¦¡½X¤¤ ?

ASP.NET¨Ï¥Î§Þ¥©

¦basp.net¦p¦ó¨Ï¥Î JavaScript °µ¨ì¦C¦L®ÉÁôÂëö¶s

µ§ªÌ¤¶²Ð¥|ºØ¦p¦ó¦basp.net¤Þ¥Î JavaScript ªº§@ªk¡G

1.ª½±µ¦b xxx.aspx¤¤¥[¤Jjavascriptªºcode¡A¶Ç²Îªºasp, php¤]³£¬O³o¼Ëª½±µ±±¨îªº¡C¦ý¦basp.net¤¤¦¹Ãþ¤è¦¡¥u¾A¦X¦b javascript¤¤¨S¦³°Ñ¦Ò¨ì¥ô¦ó server control®É¨Ï¥Î¡C
<div id="MyPanel" align="center"> //½Ðª`·N, ¦¹³B©w¸qªº¬O htmlªº layer¦Ó«D webcontrol¤¤ªº Panel
    <asp:Button ID="printBtn" runat="Server" Text="¦C¦L" OnClick="PrintClick" />
</div>
<script language="javascript" type="text/javascript">
Function PrintClick(){
   var IE4 = (document.all) ? 1 : 0; //§PÂ_°õ¦æªºclientºÝ¬°¦óºØÂsÄý¾¹
'   window.document.all.MyPanel.style.visibility='hidden' ;  //³oºØ¼gªk¥u¯à¨Ï¥Î¦bIE¤W
'­n¦b¦C¦L«e±N«ö¶sÁôÂáA¤~¤£·|±N«ö¶s¦L¥X¨Ó¡A¦Ò¼{¨ì¸óÂsÄý¾¹ªº¬Û®e©Ê¥²¶·¨Ï¥ÎgetElementByID()
   window.document.getElementById("MyPanel").style.visibility='hidden';
   window.print();
   window.document.getElementById("MyPanel").style.visibility = (IE4) ? 'visible' : 'show';  //IE4»PNS4¹ï©óÁôÂêºlayer­n¨ú®øÁôÂîɪº­È¤£¤@¼Ë
}
</script>
2.¨Ï¥Î.Attributes.Add¹ïprintBtn¥[¤WOnClickªºjavascript code
½Ðª`·N¡Gserver control ªº¦WºÙ¦b clientºÝÂsÄý¾¹¤¤¹ïÀ³ªºDOMª«¥ó¦WºÙ ¦³¥i¯à¤£¤@¼Ë
<asp:Panel ID="MyPanel" runat="server" align="center">
         <asp:Button ID="printBtn" runat="Server" Text="¦C¦L" />
</asp:Panel>
Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs)
   Dim JavaScript As String
   JavaScript="JavaScript:"
   JavaScript+="var IE4 = (document.all) ? 1 : 0;" '§PÂ_clientºÝªºÂsÄý¾¹¬O§_¬°IE
   JavaScript+="window.document.getElementById('"+MyPanel.ClientID+"').style.visibility='hidden';" 'ÁôÂÃPanel¥]°_¨Óªº«ö¶s
   JavaScript+="window.print();"
   JavaScript+="window.document.getElementById('"+MyPanel.ClientID+"').style.visibility = (IE4) ? 'visible' : 'show';"  'IE4»PNS4¹ï©óÁôÂêºlayer­n¨ú®øÁôÂîɪº³]©w­È¤£¤@¼Ë

   printBtn.Attributes.Add("OnClick",JavaScript)
'   me.printBtn.Attributes("onclick") =JavaScript  //³o¼Ë¼g¤]¥i¥H
End Sub
3.¨Ï¥ÎPage.RegisterClientScriptBlock¡A¥i¦bclientºÝ©w¸q¥X¿W¥ßªº javascript function¡A¨Ñ­«½Æ©I¥s
½Ðª`·N¡Gserver control ªº¦WºÙ¦b clientºÝÂsÄý¾¹¤¤¹ïÀ³ªºDOMª«¥ó¦WºÙ ¦³¥i¯à¤£¤@¼Ë
<asp:Panel ID="MyPanel" runat="server" align="center">
         <asp:Button ID="printBtn" runat="Server" Text="¦C¦L" />
</asp:Panel>
Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs)
     printBtn.Attributes.Add("onclick","PrintClick();") //½Ð°O±o­n¥[¤À¸¹¡A¦]¬°.netÁÙ·|¦b³o¤§«á¥[¤Wcode
End Sub

Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
   Dim myScript AS StringBuilder = new StringBuilder() //°£¤F¨Ï¥Î String©w¸q,ÁÙ¥i¨Ï¥ÎStringBuilder,¥i§ó¸`¬Ù°O¾ÐÅé
   myScript.Append(VbCrLf & "<script language='javascript' type='text/javascript'>")
   myScript.Append(VbCrLf & "function PrintClick(){")

'§PÂ_clientºÝªºÂsÄý¾¹¬O§_¬°IE
' myScript.Append("var NS4 = (document.layers) ? 1 : 0;") //³o¼Ë¼g¬°§PÂ_NescapeÂsÄý¾¹ , ¦ý mozilla¤£¤ä´©
   myScript.Append(VbCrLf & "var IE4 = (document.all) ? 1 : 0; ") //³o¼Ë¼g¬°§PÂ_IEÂsÄý¾¹ , ¦ý mozilla¤£¤ä´©

'¦]«ö¶s¥HMyPanel¥]°_¨Ó, ©Ò¥H¦C¦L®É­n±N¤§ÁôÂÃ, ¦ý¦]¬°¨Ï¥Î¤Fwebcontrol¦ÓµLªk±oª¾°õ¦æ®ÉªºclientºÝID¡A©Ò¥H¤£¥i³æ¯Â¥HMyPanelªí¥Ü¡A¦Ó­n¥[¤W.ClientID
   myScript.Append(VbCrLf & "window.document.getElementById('"+MyPanel.ClientID+"').style.visibility='hidden';")
   myScript.Append(VbCrLf & "window.print();")

 'IE4»PNS4¹ï©óÁôÂêºlayer­n¨ú®øÁôÂîɪº³]©w­È¤£¤@¼Ë
   myScript.Append(VbCrLf & "window.document.getElementById('"+MyPanel.ClientID+"').style.visibility = (IE4) ? 'visible' : 'show';")
   myScript.Append("}")
   myScript.Append(VbCrLf & "</" & "script>")

   Page.RegisterClientScriptBlock("MyScript", myScript.ToString())
End Sub

4.¨Ï¥Îliteral¨Ó¦w´¡ javascript code¨ì«ü©wªº¦ì¸m
<asp:Panel ID="MyPanel" runat="server" align="center">
         <asp:Button ID="printBtn" runat="Server" Text="¦C¦L" />
</asp:Panel>
<asp:literal id="Literal1" runat="server"></asp:literal>
Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs)
   Dim JavaScript As String
   JavaScript=vbCrLf & "<script language='javascript' type='text/javascript'>"
   JavaScript+=vbCrLf & "function PrintClick(){"
   JavaScript+=vbCrLf & "var IE4 = (document.all) ? 1 : 0;"
   JavaScript+=vbCrLf & "window.document.getElementById('"+MyPanel.ClientID+"').style.visibility='hidden';"
   JavaScript+=vbCrLf & "window.print();"
   JavaScript+=vbCrLf & "window.document.getElementById('"+MyPanel.ClientID+"').style.visibility = (IE4) ? 'visible' : 'show';"
   JavaScript+=vbCrLf & "}"
   JavaScript+=vbCrLf & "</script>"

   me.Literal1.Text = Javascript
End Sub

ºô­¶¸ü¤J«áÅý´å¼Ð°±¯d¦b«ü©wªºÄæ¦ì¤W

¨Ï¥ÎPage.RegisterStartupScript¡A¥i¦bclientºÝºô­¶©³³¡©ñ¸mjavascript code¡A¨ä¥Øªº¦b½T«O©Ò¦³©I¥sªººô­¶ª«¥ó¬Ò¤w¦s¦b

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
   SetFocus(TextBox1)
End Sub

Sub SetFocus(ByVal controlToFocus As Control)
   Dim JavaScript As New StringBuilder()
   JavaScript.Append(VbCrLf & "<script language='javascript'>")
   JavaScript.Append(VbCrLf & "window.document.getElementById('")
   JavaScript.Append(controlToFocus.ClientID)
   JavaScript.Append("').focus();")
   JavaScript.Append(VbCrLf & "</" & "script>")
   Page.RegisterStartupScript("focus", JavaScript.ToString())
End Sub

ADO.NET

Java Framework VS .NET Framework

J2EE Feature .NET Framework ³Æµù
Java Multi-language Cobol, Build into SQL Server
JVM CLR  
JDK .NET Framework SDK  
JavaBeans .NET class  
EJB .NET class with COM+  
JSP/Servlet ASP.NET Web control vs. Taglib and Faces
JMS System.Messaging / MSMQ  
EJB Message Beans COM+ QC  
JNLP (WebStart) No-touch Deployment  
RMI-over-IIOP .NET Remoting  
JNDI ADSI  
JAXP ¡K System.XML and web services ADO.NET XMLReader
JSR-175 ¡V coming in JDK 1.5 Code Attributes  
JavaMail System.Web.Mail  

°Ñ¦Ò¸ê®Æ¡Ghttp://www.iiiedu.org.tw/knowledge/knowledge20020828_2.htm

°Ñ¦Ò®Ñ¥Ø

ºô¸ô¸ê·½

ECMA International

ECMA International¡]ECMA¡^³Ð¥ß©ó1961¦~¡Aµo®i¥X¸ê°T©M³q°T§Þ³N¼Ð·Ç¡]ICT¡^¡CECMA¬O«DÀç§Q·~¬É²Õ´¡A¥Ñ§Þ³N¶}µo¤H­û¡B¼t°Ó©M¨Ï¥ÎªÌ¦@¦P²Õ¦¨¡C·~¬É©M¨ä¥L±M®a¦bECMA²Õ´¤¤¦@¦P¨ó¤O¦X§@¡A§¹¦¨¦U¶µ¼Ð·Çªº¨î­q¡C±µµÛECMA±NÀò±o³\¥iªº·s§Þ³N¡A´£³ø°e¥æISO¡BISO/IEC©METSI¼Ð·Çªº®Ö¥i¡C

ECMA´£¨Ñ¤F¡u§Ö³t¼f®Ö¡v¡A¶i¤J·~¬É¼Ð·Ç²Õ´µ{§Ç¡A³z¹L³oºØºÞ¹D¡A°ª«~½èªº¼Ð·Ç¥i¥H§Ö³t³q¹L¨ÃÀò±o±Ä¦æ¡C ³o¨Ç¼Ð·Ç¥D­nªº»â°ì¥]¬A¡G«ü¥O½X©Mµ{¦¡»y¨¥¡A¥ú¾Ç©MºÏ©ÊÀx¦s¸Ë¸m¡A°ª³t¤¬Áp¡A¦w¥þ¡BÀô¹Ò¡B­µÅT©M¹qºÏ²£«~¯S©Ê¡A¥ø·~©MProximity Communication¬Û¾F³q°T©MNetworking¡AÀɮשM®e¶qµ²ºc¡C¬ÛÃö¥Xª©«~¥i§K¶Oºô¯¸¤U¸ü¡G http://www.ecma-international.org ¡C

XML

XML¬O¤@ºØ¦b W3C ¤u·~¼Ð·Ç³W½d¤Uªº¼Ð¥Ü»y¨¥ (Markup Language) ¡A¥D­n¦b´y­zµ²ºc¤Æªº¸ê®Æ¡A´£¨Ñ¼Ð·Çªº¸ê®Æ¥æ´«®æ¦¡¡AÅý¸ê°T¯à¸ó¶V²§½èªºÀô¹Ò»P¤£¦Pªº³]³Æ¡C

SOAP

SOAP(Simple Object Access Protocol)¬O¤@ºØ¬[ºc¦b HTTP ¨ó©w¤Wªº¤À´²¦¡ª«¥ó³q°T¨ó©w¡C³z¹L XML Åý¨Ï¥ÎªÌºÝ»P¦øªA¾¹¤§¶¡¥i¥H¤¬¬Û¾ã¦X¡AÅýÀ³¥Îµ{¦¡¤§¶¡¥i¥H¸ó¶V¨¾¤õÀð¦Ó¹F¨ì©¼¦¹·¾³qªº¥Øªº¡C

¥D ºô ¯¸¡Ghttp://peterju.notlong.com (¥Ø«eÂà§}¦Ü http://irw.ncut.edu.tw/peterju/)

Bobby WorldWide Approved AAA| Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0 | [Åwªï¨Ï¥Î¥ô¦ó§@·~¨t²Î¡BÂsÄý¾¹Æ[¬Ý¡I]| [¥»ºô¯¸²Å¦X XHTML 1.0 ¼Ð·Ç¡I]| [¥»ºô¯¸²Å¦X CSS 1.0 ¼Ð·Ç¡I]| [Valid RSS]| [³Ð·N¤½²³³\¥iµý]
This work is licensed under a Creative Commons License