เว็บอะรัยดีช้อป

เว็บอะรัยดีช้อป
http://www.webaraideeshopping.com/

วันเสาร์ที่ 21 มิถุนายน พ.ศ. 2557

มารู้จัก.DLL, .OCX, ActiveX มันคืออะไรครับ, ต่างกันอย่างไร, แล้วเอาไว้ทำไร

มารู้จัก.DLL, .OCX, ActiveX มันคืออะไรครับ, ต่างกันอย่างไร, แล้วเอาไว้ทำไรกันบ้าง

ภาพประกอบจาก.answers.microsoft.com


แรกเริ่มของการพัฒนาโปรแกรมคอมพิวเตอร์ โปรแกรมเมอร์จะเขียนโปรแกรมหรือทำชุดคำสั่งและข้อมูลที่จำเป็นสำหรับงานั้นๆ ขึ้นมา เก็บไว้เป็น file เมื่อต้องการใช้งาน ก็ให้ OS อ่านข้อมูลจาก file ไปไว้ลงใน memory ของเครื่อง ก็จะเริ่มทำงานได้ตามต้องการ หรือตามที่ได้โปรแกรมไว้

ต่อมา มีการพัฒนาโปรแกรมขึ้นมามากขึ้น โปรแกรมเมอร์แต่ละคน ก็ทำโปรแกรมของตนออกมา ผู้ใช้ก็เก็บไว้ในหน่วยความจำสำรอง หรือ HDD จะใช้อะไรก็ load โปรแกรมนั้นๆ ขึ้นมา จนมี file เต็ม HDD ไปหมด

พอไปดู file จริงๆ ปรากฏว่า มีงานซ้ำซ้อนกันเก็บไว้หลายๆ ที่ เช่น ชุดโปรแกรมย่อยในการคำนวนต่างๆ ข้อมูลที่เป็นภาพ เสียง ฯ เพราะทุกบริษัทต่างๆ ก็มีของพวกนี้เป็นของตัวเอง เวลากระจายโปรแกรมออกสู่ตลาด ก็ต้องเอาของพวกนี้ติดไปพร้อมกับระบบด้วย ไม่เช่นนั้น โปรแกรมก็ทำงานไม่ได้ จึงมีการคิดเรื่องการสร้างชุดคำสั่งมาตราฐาน (Common library routines) ขึ้น เก็บไว้ในเครื่องที่เดียว ทุกคนก็มาเรียกใช้เพื่อลดการใช้ HDD เรียกว่า เป้นการใช้ทรัพยากรร่วมกัน (Sharable resources)

ต่อมา library พวกนี้ก็มีมากขึ้น มีนักพัฒนา library มาขายให้นักพัฒนาโปรแกรมอีกที จะ load ไปว้ในหน่วยความจำทั้งหมดทีเดียว ก็ทำไม่ได้ เพราะหน่วยความจำมีจำกัด เลยมีการออกแบบ dynamic linking library (DLL) ขึ้นมา คือ จะใช้ค่อย load พอเลิกใช้แล้วก็เอาออกจากหน่วยความจำไป แต่ตอนทำงานจริงๆ เรา load DLL ทั้งหมดที่ใช้ขึ้นมา ที่เหลือเป็นหน้าที่ของ OS ว่าจะเอาตัวใหนมาใส่ในหน่วยความจำ (dynamic loading/unloading)

ผู้ที่จะใช้งาน DLL ได้ก็คือโปรแกรมเมอร์ ผู้สร้างโปรแกรมใช้งาน ถ้าโปรแกรมของเราต้องใช้ DLL สัก 20 files เราต้องมีให้ครบ ไม่เช่นนั้น โปรแกรมจจะทำงานไม่ได้ ใน sub dir \windows\system32 มี DLL มาตราฐานของ Microsoft Windows ให้ใช้เป็นร้อย ทำให้โปรแกรมที่ทำงานบน Windows มีขนาดเล็ก แต่ทำงานได้มาก เพราะจริงๆ ไปเรียกใช้ DLL เสียเป็นส่วนมาก

ต่อมา มีคนคิดว่า งานบางอย่าง เช่น ปุ่มกด ช่องกรอกข้อมูล ฯ งานพวกนี้ก็มีอยู่ในโปรแกรมใช้งานเกือบทุกโปรแกรม แต่ละบริษัทก็ออกแบบสร้างของตัวเองขึ้นมา ถ้าสามารถทำเป็นมาตราฐาน แยกเป็น applicaion ย่อยๆ ที่สามารถเรียกใช้ได้จากโปรแกรมหลักได้ การสร้างโปรแกรมใช้งานก็จะง่ายขึ้น คือ เรียกใช้ ไม่ต้องไปเขียนใหม่ เกิดเป็น user control component (VBX) ในการพัฒนาโปรแกรมบนรูปแบบ visual design

