ตอน 8 : .NET Framework และคลาสไลบรารี

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย


เว็บไซต์นี้เป็นตัวอย่างเนื้อหาบางตอนในหนังสือ "เรียนรู้ด้วยตนเอง OOP C# ASP.NET" ครอบคลุม บทที่ 1 ถึงบทที่ 6 (ในหนังสือมี 21 บท) เนื้อหาใน Blog อาจอาจแตกต่างจากในหนังสือเพราะเป็นเนื้อหาที่ยังไม่ได้ตรวจแก้ขัดเกลา (edit)

กดที่นี่เพื่อดูรายละเอียดเนื้อหาในแต่ละบท

กดที่นี่เพื่อไปยังเว็บบอร์ด ถาม-ตอบ 

 

 

บทที่ 2 .NET Framework และคลาสไลบรารี

เมื่อท่านต้องการนำโปรแกรมที่ท่านเขียนด้วยภาษา C# ไปใช้ในคอมพิวเตอร์เครื่องใด คอมพิวเตอร์นั้นจะต้องติดตั้งโปรแกรม Microsoft .NET Framework ไว้ก่อน หากท่านสร้าง Web application ด้วยภาษา C# ท่านต้องติดตั้ง Web application นั้นไว้ใน web server ที่เป็น ASP.NET server ซึ่งมี .NET Framework ติดตั้งอยู่เช่นกัน ส่วนผู้ใช้งาน Web application ของท่านไม่จำเป็นต้องมี .NET Framework ก็ได้

Microsoft .NET Framework (อ่านว่าไมโครซอฟท์ ดอตเนต เฟรมเวิร์ค ต่อไปจะเรียกโดยย่อว่า MNF) คือชิ้นส่วนซอฟท์แวร์ (software component) ที่เพิ่มเข้าไปในระบบปฏิบัติการวินโดวส์ ของบริษัทไมโครซอฟท์ ประกอบด้วยโปรแกรมต่างๆ ที่จัดเตรียมไว้ให้นักเขียนโค้ด ซึ่งเป็นโปรแกรมย่อยต่างๆ ที่ใช้เพื่อต่อยอด สร้างโปรแกรมประยุกต์ใช้งานทั่วๆ ไป และยังมีส่วนจัดการโปรแกรมที่เขียนขึ้นเพื่อทำงานใน MNF โดยเฉพาะ MNF เป็นหัวใจหลักที่บริษัทไมโครซอฟท์เจตนาให้นักเขียนโค้ดทั่วไปใช้เพื่อสร้างซอฟท์แวร์ประยุกต์ใหม่ๆ ในระบบปฏิบัติการวินโดวส์

 

ภาพ 201: หน้าเว็บเกี่ยวกับ .NET Framework ในเว็บไซต์ MSDN

 

โปรแกรมต่างๆ ที่จัดเตรียมไว้ให้นักเขียนโค้ดคือส่วนที่เรียกว่า คลาสไลบรารี (class library) ครอบคลุมการเขียนโปรแกรมในด้านต่างไว้อย่างกว้างขวาง อาทิ ส่วนติดต่อกับผู้ใช้ ส่วนติดต่อกับฐานข้อมูล ส่วนเข้ารหัสข้อมูล อัลกอริทึมทางคณิตศาสตร์ และส่วนสื่อสารกับระบบเครือข่าย โดยนักเขียนโปรแกรมจะนำคลาสไลบรารีมาผนวกกับโค้ดที่ตนเขียนเพื่อผลิตเป็นโปรแกรมประยุกต์

โปรแกรมที่เขียนขึ้นเพื่อให้ทำงานภายใต้ MNF จะถูกควบคุมการทำงานภายใต้ตัวจัดการสภาพแวดล้อมที่เรียกว่า Common Language Runtime (อ่านว่า คอมมอน แลงเกวจ รันทามน์ ต่อไปจะเรียกย่อว่า CLR) ตัว CLR ทำหน้าที่สร้างเครื่องคอมพิวเตอร์เทียม (virtual machine เป็นซอฟท์แวร์ที่ทำงานอยู่ในคอมพิวเตอร์ที่มี MNF) ทำให้ผู้เขียนโปรแกรมประยุกต์ไม่ต้องกังวลถึงลักษณะของ CPU ในเครื่องที่จะนำโปรแกรมไปใช้งาน นอกจากนั้น CLR ยังจัดให้มีระบบรักษาความปลอดภัย ส่วนบริหารหน่วยความจำ และส่วนจัดการกับความผิดพลาด

