วันอังคารที่ 19 มีนาคม พ.ศ. 2556

รู้จักกับภาษา VB และ C# ที่ใช้สำหรับสร้างเว็บแอพพลิเคชั่นใน ASP.NET


 อันที่จริงแล้ว เนื่องจากเบื้องหลังของ ASP.NET นั้น ก็คือโปรแกรมที่ทำงานอยู่บน .NET Framework คุณจึงไม่ได้ถูกจำกัดว่า จะต้องเขียนโค้ด ASP.NET ด้วยภาษาใด ภาษาหนึ่งเท่านั้น ซึ่ง C# ก็เป็นหนึ่งในภาษาที่ .NET นั้นรองรับ และอาจะเรียกได้ว่า เป็นภาษาอย่างเป็นทางการของแพลตฟอร์ม .NET แต่ถ้าหากว่าคุณเป็นผู้ที่เคยพัฒนาเว็บไซต์ด้วย ASP มาก่อน ภาษาที่มีพื้นฐานมาจากภาษา Visual Basic เดิม อย่าง Visual Basic.NET ก็อาจจะเป็นตัวเลือกที่ดูคุ้นเคยมากกว่า แต่ไม่ว่าคุณจะพัฒนาด้วยภาษาอะไรก็ตาม ในทางทฤษฎีแล้ว จะไม่มีผลใด ๆ กับประสิทธิภาพโดยรวมของโปรแกรมแต่อย่างใด และทุกภาษา สามารถเข้าถึงฟีเจอร์ต่าง ๆ ของ .NET ได้อย่างเท่าเทียมกัน
อย่างไรก็ดี ถ้าหากว่าคุณเคยมีพื้นฐานจาก Java หรือว่า C++ มาก่อน หรือต้องการจะเรียนรู้ “ภาษาทางการ” ของแพลตฟอร์ม .NET ภาษา C# ก็เป็นน่าจะเหมาะสมที่สุดสำหรับคุณ ซึ่งภายในบทนี้ ผู้เขียนจะแนะนำถึงโครงสร้างพื้นฐานและการใช้งานภาษา C# พร้อมกับ VB.NET อย่างคร่าว ๆ สำหรับผู้ที่เคยมีประสบการณ์ในการเขียนโปรแกรมมาก่อนแล้ว
ทำความู้จักกับ C#
ภาษา C# นั้น เป็นภาษาที่มีรูปร่างหน้าตาและโครงสร้างในแบบที่เรามักจะเรียกว่า “C-Style Language” หรือ ภาษาที่มีลักษณะคล้ายคลึงกับภาษา C นั่นเอง ซึ่งแม้แต่ภาษาที่โปรแกรมเมอร์ชาวไทยคุ้นเคยกันดีอย่าง Java และ PHP นั้นก็จัดอยู่ในภาษากลุ่มนี้เช่นกัน นั่นก็เพราะว่า “C-Style” เป็นรูปแบบภาษาที่โปรแกรมเมอร์ส่วนใหญ่ ที่มักมีพื้นฐานมาจากภาษา C คุ้นเคย แต่ ก็อาจจะเป็นภาษาที่ดูแปลกตา สำหรับผู้ที่ไม่มีพื้นฐานการเขียนโปรแกรมมาก่อน หรือผู้ที่คุ้นเคยกับภาษาที่ค่อนข้างดูคล้ายกับภาษาพูดอย่าง Visual Basic ไปเลยก็เป็นได้ ดังนั้นถ้าคุณมีพื้นฐานจากภาษาในกลุ่ม C-Style อยู่ก่อนแล้ว ก็อาจจะข้ามในส่วนของการแนะนำโครงสร้างภาษานี้ และไปเริ่มอ่านในส่วนของการแนะนำฟีเจอร์เฉพาะของภาษา C# ได้เลย แต่สำหรับผู้ที่เคยพัฒนาโปรแกรมด้วยภาษา Visual Basic มาก่อน หรือผู้ที่กำลังเริ่มเป็นโปรแกรมเมอร์มือใหม่ การแนะนำนี้เป็นส่วนสำคัญ ที่ไม่ควรมองข้าม

ทำความรู้จักกับ VB.NET
สำหรับใน .NET Framework นั้น อีกภาษาหนึ่งที่ได้รับความนิยมไม่แพ้กัน ก็คือภาษา VB.NET ซึ่งได้รับการต่อยอดมาจากภาษายอดนิยมอย่าง VB6 นั่นเอง สิ่งสำคัญที่เพิ่มเข้ามาใหม่ใน VB.NET ก็คือความสามารถด้าน OOP (Object Oriented Programming: การเขียนโปรแกรมเชิงวัตถุ) ที่ได้รับการปรับปรุงจนเรียกได้ว่า VB.NET นั้นเป็นภาษา OOP สมบูรณ์แบบ ในขณะที่ VB6 นั้นเป็นภาษาที่อ้างอิงถึง OO แต่ว่าไม่ได้เป็นภาษาที่มีความสามารถด้าน OOP แต่ในด้านความเปลี่ยนแปลงอื่นๆ ในด้านของภาษา หรือไวยกรณ์นั้น นับได้ว่า ไม่มีความแตกต่างจากของเดิมเลย ซึ่งในบทนี้ ผู้เขียนจะเปรียบเทียบไวยกรณ์ของทั้ง C# และ VB.NET ไปพร้อมกัน