User control แตกต่างจาก DLL ตรงที่มันเป็นโปรแกรมใช้งานโปรแกรมหนึ่งทีเดียว ไม่ใช่แค่ library ให้ load เอามาใช้งานเหมือน DLL เวลาเรียกใช้งาน มันจะจองเนื้อที่บนหน้าจอเพื่อแสดงผล รับข้อมูลจากผู้ใช้ และสื่อสารกับโปรแกรมหลัก เหมือนจะแยกตัวออกเป็นอิสระ แต่ VBX ใช้งานได้กับโปรแกรม Visual Basic เท่านั้น

ActiveX ก็คือ applet หรือโปรแกรมเล็กๆ ทำงานอิสระ เป็นตัวของตัวเอง เป็นผู้ให้บริการโปรแกรมอื่นๆ ในระบบ เป็นแนวความคิดที่ขยายผลมาจาก DLL และ User control ให้ทุกๆ โปรแกรมที่พัฒนาจากทุกภาษาสามารถเรียกใช้ได้ หรือ พยายามสร้างให้เป็นมาตราฐานขึ้นมาเหมือน DLL เป็นทั้ง library และ User control พัฒนาต่อเนื่องมาจากเทคโนโลยี OLE และ DDE อีกที

File ActiveX มีนามสกุลเป็น DLL และ OCX ที่จริงก็คือตัวเดียวกัน เปลี่ยนนามสกุลเฉยๆ ทำงานบนมาตราฐานของ DLL เดิม แต่มีการเพิ่มมาตราฐานการสื่อสารระหว่างโปรแปรแกรมหลักับตัว ActiveX

ยกตัวอย่าง ActiveX ตัวหนึ่ง เป็นโปรแกรมแปลภาษาไทยเป็นอังกฤษ เราจะต้องลงทะเบียน ActiveX ตัวนี้ในระบบก่อน แล้วเราสามารถเรียก ActiveX ตัวนี้มาเป็นตัวช่วยในโปรแกรมเราได้ ต้องทำการถาม ActiveX ว่า มีอะไรให้เรียกใช้ได้บ้าง (Query Interface) แล้วก็ทำการสื่อสารกับมันผ่านระบบการสื่อสารข้อมูลระหว่างโปรแกรม (DDE) โปรแกรมหลักก็จะโยนข้อมูลไปที่ OCX แล้วมันจะตอบกลับมา ผลก็คือ เราได้ภาษาอังกฤษจากภาษาไทยที่เราส่งไปตามความต้องการ โดยเราไม่ต้องไปเขียนโปรแกรมแปลภาษาเอง

ส่วน ActiveXที่เป็น user control ทำงานเหมือน VBX ทุกประการ

เหมือนกับว่า เราไม่ได้ทำงานคนเดียว มีผู้ช่วยระดับผู้เชี่ยวชาญเป็นร้อยอยู่รอบๆ เราสามารถสอบถาม OS ได้ว่า ตอนนี้มี ActiveX อะไรอยู่ในเครื่องเราบ้าง แต่เอาเข้าจริงๆ แล้ว การใช้งานโปรแกรมหลักกับ ActiveX component ก็ต้องมีคู่มือเหมือนกัน ไม่ใช่ว่าจะไปเรียกใช้อะไรได้ง่ายๆ

ตัว ActiveX นี่เราสามารถติดตั้งตัวมันไว้ที่เครื่องใหนใน network เดียวกันก็ยังได้ เพราะจริงๆ แล้ว มันแยกกันทำงานเด็ดขาดจากโปรแกรมหลัก เอาไปไว้บนดาวเที่ยมก็ยังได้ ใช้การสื่อสารบนเครือข่ายแทนที่จะให้มันคุยในเครื่องเดียวกัน โดยโปรแกรมเราไม่ต้องไปทำอะไรเลย ไปกำหนดที่อยู่ของตัว ActiveX เอาใน configuration ของ OS เป็นการป้องกันความลับของ code หรือ algorithm ได้เป็นอย่างดี เพราะไม่ต้องส่ง file ไปหร้อมกับ product


ที่มา..http://guru.google.co.th/guru/thread?tid=4180ae23a91d0e6e

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

บทความที่ได้รับความนิยม 10 อันดับ