คลาสไลบรารีและ CLR คือองค์ประกอบหลักของ MNF (ดังที่เห็นในภาพ 202) เพื่อให้การสร้างโปรแกรมประยุกต์ทำได้ง่ายขึ้น ลดความเสี่ยงต่อการรบกวนกันระหว่างโปรแกรมประยุกต์และระบบปฏิบัติการ MNF เริ่มถูกเผยแพร่เมื่อปี ค.ศ. 2002 มันถูกผนวกไว้กับ Windows Server 2003 และ Windows Vista สามารถทำงานได้ใน Windows 98 และวินโดวส์ที่ใช้ในคอมพิวเตอร์พกพา เวอร์ชันปัจจุบันคือเวอร์ชัน 2.0 ออกเมื่อธันวาคม ค.ศ. 2500 และใช้ง่านร่วมกับ Visual Studio 2005

 

ภาพ 202: องค์ประกอบพื้นฐานในการพัฒนาโปรแกรมสำหรับ .NET กรอบบนสุดคือภาษาสำหรับ .NET ที่บริษัทไมโครซอฟท์จัดไว้ให้สี่ภาษา กรอบกลางคือตัว .NET Framework ที่สนับสนุนทั้งโปรแกรมแบบ desktop application เรียกว่า WinForm และโปรแกรมที่ทำงานในอินเตอร์เน็ตซึ่งใช้เทคโนโลยี ASP.NET โปรแกรมที่ทำงานในอินเตอร์เน็ตมีสองแบบคือ WebForm และ Web Service

ในกรอบกลางจะเห็นว่าองค์ประกอบหลักของ .NET Framework คือ .NET Framework class library และ Common Language Runtime โดย .NET Framework จะทำหน้าที่เป็นตัวกลางระหว่างโปรแกรมประยุกต์และ Microsoft Windows (Win32)

 

การเขียนโปรแกรมภาษา C# เป็นการเขียนโปรแกรมที่ทำงานภายใต้ MNF การทำความเข้าใจกับองค์ประกอบและโครงสร้างของ MNF จึงเป็นสิ่งที่มีประโยชน์ เพราะจะช่วยให้ท่านเข้าใจภาษา C# และการเขียนโปรแกรมใน MNF ได้ดีขึ้น ในบทนี้ผู้เขียนจะแนะนำ บทบาท และหน้าที่ขององค์ประกอบต่างๆ ใน MNF เท่าที่นักเขียนโปรแกรมจำเป็นต้องรู้

เรื่องพื้นฐานที่จำเป็นต้องรู้เกี่ยวกับ .NET Framework

