ما هو COM - لماذا لا يزال تصميم Windows COM يبدو جميلاً حتى اليوم
· 小村 豪 · COM, ActiveX, تطوير Windows
ما هو COM - لماذا لا يزال تصميم Windows COM يبدو جميلاً حتى اليوم
كثيراً ما يُنظر إلى COM على أنّه تقنية قديمة، إلّا أنّه في تطوير Windows لا يزال يظهر بوصفه فكرة تصميمية محورية.
والأسئلة التي يبحث عنها الناس باستمرار هي عادةً نفسها: ما هو COM فعلاً، ولماذا يهمّ IUnknown وأرقام GUID، ولماذا لا يزال COM حاضراً في النقاش حتى اليوم.
ما هو COM؟
COM (Component Object Model) هو عقد ثنائي (binary contract) يتيح للمكوّنات أن تتواصل فيما بينها على Windows.
فهو يسمح بالتواصل عبر عقد واجهة (interface) صارم يصمد أمام اختلافات اللغات والمترجِمات.
الأفكار الأساسية التي تحتاجها لفهم COM هي:
- تصميم يبدأ من الواجهة: العقد يأتي قبل التنفيذ
- التعريف عبر GUID (CLSID / IID)
- عدّ المراجع واكتشاف الواجهات عبر
IUnknown - القدرة على العمل ليس فقط كـ DLL (داخل العملية - in-process) بل أيضاً كـ EXE (خارج العملية - out-of-process)
بعبارة أخرى، صُمّم COM ليكون آلية لإعادة الاستخدام لا تتطلّب من المستدعي معرفة تفاصيل التنفيذ. والواجهة المحايدة لغوياً تظلّ فكرة في غاية الأناقة حتى اليوم.
لماذا يتميّز COM
يمتلك COM نقاط قوّة معمارية لا تزال تستحقّ الاحترام، حتى وإن بدت التقنية قديمة للوهلة الأولى.
-
التوافق الثنائي (Binary compatibility)
يمكنك استهلاك مكوّنات مبنيّة مسبقاً دون الاكتراث بلغة التنفيذ أو زمن التشغيل. -
فصل الواجهات
من خلال إخفاء التنفيذ ونشر العقد فقط، تحصل على تصميم متين وقابل للصيانة. -
التعايش بين الإصدارات
الطريقة المعتادة لإضافة وظائف جديدة دون كسر التوافق هي إضافة واجهات جديدة. وهذا أسلوب يعكس روح Microsoft تماماً. -
إعادة الاستخدام عبر حدود العمليات
مع COM خارج العملية (out-of-process)، يمكنك استدعاء وظائف تعمل في عملية أخرى بأمان.
هذا الاستقلال عن اللغة والعملية والتنفيذ هو ما يجعل COM يبدو في نظري أنيقاً.
COM لا يزال نشطاً حتى اليوم
كثيراً ما يصف الناس COM بأنّه تقنية موروثة (legacy)، لكنّه لا يزال مستخدماً داخل نواة Windows حتى اليوم.
وكلّما احتجت إلى التكامل مع أصول قديمة أو استخدام ميزات خاصّة بـ Windows، يبقى COM خياراً مهمّاً.
أماكن لا تتوقّع أن يظهر فيها COM
- امتدادات Explorer مثل قوائم النقر بالزرّ الأيمن والمعاينات
- أتمتة Office للتحكّم بـ Excel أو Word من الخارج
- التشغيل البيني مع .NET عبر COM Interop
- الأنظمة القائمة التي لا تزال تتضمّن ActiveX
حتى إن ظننت أنّ COM لا علاقة له بعملك الحالي، فإنّه يميل إلى الظهور في مكان ما داخل أيّ مشروع جادّ لتطوير Windows.
ولهذا تحديداً يستحقّ الأمر فهم الفلسفة التصميمية التي تقف خلفه.
مقالات ذات صلة
أحدث المقالات التي تشترك في نفس الوسوم. عمّق فهمك بمواضيع مرتبطة.
المزالق الشائعة في تطوير مكوّنات COM و OCX / ActiveX - فخاخ Visual Studio بين 32-bit و 64-bit، والتسجيل، وصلاحيّات المسؤول
دليل عمليّ يكشف الأسباب الحقيقيّة لإخفاق مكوّنات COM و OCX و ActiveX: عدم تطابق 32-bit / 64-bit مع Visual Studio 2022، وأخطاء regsvr32 و ...
ما هي COM / ActiveX / OCX - دليل عمليّ للفروق والعلاقات بينها
نظرة عمليّة لتمييز COM و ActiveX و OCX، مع علاقتها بـ OLE وأماكن استخدامها، لمساعدتك على فصل الأساس عن سياق المكوّن عن الملفّ في تحقيقات ...
ما يجب التحقّق منه عندما لا يعمل ActiveX على Office 2024 / Microsoft 365 - الترتيب العمليّ لتغطية التعطيل الافتراضيّ، 32bit / 64bit، تسجيل COM، DLL التابعة، ووصولًا إلى IE mode
دليل عمليّ لتشخيص توقّف ActiveX على Office 2024 و Microsoft 365، يرتّب الفحوص من التعطيل الافتراضيّ إلى تطابق 32bit / 64bit وتسجيل COM وD...
ما هو Reg-Free COM - كيف يعمل Registration-Free COM وأين يلائم وأين لا يلائم
مقالة تشرح Reg-Free COM كآليّة تنشيط مبنيّة على manifests بدلاً من الـ registry، توضّح متى يلائم في تطبيقات سطح المكتب ومتى لا يحلّ مشكلا...
كيف تبني إخراج تقارير Excel - دليل قرار عمليّ بين COM Automation وOpen XML والمقاربة المعتمدة على القوالب والمقايضات
دليل قرار عمليّ لاختيار طريقة إخراج تقارير Excel بين COM Automation وOpen XML والقوالب وVBA الموروثة، مع موازنة بيئات التشغيل والصيانة.
أين يتصل هذا الموضوع
ترتبط هذه المقالة بشكل طبيعي بصفحات الخدمات التالية.
دعم إعادة استخدام الأصول القديمة وترحيلها
ندعم إعادة استخدام وترحيل الأصول التي تحمل قيود COM / ActiveX / OCX أو 32bit / 64bit.
الملف الشخصي للمؤلف
صفحة الملف الشخصي لمؤلف المقالة.
غو كومورا
مؤسّس شركة كومورا سوفت ذ.م.م.
يركّز على تطوير برامج ويندوز، والاستشارات التقنية، والتحقيق في الأخطاء، ويتميّز في المشاريع التي تبقى فيها الأصول القديمة ناشطة، وفي تشخيص الأعطال التي يصعب تحديد سببها.
روابط عامة