สิ่งที่ทำให้ C-Style น่ากลัว
ผู้ที่เคยเขียน VB6 มาก่อน และต้องการจะทดลองการใช้งาน C# คงจะเห็นด้วยกับผู้เขียนว่า ภาษาในแบบ C# นั้น ออกจะไม่ค่อยเป็นมิตรเท่าที่ควร เพราะว่ามีการใช้ตัวอักษรแปลกๆ และลักษณะการเขียนนั้น ก็ไม่เหมือนกับภาษาเขียนธรรมดาสักเท่าไหร่ ซึ่งตัวอักษรที่ทำให้ C# และภาษาในกลุ่ม C-Style ดูเป็นภาษาที่น่ากลัว ก็เห็นจะมีอยู่ด้วยกัน 4 ตัว ได้แก่ เครื่องหมายอัฒภาค (Semicolon - ‘;’) เครื่องหมาย == (เครื่องหมายเท่ากับติดกัน 2 ตัว) วงเล็บปีกกา (‘{‘ และ ‘}’) และ Backslash (\) ดังนั้น เพื่อให้การอ่านโค้ดที่คุณกำลังจะพบในส่วนต่อ ๆ ไปสะดวกยิ่งขึ้น เราจะมาทำความรู้จักับตัวอักขระพิเศษเหล่านี้กันก่อน
";"เป็นการใช้สำหรับการจบคำสั่งในตัวโปรแกรม ดังเช่นในโค้ดสมมุติด้านล่างนี้
     start_engine();
     shift_to_drive_gear(); accelerate();

จะเห็นว่า แม้จะมีโค้ดอยู่เพียง 2 บรรทัด แต่มีคำสั่ง (ซึ่งดูเหมือนจะเป็นการเริ่มออกรถ) อยู่ 3 คำสั่ง ถูกคั่นด้วยเครื่องหมาย ‘;’ นั่นเอง
ดังนั้นในภาษา C# ไม่ว่าคุณจะกด Enter เพื่อขึ้นบรรทัดใหม่กี่ครั้ง Compiler ของ C# ก็ยังถือว่า เป็นคำสั่งเดียวกัน จนกว่าจะมีเครื่องหมาย ‘;’ เพื่อบอกว่า คำสั่งนั้นได้จบลงแล้ว จึงอาจเปรียบเทียบได้ว่า เครื่องหมาย ‘;’ มีหน้าที่คล้ายกับ เครื่องหมาย ‘.’ ในภาษาอังกฤษ เพื่อจบประโยคนั่นเอง               
การมีเครื่องหมาย ‘;’ นี้ ก็เป็นอีกจุดหนึ่งที่ภาษา C# นั้น ตรงกันข้ามกับภาษา Visual Basic อย่างสิ้นเชิง นั่นก็เพราะว่า ถ้าหากคุณต้องการแบ่งโค้ดที่ยาวเกินกว่าหน้าจอแนวนอนเป็นหลาย ๆ บรรทัด ใน Visual Basic คุณจะต้องทำการใส่เครื่องหมาย ‘_’ เพื่อบอกว่า โค้ดที่อยู่หลังเครื่องหมายนี้ ยังเป็นโค้ดในคำสั่งเดียวกันกับโค้ดที่อยู่ก่อนหน้าเครื่องหมายนี้อยู่ ขณะที่ในภาษา C# นั้นสามารถกด Enter เพื่อขึ้นบรรทัดใหม่ได้เลย แล้วใช้เครื่องหมาย ‘;’ เพื่อบ่งบอกว่า คำสั่งนั้นสิ้นสุดแล้ว ตรงนี้ จึงเป็นส่วนที่ผู้ที่คุ้นเคยกับ Visual Basic อาจจะรู้สึกไม่สะดวกนักในตอนแรก เนื่องจากจะต้องใส่เครื่องหมาย ‘;’ ทุกครั้ง เพื่อจบคำสั่ง จึงเป็นอีกจุดหนึ่ง ที่ต้องทำความคุ้นเคย
VBC#

A = 1
A = A + 2
B = “This is Long “ & _
          “Sentence”

A = 1;
A = A + 2;
B = “This is Long” +
          “Sentence”;