โปรแกรมที่เขียนให้ทำงานใน MNF จะมีความยืดหยุ่นสูง พัฒนาได้รวดเร็ว มีเสถียรภาพดี ปัจจุบันมีตัวแปลภาษาสำหรับ MNF เป็นจำนวนมาก อาทิ Ada, APL, Cobol, Fortran, Java, LISP, RPG, Pascal และอื่นๆ อีกรวมทั้งหมดประมาณ 60 ภาษา (ดูรายการภาษาทั้งหมดได้ที่ http://www.dotnetpowered.com/languages.aspx) ทุกโปรแกรม (ไม่ว่าจะถูกเขียนด้วยภาษาใดก็ตาม) จะถูกแปลเป็นภาษา MSIL (Microsoft Immediate Language ภาษากลางของไมโครซอฟท์) ก่อนจึงจะทำงานภายใต้ MNF ได้ โดย MNF จัดให้มีบริการต่างๆ ดังนี้

บริการของ .NET Framework

  • เครื่องมือสำหรับอำนวยความสะดวกในการพัฒนาโปรแกรมประยุกต์ใช้งาน
  • สภาพแวดล้อมขณะโปรแกรมประยุกต์ทำงาน
  • โครงสร้างพื้นฐานของ server
  • ซอฟท์แวร์อัจฉริยะต่างๆ เพื่อช่วยให้เขียนโค้ดน้อยลงและทำงานได้มีประสิทธิภาพขึ้น

รูปแบบโปรแกรมประยุกต์ที่ .NET Framework สนับสนุน

  • โปรแกรมสำหรับทำงานใน Microsoft Windows
  • โปรแกรมสำหรับทำงานใน Web และ Web service
  • โปรแกรมสำหรับทำงานในอุปกรณ์พกพา เช่นโทรศัพท์มือถือ เครื่อง PDA เครื่องเล่นเกม

เป้าหมายของ .NET Framework

  • เป็นสภาพแวดล้อมเพื่อการพัฒนาโปรแกรมแบบ OOP
  • โปรแกรมประยุกต์สามารถทำงานร่วมกับระบบอินเตอร์เน็ตได้ดี
  • เป็นสภาพแวดล้อมที่ทำให้การติดตั้งโปรแกรมประยุกต์ทำได้ง่าย
  • เป็นสภาพแวดล้อมที่ทำให้การปรับเปลี่ยนเวอร์ชันทำได้ง่าย
  • เป็นสภาพแวดล้อมที่ปลอดภัยจากโปรแกรมที่ทำให้เครื่อง hang
  • การสร้างและการใช้งานโปรแกรมประยุกต์ใน Windows, web และอุปกรณ์พกพาจะมีลักษณะคล้ายคลึงกัน
  • มีมาตรฐานที่ทำให้โปรแกรมใน MNF เข้ากันได้กับโค้ดอื่นๆ

การประมวลผลแบบกระจาย

ความแพร่หลายของระบบเครือข่ายอินเตอร์เน็ต และ intranet (เครือข่ายปิดภายในหน่วยงาน) ทำให้การสร้างซอฟท์แวร์เพื่อให้คอมพิวเตอร์หลายๆ เครื่องทำงานร่วมกันได้เป็นเรื่องจำเป็น ในหนังสือเล่มนี้ผู้เขียนจะสอนวิธีสร้าง Web application ที่เป็น catalog สินค้า การทำงานเช่นนี้เป็นการประมวลผลแบบกระจาย (Distributed computing) ซึ่งมีสถาปัตยกรรมหลายแบบเช่น

  • Peer-to-peer คอมพิวเตอร์ทุกเครื่องในเครื่องข่ายมีความรับผิดชอบเสมอกัน (ไม่มีแม่ข่าย)
  • Client-server มีแม่และลูกข่าย ลูกข่ายมีโค้ดประมวลผลข้อมูลเบื้องต้นจากผู้ใช้ ก่อนส่งข้อมูลให้แม่ข่าย
  • 3-tier architecture มีแม่และลูกข่าย แต่ลูกข่ายไม่ได้ประมวลผล และไม่รับรู้ภาวะของโปรแกรม (stateless)
  • N-Tire architecture เหมือน 3-tire แต่ใช้แม่ข่ายหลายตัวเพื่อประมวลผลงานเดียวกัน

เราสามารถเขียนโปรแกรมใน MNF ได้ทั้งสามสถาปัตยกรรม แต่ Web application ที่ผู้เขียนสอนในหนังสือเล่มนี้จะเป็นแบบสุดท้าย (3-tier ดังที่เห็นในภาพ 203) เพราะการประมวลทั้งหมดเกิดขึ้นที่เครื่องแม่ข่าย

 

ภาพ 203: Distributed computing แบบ 3-Tier

 

ขณะทดสอบเราจะใช้เครื่องคอมพิวเตอร์ของเราทำหน้าที่เป็นแม่ข่าย เมื่อได้ผลลัพธ์ขั้นสุดท้ายแล้วจึงนำโปรแกรมไปติดตั้งไว้ที่เครื่องแม่ข่ายจริงๆ (เรียกว่าการทำ web hosting หรือ web application deployment) เครื่องแม่ข่ายที่ว่านี้คือ ASP.NET web server ที่สนับสนุน .NET 2.0 ในบทสุดท้ายผู้เขียนจะสอนวิธีติดต่อกับ ASP.NET web server ทั้งแบบฟรีเพื่อทดลองใช้ และแบบใช้งานจริงที่ต้องเสียค่าเช่ารายเดือน

 

ตอนต่อไป: เรื่องของ NameSpace

Post a comment or leave a trackback: Trackback URL.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: