Thursday, April 26, 2007

What is the Windows Communication Foundation?

สมัยที่ใช้ Visual Basic 6.0 การเขียนโปรแกรมแบบ remote connection นั้น อาจจะต้องใช้ Socket, COM+ หรือ MSMQ (Microsoft Message Queing) และแม้จะเข้าสู่ยุคของ .NET Framework 1.0, 1.1, 2.0 ก็อาจมีเทคโนโลยีอื่น เพิ่มเติม เช่น .NET Remoting, Web Services, Enterprise Services

เทคโนโลยีหลากหลายเหล่านี้ มีมากมาย จนเลือกใช้ไม่ถูก แต่การเลือกใช้งานอาจไม่ใช่ปัญหาใหญ่เท่าไร เพราะแต่ละเทคโนโลยีก็มีจุดประสงค์ในการใช้งานที่แตกต่างกันไป แต่ที่เป็นปัญหาของนักพัฒนาก็คือ การเรียนรู้เทคโนโลยีต่างๆเหล่านี้นั่นเอง

แต่ล่าสุด เมื่อ .NET Framework 3.0 ที่เป็น Extensions เพิ่มเติมจากตัว .NET Framework 2.0 ซึ่งได้มีการเพิ่มเทคโนโลยีใหม่ที่เห็นได้ชัดเจน 3 อย่างคือ Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) และ Windows Workflow Foundataion โดยเจ้าตัว WCF นั่นเอง ที่ทาง ไมโครซอฟท์ จะให้มาเป็นพระเอกขี่ม้าขาวมาช่วยนักพัฒนาทั้งหลาย จากความทุกข์ทรมาน ให้มีความสุขยิ่งๆ ขึ้น เพราะมันได้รวมเอาเทคโนโลยีทั้งหลาย เช่น .NET Remoting, Web Serives (WS), COM+, MSMQ เข้าไว้ด้วยกัน

เมื่อผมถามใครๆ หรือ ถ้าท่านจะถามผมว่า ผมจะเขียนโปรแกรมให้คุยกันต่างเครื่องยังไง? จะเขียน COM+ ดีไหม? เขียน .NET Remoting ดีไหม? ... ตอนนี้ทุกคำตอบจะอยู่ที่ WCF

จากการเข้า web board หลายๆ แห่ง และจากคำถามที่ผมสอบถามผู้รู้ต่างๆ ต่างตอบเป็นเสียงเดียวกันว่า "ให้ใช้ WCF"

WCF มันยิ่งใหญ่ขนาดนั้นเชียวรึ มันสามารถใช้งานได้เหมือนนำเทคโนโลยีต่างๆ เหล่านั้นมารวมกันเลยรึ "น่าสนใจ" งั้นลองหาข้อมูลเพิ่มเติมกันซิ

Windows Communication Foundation คือ อะไร

WCF เป็น service-oriented programming model โดยมองเป็นการให้บริการต่างๆ ซึ่งครอบคลุมรูปแบบการ distributed ต่างๆไว้ อีกทั้งยังคงไว้ซึ่ง security, reliability และ transactions ซึ่งหมายถึง ยังคงรักษาความปลอดภัยในการติดต่อสื่อสารถึงกันได้, ข้อมูลต่างๆ มีความเชื่อถือได้ เช่น ไม่มีการส่งข้อความซ้ำๆ หรือส่งไปแล้วแต่อาจไม่ได้รับ และ สามารถจัดการข้อมูลในแบบ transaction ได้ คือ มีความเป็น ACID: atomicity, consistency, isolation และ durability

WCF ใช้หลักการเดียวกับ Web services ของ .NET Framework 2.0 อีกทั้งยังสามารถทำงานร่วมกับ ระบบอื่นๆ ที่มีอยู่ ที่สร้างขึ้นโดยใช้เทคโนโลยีแบบเดิมได้อีกด้วย เช่น MSMQ, COM+, ASP.NET Web Services, Web Services Enhancements (WSE) และอื่นๆ โดย WCF สามารถช่วยให้ Applications สามารถสื่อสารกันได้ ทั้งบนเครื่องเดียวกัน, บน Internet หรือ บน Application platform ต่างกัน ก็ตาม

ใน web ของ ไมโครซอฟท์ เป็นคลังความรู้เบื้องต้นที่ดีที่สุด เข้าไปดูได้ที่ http://msdn2.microsoft.com/en-us/library/ms735119.aspx

1 comment:

Anonymous said...

ขอบคุณสำหรับบทความดี ๆ นะครับ ผมกำลังสนใจจะทำระบบที่เป็น n-tier พอดีเลยครับ ลองเล่น wcf แล้วก็ถือว่าดีมากที่เดียว

แต่สงสัยตรงข้อมูลที่ส่งผ่านกันมันเข้ารหัสหรือเปล่าครับ หรือว่ามันส่งเป็น plan text เลย