โค้ดตัวอย่างที่ 2-1 เปรียบเทียบการขึ้นบรรทัดใหม่ในโค้ดของ 2 ภาษา
"=="
ปกติแล้ว เราจะคุ้ยเคยกันดีกับเครื่องหมายเท่ากับ (‘=’) ในทางคณิตศาสตร์ แต่เนื่องจากเครื่องหมายเท่ากับนั้น มีความหมายกำกวมอยู่ 2 ด้าน ได้แก่การใส่ค่าทางด้านขวาของเครื่องหมายให้กับตัวแปรที่อยู่ด้านซ้าย และการเปรียบเทียบค่าของตัวแปร (หรือค่าคงที่) ที่อยู่สองข้างของเครื่องหมาย ตัวอย่างเช่น
A = 1 อาจมีความหมายได้ว่า
                ให้ตัวแปร A มีค่า 1 ในประโยค Let A = 1 หรือ
                ตัวแปร A นั้น มีค่าเท่ากับ 1 ในประโยค If A = 1
ในการใช้ในภาษาทั่วไป ที่ไม่ใช่การเขียนโปรแกรม ความกำกวมนี้อาจจะสามารถอ้างอิงได้จากคำพูดรอบข้าง (เช่น คำว่า Let และ If ) แต่เพื่อลดความกำกวมนั้นในการเขียนโปรแกรม ผู้ออกแบบภาษาในกลุ่ม C-Style จึงได้บัญญัติว่า ให้ ‘==’ มีความหมาย ในเชิงการเปรียบเทียบ หรือความหมายที่สองของเครื่องหมายเท่ากับ ตามตัวอย่างนั่นเอง เราจึงจะพบเครื่องหมาย ‘==’ นี้ในคำสั่งที่เกี่ยวข้องกับการตรวจสอบค่า เช่น คำสั่ง If ที่ผู้เขียนจะกล่าวถึงต่อไป เป็นต้น
"{" และ "}"เครื่องหมายวงเล็บปีกกานั้น ใช้เพื่อการรวมคำสั่งหลายๆ คำสั่ง ให้เป็น กลุ่มเดียวกันเรียกว่า Block โดยมากมักจะเป็นการใช้ร่วมกับคีย์เวิร์ดต่างๆ เพื่อบ่งบอกว่า โค้ดที่อยู่ระหว่าง { และ } นั้น เป็นโค้ดของคีย์เวิร์ดตัวไหน
จากตัวอย่างที่ 2-2 นี้ จะเห็นได้ว่า คำสั่ง A = 2 นั้น อยู่ในกลุ่มเดียวกับคีย์เวิร์ด if และ A = 3 นั้นเป็นของกลุ่มคีย์เวิร์ด Else
VBC#

A = 1
If A = 1 Then
     A = 2
Else
     A = 3
End If

A = 1;
if ( A == 1 )
{
     A = 2;
} else {
     A = 3;
}
โค้ดตัวอย่างที่ 2-2 เครื่องหมายวงเล็บปีกกาเพื่อใช้กำหนด Block ของโค้ด
"\"เครื่องหมาย Backslash นี้ ปกติแล้วจะไม่มีใช้จริงในชีวิตประจำวัน แต่คุณจะพบได้บ่อยที่สุดใน My Computer นั่นเอง เนื่องจากว่า เป็นเครื่องหมายที่ใช้ในการบ่งบอกโฟลเดอร์ภายในเครื่องคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการ Windows (เช่น C:\Windows เป็นต้น)
แต่ในภาษาที่อยู่ในจำพวก C-Style นั้น ตัวอักษรนี้จะใช้ในการแทนค่าเป็นตัวอักษรที่ไม่สามารถพิมพ์ได้ตามปกติ อย่างเช่น Tab หรือตัวอักษรขึ้นบรรทัดใหม่
ในภาษา Visual Basic นั้นจะไม่มีการใช้การแทนที่ตัวอักษรอย่างที่เห็นอยู่นี้ แต่ผู้ออกแบบได้ใช้ชื่อค่าคงที่ แทนตัวอักษรดังกล่าวไว้ อย่างเช่น เครื่องหมาย Tab ก็คือ vbTab หรือการขึ้นบรรทัดใหม่ ก็คือค่าคงที่ที่ชื่อว่า vbCr (\r) หรือ vbCrlf (\r\n) ดังโค้ดตัวอย่างที่ 2-3 นี้ ซึ่งค่าของตัวแปร A จะเหมือนกันในทั้ง 2 ภาษา
VBC#

A = “This is ” & _
     vbCrLf &_
     “new line”

A = “This is \r\n” +
          “new line”;
โค้ดตัวอย่างที่ 2-3 การใช้ Escape Character ใน C#

ที่มา http://www.aspnetthai.com

0 ความคิดเห็น: