230 likes | 447 Views
2. เริ่มต้นใช้ Visual C# 2010 Express. สภาพแวดล้อมการทำงานที่ดี ช่วยให้เขียนโปรแกรมได้ดี. เป้าหมายการเรียนรู้. เรียนรู้สภาพแวดล้อมการใช้งาน Visual C# 2010 Express การสร้างแอปพลิเคชันด้วยด้วยคอมมานไลน์ การสร้างคอนโซลแอปพลิเคชัน การสร้างวินโดว์ฟอร์มแอปพลิเคชัน การสร้าง WPF แอปพลิเคชัน
E N D
2. เริ่มต้นใช้ Visual C# 2010 Express สภาพแวดล้อมการทำงานที่ดี ช่วยให้เขียนโปรแกรมได้ดี C# Programming with Visual C# 2010 Express
เป้าหมายการเรียนรู้ • เรียนรู้สภาพแวดล้อมการใช้งาน Visual C# 2010Express • การสร้างแอปพลิเคชันด้วยด้วยคอมมานไลน์ • การสร้างคอนโซลแอปพลิเคชัน • การสร้างวินโดว์ฟอร์มแอปพลิเคชัน • การสร้าง WPF แอปพลิเคชัน • สร้างคลาสไลบารี เพื่อส่งการใช้งานต่อไปยังแอปลิเคชันอื่น • การดีบักแอปพลิเคชัน C# Programming with Visual C# 2010 Express
คุณสมบัติหลักของ Visual C# 2010 Express VS C# 2010 Express เป็นโปรแกรมที่แยกส่วนมาเฉพาะภาษา (C#) จากเป็นชุดเต็มของ VS 2010 โดย Visual C# 2010 Express มีคุณสมบัติหลักคือ • มี IDE ที่ช่วยให้การพัฒนาเร็วขึ้นด้วยการรวมเครื่องมือที่จำเป็นในการเขียนโปรแกรม การออกแบบ การทดสอบ การหาความผิดพลาด • มี Database Explorer ในตัว ซึ่งสามารถมองเห็นฐานข้อมูลชนิดต่างๆ ได้ที่จะทำงานกับแอปพลิเคชัน • มีการจัดการความผิดพลาด • มีส่วนช่วยในการพิมพ์ IntelliSense , Template, code snippet • มีเอกสารอิเล็คทรอนิคส์และส่วนช่วยเหลือ(Help) C# Programming with Visual C# 2010 Express
Template ใน Visual C# C# Programming with Visual C# 2010 Express
โครงสร้างของ Project และ Solution C# Programming with Visual C# 2010 Express
ความหมายของไฟล์ต่างๆ ใน Visual C# 2010 C# Programming with Visual C# 2010 Express
C# เป็น Objected Programming Language ต้นแบบ - Class สร้าง - Constructor วัตถุ - Object C# Programming with Visual C# 2010 Express
การเขียนโปรแกรมสร้างเป็นวัตถุการเขียนโปรแกรมสร้างเป็นวัตถุ namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Class1 com1; com1 = new Class1(); // Constructor com1.Hello(); } } class Class1 { string answer; public void Hello() { Console.WriteLine("Hello, What your name?"); answer = Console.ReadLine(); Console.WriteLine("Hello, {0}", answer); Console.ReadKey(); } } } C# Programming with Visual C# 2010 Express
ตัวอย่างการสร้างวัตถุ ด้วย Console Application using System; namespace ConsoleApplication1 { using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Home h = new Home(); h.address = “Bangkok"; Console.WriteLine("Address:{0}", h.address); } } class Home { public string address; } } } C# Programming with Visual C# 2010 Express
การสร้างแอสแซมบลีจากคอมมานด์ไลน์การสร้างแอสแซมบลีจากคอมมานด์ไลน์ • คอมไฟล์โปรแกรมได้ทั้งจากเมนู Debug > Start Debugging หรือใช้ผ่าน คอมมานด์พรอมต์ ด้วยคำสั่ง csc • ส่วนที่คอมไฟล์ได้แล้ว จะได้ไฟล์ นามสกุล .exe หรือ .dll จะเรียกไฟล์นี้ว่า แอสแซมบลี • ไฟล์ แอสแซมบลี สามารถนำไปใช้งาน ด้วยตัวเอง (.exe) หรือใช้โปรแกรมอื่นใช้งาน (.dll) C# Programming with Visual C# 2010 Express
การสร้างวินโดว์ฟอร์มแอปพลิเคชันการสร้างวินโดว์ฟอร์มแอปพลิเคชัน • วินโดว์ฟอร์มแอป. มีใช้งานตั้งแต่รุ่นแรกๆ ของภาษาในรูปแบบ Visual • เลือกสร้าง Application จาก Template แล้วเลือกเป็นแบบWindows Forms Application • ใช้เน้นติตต่อกับผู้ใช้งานด้วยรูปกราฟิก (User Interface) ซึ่งเรียกว่าคอนโทรล (เพราะมีส่วนที่มองเห็นและดำเนินการได้) • คอลโทรล เกือบทั้งหมดอยู่ใน Tool Box • มีลักษณะการทำงานแบบ Event Driven C# Programming with Visual C# 2010 Express
การสร้าง WPF แอปพลิเคชัน • WPF แอป. ตั้งใจจะมาทดแทน Windows Forms ในรูปแบบไฟล์ XAML (อ่านว่า แซม-มอล) ย่อมาจาก eXtensible Application Markup Language) • เลือกสร้าง Application จาก Template แล้วเลือกเป็นแบบWindows WPF Application • โดยทั่วไปยังคงเขียนโปรแกรมคล้ายกับ Windows Form ในลักษณะการทำงานแบบ Event Driven • Silverlight เป็นส่วนย่อย และย่อของ WPF แต่ทำงานกับ Brower หรือ คอมพิวเตอร์ทีกินทรัพยากรน้อยกว่า และต้องการความปลอดภัยกว่า C# Programming with Visual C# 2010 Express
ข้อดี และเสีย ของการใช้ WPF ข้อดี • ทำงานร่วมกับชิปประมวลภาพสมัยใหม่ได้ดีกว่าเดิม สนับสนุน DirectX, Direct3D (ของเดิม วินโดว์ฟอร์ม ใช้ GDI, GDI+) • แยก ส่วนการแสดงผลและตรรกะการทำงานออกจัดกันชัดเจน (ให้ลองนึกถึงการใช้ CSS, HTML, PHP) • บรรจุอ๊อปเจ็คต่างๆ ได้ไม่จำกัด จากของเดิม Label ก็บรรจุได้เพียงอักษร และมีข้อดีอื่นๆ อีกมากมาย ข้อเสีย • ผู้ใช้ต้องเรียนรู้ใหม่ ซึ่งหมายความว่าต่อไป รุ่นเดิมจะไม่พัฒนาต่อแล้ว (แต่ยังมีใครหลายคนพัฒนาโปรแกรมโบราณ เช่น VB6) • ขณะนี้คอนโทรลบางตัวหายไป เช่น DateTimePicker C# Programming with Visual C# 2010 Express
ไฟล์หลักใน WPF แอปพลิเคชัน C# Programming with Visual C# 2010 Express
ตัวอย่างคอนโทรลของ WPF C# Programming with Visual C# 2010 Express
อีเว้นท์ ในคอนโทรลของ WPF คอนโทรลของ Button ในไฟล์ .xaml <Button Name="Button1" Click="Button1_Click"> OK </Button> เมธอดที่รับการทำงานคอนโทรลของ Button ในไฟล์ .cs private void Button1_Click(object sender, RoutedEventArgs e) { // Code to do something here. } C# Programming with Visual C# 2010 Express
การสร้างคลาสไลบรารี • คลาสไลบรารี คือโปรแกรมที่สร้างเพื่อให้โปรแกรมอื่นๆ ได้ใช้งาน • คอมโพเน้นท์ (Component) จัดเป็นคลาสไลบรารี่อย่างหนึ่ง ที่ให้โปรแกรมอื่นๆ นำไปใช้งาน • คอนโทรล ก็เป็นคลาสไลบรารี่อย่างนี้ แต่ใช้เป็น GUI • การสร้างคลาสไลบรารี่เริ่มจาก การเลือกโปรเจ็คใหม่แล้วเลือกเทมเพลท เป็น class Library • คลาสไลบรารี่จะไม่มีเมธอด Main( ) ซึ่งเมธอดนี้จะเป็นจุดเริ่มต้นให้โปรแกรมทำงานได้ คลาสไลบรารี่ จึงเปรียบเสมือนสร้างเป็นหน้าที่การทำงานให้โปรแกรมเรียกใช้ C# Programming with Visual C# 2010 Express
ตัวอย่างการเรียกใช้ Class1 namespace ClassLibrary1{ public class Class1 { private String anser; public Class1() { Console.WriteLine("Hello, What your name?"); anser = Console.ReadLine(); Console.WriteLine("Hello, {0}", anser); Console.ReadKey(); } } } using ClassLibrary1; namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Class1 com1; com1 = new Class1(); }}} C# Programming with Visual C# 2010 Express
Debugging & Tool • การดีบัก (Debugging) โดยใช้ Visual C# 2010 Express ที่มีเครื่องมือแก้ไข ตรวจสอบการทำงานที่ผิดพลาด โดยเฉพาะความผิดพลาดทางตรรกะ หรือแนวคิด (logic error) เช่น เราคาดว่าโปรแกรมน่าทำงานในแนวทางที่ตั้งใจไว้ แต่ผลลัพธ์กลับไม่เป็นไปตามที่คาดหวัง นั้นแสดงว่าเกิดความผิดพลาดในแนวคิด C# Programming with Visual C# 2010 Express
ความหมายของเมนู Debug C# Programming with Visual C# 2010 Express
ทำถามทบทวน • เราสามารถเขียนโปรแกรมด้วย ซีชาร์ป ได้ด้วยโปรแกรม Notepad.exe ได้หรือไม่ หากทำได้ทำไมเราไม่ใช้โปรแกรม Notepad.exe เขียน ซีชาร์ป • เราควรเลือกเทมเพลทใดสำหรับ แอปพลิเคชันและความต้องการต่อไปนี้ • สร้างแอปพลิเคชันที่ทำงานวินโดว์ ที่ส่วนติดต่อกับผู้ใช้เป็นกราฟฟิก • สร้างแอปพลิเคชันที่ทำงานบนเบราเซอร์ชนิดต่างๆ ได้ • สร้างหน้าที่การทำงานที่ให้แอปพลิเคชันอื่นนำไปใช้งาน • การเรียกเปิดโปรเจ็ค หรือโซลูชั่น ควรเรียกจากไฟล์ใด • ถ้าต้องการคลาส Console ซึ่งอยู่ในส่วนหนึ่งเนมสเปส System จะเรียกใช้คลาสคลาสนี้ได้อย่างไร • เมทธอด Main ของคอนโซลแอปพลิเคชันมีไว้เพื่ออะไร • ทำไมจึงควรเลือกใช้พัฒนาด้วย WPF มากใช้วินโดว์ฟอร์ม • การสร้างคลาสไลบารีมาใช้เองเพื่ออะไร • ทำไมมักใช้เครื่องมือดีบักแก้ไขความผิดพลาดทางตรรกะ (logic error) มากกว่าใช้เครื่องมือดีบักแก้ไขความผิดพลาดในไวกรณ์ภาษา (syntax error) • ไฟล์ .XAML คล้ายกับภาษาอะไร และทำหน้าคล้ายกับภาษาอะไร • การสร้างอีเวนท์ของให้คอนโทรของ WPF แอปพลิเคชัน จะต้องระบุชื่ออีเวนท์ และชื่อเมทธอดที่รับการทำงานของอีเวนท์ที่ไฟล์ใด • เหตุการณ์ใดที่ต้องการใช้การดีบัก Step Into และ Step Over C# Programming with Visual C# 2010 Express
Lab2.1 สร้างโปรแกรมด้วยการใช้คอมมานไลน์ • เขียนตามโค้ด 2.1 ด้วยโปรแกรม Notepad และบันทึกไฟล์ชื่อ Lab2.1.cs • คอมไฟล์ไฟล์ ด้วยคำสั่ง csc Lab2.1.cs ในโหมด Command Prompt(ต้องไปยังไดเร็กทรอรี่ที่มีไฟล์ Lab2.1.cs ก่อน ใช้คำสั่ง cdเพื่อเปลี่ยนไดเร็กทรอรี่ เช่น cd c:\temp หมายถึง ไปยังใดเร็กทรอรี่ temp) • ดับเบิลไฟล์ผลลัพธ์ Program.exe และสังเกตผลลัพธ์ จะได้ “Hello World” C# Programming with Visual C# 2010 Express
Lab2.2 สร้างโปรแกรมด้วยการใช้คอมมานไลน์ และการรับตัวแปรเข้า • เขียนโค้ดด้วยโปรแกรม Notepad และบันทึกไฟล์ชื่อ Lab2.2.cs • คอมไฟล์ไฟล์ ด้วยคำสั่ง csc Lab2.2.cs ในโหมด Command Prompt • ในโหมด Command Prompt พิมพ์คำสั่ง Lab2.2.exe และสังเกตผลลัพธ์จะปรากฏ “args must equal 2” • ในโหมด Command Prompt พิมพ์คำสั่ง Lab2.2.exe 1 2 และสังเกตผลลัพธ์(มีผลดังรูปด้านล่างนี้) C# Programming with Visual C# 2010 Express