บทนำ
หนังสือเล่มนี้คือทางเลือกสำหรับผู้ที่ต้องการเรียนรู้วิธีคิด และวิธีเขียนโค้ดแบบ OOP แต่ไม่ต้องการเข้าอบรมในชั้นเรียน หากท่านอ่านหนังสือเล่มนี้อย่างตั้งใจ และทำแบบฝึกหัดต่างๆ โดยครบถ้วน ท่านก็จะเข้าใจหลักการ OOP สามารถเขียนโปรแกรมตามแนวคิด OOP และมีพื้นความรู้เพียงพอแก่การศึกษาในระดับสูงต่อไป
ในหนังสือเล่มนี้ ท่านจะได้เรียนรู้เรื่องที่สำคัญอย่างยิ่งต่อวิชาชีพซอฟท์แวร์ในอนาคตสามเรื่องคือ .NET Framework, วิธีสร้าง Web Application และการเขียนโปรแกรมภาษาด้วย C#
หนังสือนี้แม้จะครอบคลุมเนื้อหาเบื้องต้น ระดับกลาง และระดับก้าวหน้าของภาษา C# ไว้ทั้งหมด แต่มันก็ไม่ใช่หนังสือที่สอนไวยากรณ์ในภาษา C# (เช่น ไม่สอนว่าคำสั่ง if else ใช้อย่างไร คำสั่ง do while มี syntax อย่างไรเป็นต้น) หากท่านต้องการหนังสือที่มีรายละเอียดทุกคำสั่งในภาษา C# ผู้เขียนขอแนะนำหนังสือชื่อ The C# Programming Language (Hejlsberg สำนักพิมพ์ Addison Wesley) หรือศึกษาได้จากเอกสาร และเว็บไซต์ MSDN (Microsoft development network)
เป้าหมายหลักของหนังสือเล่มนี้คือสอนวิธีคิด วิธีเขียนโปรแกรมตามหลักการ OOP โดยใช้ภาษา C# เป็นสื่อในการสอน และแสดงตัวอย่างการประยุกต์ใช้งานเป็น web application ซึ่งเป็นเว็บไซต์ที่มีองค์ประกอบสมบูรณ์ สามารถใช้งานได้จริงๆ เพื่อแสดงการนำ OOP มาใช้แก้ปัญหาที่เกิดขึ้นจริง
คุณสมบัติและจุดมุ่งหมายของหนังสือเล่มนี้มีดังต่อไปนี้
- หากท่านคือนักเขียนโค้ดแบบเดิมๆ ที่ต้องการเปลี่ยนวิธีทำงานมาเป็นแบบ OOP นี่คือหนังสือที่เหมาะสำหรับท่าน
- หากท่านคือบุคคลทั่วไปที่สนใจ และต้องการศึกษาหลักการ OOP นี่คือหนังสือที่เหมาะสำหรับท่าน
- หากท่านต้องการเรียนวิธีสร้าง web application แบบ ASP.NET2.0 โดยใช้ภาษา C# นี่คือหนังสือที่ท่านกำลังมองหา
- หากท่านคือนักเขียนโค้ดภาษา VB ที่ต้องการเริ่มเรียนภาษา C# นี่คือหนังสือที่ท่านต้องการ
- หากท่านคือนักเขียนโค้ดที่เขียนโปรแกรมมาหลายปีแล้ว แต่ยังไม่สามารถเปลี่ยนวิธีคิดให้เป็น OOP ได้ นี่คือหนังสือที่เหมาะสำหรับท่าน
- หากท่านเขียนโค้ดภาษาใดภาษาหนึ่งเป็นแล้ว (เช่น C, C++, JavaScript, VBScript, PHP, Lingo และ ActionScript) แต่ต้องการเปลี่ยนมาเขียนภาษา C# หนังสือเล่มนี้เหมาะสำหรับท่าน
- หากท่านเป็นนักเขียนโค้ดภาษา Java ที่ต้องการเปลี่ยนสายมาเขียน C# ท่านจะพบว่าหนังสือเล่มนี้ อาจช่วยท่านหลบเลี่ยงหลุมพรางต่างๆ ในระหว่างการเดินทางได้
- หากท่านเขียนภาษา C# ได้ แต่ไม่เข้าใจ OOP นี่คือหนังสือที่เหมาะสำหรับท่าน• หากท่านต้องการเขียนโปรแกรมเพื่อใช้งานฐานข้อมูลแบบ Access, MS-SQL และ MySQL โดยใช้หลักการ OOP นี่คือหนังสือที่เหมาะสำหรับท่าน
- หนังสือเล่มนี้ไม่ใช่หนังสือสอนวิชาคอมพิวเตอร์ระดับเบื้องต้นที่สุด หากท่านยังไม่เคยเขียนโปรแกรมมาก่อนเลย ท่านควรอ่าน หรือเรียกการเขียนโปรแกรมเบื้องต้นมาก่อนสักเล็กน้อย
- หนังสือเล่มนี้ไม่ใช่หนังสือสอนภาษา C# ระดับก้าวหน้าที่สุด หากท่านเป็นนักเขียนโค้ดระดับก้าวหน้าที่สุด ท่านอาจพบว่าหนังสือเล่มนี้ไม่มีเนื้อหาที่ให้ความรู้เพิ่มเติมแก่ท่านได้
- ภาษา C# ที่สอนในหนังสือเล่มนี้คือ C#2.0 และจะมีอธิบายส่วนที่เพิ่มเติมใน C#3.0 ด้วย
จุดมุ่งหมายหลักของหนังสือเล่มนี้คือการช่วยให้ท่านเข้าใจหลักการ OOP สามารถคิดเป็น OOP และเขียนโปรแกรมตามหลักการ OOP ได้ การจะทำเช่นนั้นได้ ท่านจำเป็นต้องเข้าใจทั้งภาคทฤษฏีและภาคปฏิบัติ ตัวอย่างโครงงานที่นำมาใช้ เพื่อแสดงวิธีประยุกต์ใช้หลักการ OOP คือการสร้างเว็บไซต์ catalog สินค้าแบบ ASP.NET
ซอฟท์แวร์ที่ใช้ในการเรียนการสอน
การเขียนโปรแกรมภาษา C# เพื่อทดสอบหลักการ OOP ท่านอาจใช้เพียง Text editor อย่าง Windows Notepad ก็ได้ แต่เพื่อให้เขียนโปรแกรมได้สนุกขึ้น ท่านควรใช้เครื่องมืออำนวยความสะดวกในการเขียนโปรแกรม ผู้เขียนขอแนะนำให้ใช้ Microsoft Visual Studio 2005 หรือ Express Edition ที่ท่านสามารถ download ได้ฟรีจาก
http://msdn.microsoft.com/vstudio/express/
ท่านควร download โปรแกรม Visual C# 2005 Express Edition เพื่อทดสอบการเขียนโปรแกรมภาษา C# แบบ desktop (WinForm และ console application) และ download โปรแกรม Visual Web Developer 2005 Express Edition เพื่อทดสอบการเขียนโปรแกรมแบบ web application และ download โปรแกรม SQL Server 2005 Express หากต้องการทดสอบการทำงานกับฐานข้อมูลแบบ MS-SQL และท่านควร download MSDN Library Express หากต้องการข้อมูลอ้างอิงต่างๆ แบบ off-line
ASP.NET ที่จะใช้แสดงตัวอย่างเป็น ASP.NET 2.0 สิ่งที่ท่านจำเป็นต้องใช้เพื่อทดสอบโปรแกรม และทำแบบฝึกหัดคือเครื่องคอมพิวเตอร์ที่มีระบบปฏิบัติการ Windows XP, Windows Server 2003 หรือสูงกว่า หรือ Windows Vista ที่ติดตั้ง IIS (Internet Information Service) ไว้แล้ว หากยังไม่ได้ติดตั้ง ท่านสามารถติดตั้งโปรแกรม IIS ได้จากแผ่น CD Windows XP Professional, Windows Server 2003-2005 หรือ Windows Vista (ใน Windows Vista จะเป็น IIS เวอร์ชัน 7) โดยการเลือก Add/Remove
นอกจาก Windows XP และ IIS แล้วท่านยังจำเป็นต้องมี .NET Framework version 2.0 ซึ่งท่านสามารถ download มาติดตั้งได้ฟรีจากเว็บไซต์ http://www.microsoft.com/downloads
ผู้เขียนจะไม่อธิบายรายละเอียดวิธี download และติดตั้งโปรแกรมเหล่านี้ เพราะมีวิธีการเช่นเดียวกับการ download และติดตั้งโปรแกรมทั่วไป
ตัวอย่างการทำงานของเว็บไซต์
ผู้เขียนได้จดทะเบียนและเปิดใช้งานเว็บไซต์ตัวอย่าง เพื่อให้ท่านสามารถทดสอบการทำงานของเว็บไซต์ที่ท่านจะได้เรียนวิธีสร้างในหนังสือเล่มนี้ คือ http://www.thailand2siam.com/ ซึ่งเป็นเว็บไซต์ที่ใช้งานจริงโดยสมบูรณ์ ท่านจึงสามารถทดลอง function ต่างๆ ของโปรแกรมได้ทั้งหมด เช่นการ เรียกดูรายการสินค้า การเพิ่ม ลบ แก้ไข ข้อมูลสินค้า
หากท่านต้องการทดลองแก้ไขข้อมูลสินค้า โปรดเข้าไปในหน้า sign-on และใช้ข้อมูลดังนี้
User name : reader
Password : reader
วิธีเข้าถึง Source code
ในหนังสือเล่มนี้ผู้เขียนอธิบายหลักการออกแบบ และหน้าที่ของโปรแกรมโดยละเอียด โดยแยกอธิบายแต่ละส่วน แต่เพื่อไม่ให้หนังสือหนามากเกินไป ผู้เขียนจึงไม่ตีพิมพ์ Source code ของทุกคลาสซ้ำรวมกันทั้งหมดอย่างต่อเนื่อง หากท่านต้องการดู Source code ที่ต่อเนื่อง หรือต้องการดาวน์โหลด Source code ทั้ง project เพื่อนำมาทดลองคอมไพล์ในเครื่องของท่านๆ สามารถดาวน์โหลดได้จากหน้า www.thailand2siam.com/download โดยท่านอาจเลือก download เพียงบางส่วน คลาส บางหน้าเว็บ หรือจะดาวน์โหลดทีเดียวทั้งหมดก็ได้ (user name และ password คือ reader)
การถามคำถามและการปรับปรุงข้อมูล
หากท่านต้องการถามคำถามที่เกี่ยวข้องกับหนังสือเล่มนี้ หรือติชม หรือให้ข้อแนะนำใดๆ หรือต้องการสื่อสารกับผู้เขียน โปรด post ข้อความของท่านไว้ในเว็บบอร์ด www.thailand2siam.com/messageboard ผู้เขียนจะตอบคำถามทุกข้อโดยเร็วที่สุดเท่าที่จะทำได้
การตรวจทานความถูกต้องของต้นฉบับของหนังสือเล่มนี้ แม้จะทำอย่างอย่างประณีต แต่กระนั้นหาผู้เขียนพบหรือได้รับรายงานข้อผิดพลาดใดๆ ภายหลังหนังสือออกจำหน่ายไปแล้ว ผู้เขียนจะ post การแก้ไขไว้ในเว็บบอร์ดนี้
เนื้อหาโดยย่อของหนังสือ
หนังสือเล่มนี้แบ่งออกเป็นสองภาค คือจากบทที่ 1 ถึงบทที่ 6 เป็นภาคทฤษฏี และบทที่ 7 ถึงบทที่ 21 เป็นภาคปฏิบัติ ตอนท้ายเล่มจะมีข้อสอบ เฉลยแบบฝึกหัดในแต่ละบท และเฉลยข้อสอบ
เนื้อหาโดยสังเขปของแต่ละบทเป็นดังนี้
บทที่ 1 การเขียนโปรแกรมแบบ OOP: อธิบายหลักการ และความเป็นมาของหลักการ OOP อธิบายหลักการพื้นฐานที่สุดของ OOP คือ Encapsulation, Inheritance และ Polymorphism โดยสังเขป แนะนำให้รู้จักกับแนวคิดและคำศัพท์ เพื่อเตรียมให้ผู้อ่านพร้อมสำหรับเนื้อหาในบทต่อๆ ไป แนะนำ .NET Framework อย่างกว้างๆ ในระดับพื้นฐาน
บทที่ 2 .NET Framework และคลาสไลบรารี: แนะนำใช้รู้จักกับคลาสไลบรารีของ .NET Framework หน้าที่และการทำงานของ CLR การประมวลผลแบบกระจาย ลักษณะของ managed code องค์ประกอบของ CLR แนวคิดและคำศัพท์ของ .NET Framework การจัดสรรหน่วยความจำ การทำงานของ stack และ heap หลักการทำงานของ Garbage collector การแบ่งหมวดหมู่ของ namespace และวิธีเขียนโปรแกรมเพื่อเรียกใช้คลาสต่างๆ ใน .NET Framework
บทที่ 3 ภาษา C# ระดับพื้นฐาน: อธิบายโครงสร้างภาษา C# วิธีสร้างและใช้งาน namespace อธิบายการใช้ type ทั้งแบบ value type และ Reference type การทำ boxing และ unboxing อธิบายวิธีสร้างคลาส สร้าง struct วิธีตั้งชื่อให้กับสิ่งต่างๆ ในโปรแกรม นิพจน์ และการประกาศ
บทที่ 4 ภาษา C# ระดับปานกลาง: อธิบายสิ่งที่จำเป็นต้องรู้ในการเขียนโปรแกรมภาษา C# เช่น Statement, สมาชิกของคลาสและ struct Access modifier, Type modifier, Assembly, Field, properties, Method, constructor, destructor, method, Parameter, method Signature และ method overloading
บทที่ 5 ภาษา C# ระดับก้าวหน้า: ลักษณะพิเศษต่างๆ ของภาษา C# เช่นสิ่งที่เกี่ยวเนื่องกับการทำ Inheritance อันได้แก่ Versioning, Abstract, Interface คุณสมบัติก้าวหน้าของภาษา C# 2.0 เช่น IEnumerator, Indexer, Iterator, yield, Regex (Regular Expression), Generic, Operator overloading, Delegate, Pointer และ Unsafe Code คุณสมบัติก้าวหน้าของภาษา C# 3.0 อาทิ Implicitly typed local variables, Lambda expressions, Object และ collection initializes, Anonymous types, Implicitly typed arrays, Query expressions และExpression trees
บทที่ 6 การเขียนโปรแกรมบนเว็บด้วยภาษา C#: อธิบายความเป็นมาของการเขียนโปรแกรมในเว็บ ที่เรียกว่า web application ส่วนประกอบของ ASP.NET ตัว Framework และ control ต่างๆ โครงสร้างของเว็บไซต์แบบ ASP.NET ไฟล์ชนิดต่างๆ ขั้นตอนการทำงานของหน้าเว็บแบบ ASP.NET หลักการ post back และ round trips, server control และ event สถาปัตยกรรมของ ASP.NET, web user control และการใช้งานร่วมกับ CSS แนะนำโครงสร้างและการทำงานของเว็บไซต์ http://www.thailand2siam.com/ โดยย่อ
บทที่ 7 คลาสที่เป็นรากฐานของทั้งเว็บไซต์: สาทิตวิธีแก้ปัญหาเรื่อง design consistency โดยใช้ประยุกต์ใช้หลักการ OOP
บทที่ 8 คลาสสร้างส่วนประกอบมาตรฐานของเว็บไซต์: อธิบายวิธีสร้างเว็บไซต์ที่ผู้นำโค้ดไปใช้สามารถ customize เว็บไซต์ได้โดยสะดวกและรวดเร็ว
บทที่ 9 สร้างเมนูให้เป็น object: อธิบายเบื้องหลังวิธีคิดในการสร้าง object โดยยกตัวอย่างวิธีออกแบบและสร้างเมนูที่ใช้งานได้จริงในเว็บไซต์
บทที่ 10 การสร้างหน้าเว็บ: สาทิตการนำหลักการ inheritance มาใช้ในการสร้างหน้าเว็บ
บทที่ 11 คลาสจัดการฐานข้อมูลสินค้า: สาทิตการประยุกต์ใช้หลักการ abstract, information hiding และ encapsulation เพื่อสร้าง object ฐานข้อมูล
บทที่ 12 คลาสแสดงรายการสินค้า: สาทิตการสร้าง object ที่ห้อหุ้มข้อมูลจากฐานข้อมูล และวิธีนำ object ไปใช้ในหน้าเว็บ
บทที่ 13 คลาสแสดงรายละเอียดสินค้า: สาทิตการใช้โค้ดภาษา HTML ร่วมกับโค้ดภาษา C# เพื่อสร้าง object บนหน้าเว็บแทนการใช้ Web Server Control
บทที่ 14 การประยุกต์ใช้งาน delegate และ event กับเครื่องแปลงค่าเงิน: สาทิตวิธีประยุกต์ใช้งาน delegate ซึ่งเป็น function pointer แบบ OOP
บทที่ 15 การประยุกต์ใช้ Constructor, Destructor และสมาชิกอื่นๆ ของคลาส: สาทิตวิธีประยุกต์ใช้ความรู้เกี่ยวกับ Garbage collector และ enum การทำงานกับ Web Server Control
บทที่ 16 การใช้ Web server control โดยการเขียนโค้ด: สอนเทคนิคการใช้ Web Server Control ด้วยการเขียนโค้ดแทนการลาก-หยอดใน designer ของ Visual Studio .NET
บทที่ 17 สร้าง ASP.NET User Control เพื่อท่องไปในรายการสินค้า: สาทิตวิธีสร้างและใช้งาน object แบบ User Control
บทที่ 18 สร้างหน้า Log-In และคลาสจัดการสิทธิของผู้ใช้: สาทิตวิธีประยุกต์ใช้ฐานข้อมูล session variable และการใช้ AccessDataSource Control
บทที่ 19 หน้าเว็บเพื่อการแก้ไข เพิ่ม และลบข้อมูลสินค้า: แสดงวิธีสร้าง Web User Control เพื่ออำนวยความสะดวกในการแก้ไขข้อมูลสินค้า
บทที่ 20 คลาสเพิ่มและเปลี่ยนภาพสินค้า: สาทิตวิธีประยุกต์ใช้ GDI+ เพื่อจัดการภาพสินค้า วิธี upload file สู่ server วิธีแปลง format ภาพ วิธีย่อ-ขยายภาพ
บทที่ 21 นำทุกอย่างมารวมกันและเปิดใช้งานเว็บไซต์: สอนเทคนิคการทำ ASP.NET web application deployment
No comments:
Post a Comment