เชิญร่วมสัมผัสปฐมบทแห่งความเบิกบานสมอง ที่คุณผู้อ่านจะถูกยัดเยียดจากการเรียงร้อยผ่านคีย์บอร์ดคู่ใจ โอกาสต่อๆไปผมจะหาเรื่องหนักมากๆ เปี่ยมด้วยสาระอย่างเบื้องหลังแคตวอล์ก, การแนะนำร้านอาหารอร่อย, หรือนิทานนานาชาติมาเสนอ ครั้งนี้ผมขอเลือกเอาเรื่องการพัฒนาระบบงานฐานข้อมูล SQL Server 2005 โดยใช้ความสามารถของ .NET 2.0 มาให้คุณๆนักพัฒนาได้รู้สึกสนุกสนานกันก่อน[8-|]
เนื้อหาที่จะนำเสนอในครั้งนี้ ผมหยิบยกเอาการมองแบบ Overview มาให้คุณๆได้ติดตามกันก่อน และผมมองว่า Overview ตอนที่ 2 และตอนต่อๆไปจะยังสร้างความเบิกบานได้ (เรื่องของเรื่องนื้อหามันเยอะน่ะ[:P]) ก็เลยจะขอบรรยาย Overview ส่วนอื่นในครั้งต่อไป แต่ตอนนี้มาเริ่มดูที่รูปแบบการพัฒนากันก่อน
SQL Server 2005 มีรูปแบบการพัฒนาให้นักพํฒนาได้บรรเทาอาการปวดหลังหลักๆ 2 รูปแบบด้วยกัน[:|]!!! คือ รูปแบบการใช้ Transact SQL (T-SQL) ที่จะเกี่ยวข้องกับ SQL statement เพื่อการดูแลโครงสร้าง, การควบคุมระบบความปลอดภัย, และการจัดการข้อมูลเป็นส่วนใหญ่ (ในอนาคตอันใกล้นี้ ผมวางแผนจะเขียนบทความที่พูดถึง T-SQL อยู่เหมือนกัน) มีความสามารถใหม่ๆถูกเพิ่มเข้าให้กับ T-SQL ในเวอร์ชันนี้มากเมื่อเปรียบเทียบกับเวอร์ชัน 2000 และเพราะมันถูกพัฒนาได้เร็ว นักพัฒนาก็เลยไม่ต้องนั่งนานมากๆให้ปวดหลังไง[:O]
อีกรูปแบบที่ถือเป็นกลยุทธทีเด็ดของ Microsoft เลยก็ว่าได้ คือการสร้างโค้ด .NET เพื่อให้ทำงานบน .NET Common Language Runtime (CLR) ซึ่งถูกผนวกเข้ากับ SQL Server 2005 process (บางครั้งเจ้า process นี้ถูกเรียกว่า database engine) การผนวกนั้นถึงขั้นที่ว่า CLR ถูกรวมอยู่ในเนื้อที่หน่วยความจำเดียวกันและถูกใช้เป็นส่วนตัวโดย SQL Server 2005 เลยทีเดียว(WOW..) ข้อดีนะเหรอ มีดังนี้ครับ
-
แน่นอนเลย ความเร็ว เพราะทั้ง 2 องค์ประกอบถูกรวมอยู่ใกล้ชิดกันขนาดนั้น แถมยังตัดขั้นตอนการตอบโต้ตามเน็ตเวิร์กโปรโตคอลที่ไม่จำเป็นได้ด้วย เวลามี requests จาก clients (ที่ทำงานผ่าน CLR เช่นเดียวกัน) มันจะถูกส่งตรงไปยัง SQL Server process เลย
-
ข้อผิดพลาดจากการใช้เนื้อที่หน่วยความจำสลับกันไปมา เหมือนเมื่อครั้งเวอร์ชันเก่าหรือ DBMS ยี่ห้ออื่น ที่ต้องประมวลผลโดยแยกเนื้อที่หน่วยความจำกันกับ CLR (ผมหมายถึงทั้ง 2 กรณีทำงานผ่าน ADO.NET) นั้นก็ไม่มีอีกต่อไป
-
การทำ Garbage collection ต่อเนื้อที่หน่วยความจำของ CLR นั้น ถูกควบคุมโดย SQL Server 2005 (ก็ถูกจัดรวมอยู่ในเนื้อที่หน่วยความจำของเค้าแล้วนี่ เจ้าบ้านเค้าก็ต้องดูแล) ทำให้ไม่กระทบต่อ process อื่น
-
การสร้างและการจัดการ Application domain ของ CLR ก็เช่นเดียวกัน ที่จะถูกดูแลโดย SQL Server 2005 process ซึ่งช่วยเพิ่มความปลอดภัย
จะเห็นว่า .NET CLR ใน SQL Server 2005 ก็ช่วยบรรเทาอาการปวดหลังได้ดีมากเหมือนกัน[Y]
สถานการณ์สร้างวีรบุรุษ ประโยคนี้คงเคยได้ยินกันอยู่บ้าง การพัฒนาโดยใช้ .NET CLR จะพอเป็นวีรบุรุษได้ ต้องมีสถานการณ์ที่เหมาะสมกับมันด้วย
-
นักพัฒนามีความชำนาญหรือทักษะการพัฒนาในแนวทาง .NET อยู่แล้ว และยังไม่สะดวกที่จะเรียนรู้ T-SQL ถึงแม้หลายกรณี T-SQL จะเหมาะสมกว่ามากๆก็ตาม
-
กรณีต้องการความสามารถซึ่งเป็นจุดอ่อนของ T-SQL เช่น การจัดการ String อีกทั้งความสามารถใหม่ๆของ .NET 2.0 เช่น Generics
-
การพัฒนาที่ต้องการ Reusability, Integration, หรือข้อดีอื่นตามการออกแบบสถาปัตยกรรมที่ดี
อย่าลืมยังมีให้สนุกกันอีก ติดตามกันตอนต่อไปนะครับ (อย่าเพิ่งรู้สึกปวดหลังก่อนล่ะ)[8]