الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن حد يشرح لي الcom+

مغلق
بدأه دون سيلفاتور في 19 فبراير 2005 · 32 رد · 3,137 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ممكن حد يشرح لي ايش المقصود بال com و com+

وشكرا

abo_alzobaer@hotmail.com

#2

:D كم تمنيت من احد ان يسأل هذا السؤال

دعنا نرجع للايام الاوائل فى استخدام اجهزة الكمبيوتر فى الشركات و دعنا ننظر لشكل تلك التطبيقات

سنجد ان تلك التطبيقات كانت ضخمه جداً تؤدى العديد من الاعمال فى وقت واحد و كانت تعمل فقط على اجهزة ال Mainframe هذا النوع من التطبيقات يطلق عليه التطبيقات وحيدة الطبقه (Momolithic Application) لان ال Data Layer وال Presntation Layer و ال Buisness Logic على ال Mainframe

لا شك ان هذه المعماريه تتسم بالضيق بعض الشئ فى حال حاولنا تطبيقها الان دعنا ننظر لبعض هذه المشاكل :

1 - هذه التطبيقات الضخمه يلزمها سيرفرات ضخمة الامكانيات و بالتالى فهذا يشكل عبئاً مالياً

2 - كمطور فان هذا النوع من التطبيقات يتسم بالتعقيد فى وظائفه و كتابة الكود و بالتالى يزيد من الوقت اللازم لصيانة هذا النوع من التطبيقات و الوقت يعنى المزيد من الاموال

3- هذه التطبيقات يتم صنعها لبيعها لاكثر من مؤسسه و ليست مؤسسه واحده و لا شك ام احتياجات كل مؤسسه تختلف عن الاخرى و بالتالى فان هذه الطبيقات تشحن بالعديد من الوظائف و الامكانيات التى قد لا تحتاجها المؤسسه او تحتاج لوظائف جديده و هذا يعنى تعقيد إضافة او ترقية مكونات هذه التطبيقات

4 - صعوبة دمج هذه التطبيقات مع تطبيقات اخرى حتى لو تم صنعها بنفس لغة البرمجه لان مكونات ال Monolithic Application ليست موزعه بل مدمجه مع بعضها لا يوجد فصل واضح لمكونات التطبيق

5 - تخيل انك قمت بصنع تطبيق من هذا النوع و كان رقم اصدارته 7 و قمت انت بعمل اصداره جديده هل لك ان تخبرنى كيف ستقوم بعمل ال Upgrade ؟ صعب أليس كذلك

اعتقد ان هذا النموذج من تطبيقات كانت له عيوب تم تلاشيها فى النموذج التالى

Client/Server Model نموذج الخادم / العميل استطاع هذا النموذج ان يقوم بفصل مكونات التطبيق على اكثر من مكان

طبقة البيانات Data Layer على السيرفر و طبقة العرض Presentation Layer و ال Buisness Logic على جهاز العميل Client

نجاح عالى لهذا النموذج فى فصل مكونات التطبيق و هو الاكثر إنتشاراً حتى معظمنا يعمل به

فى تطبيقاته و لكنه لم يحل مشكلة ال Versionning و ال Code Reuse (طبعاً هذا سيسهل من عملك و استفادتك من مكونات سابقه فى تطبيقات حاليه)

هذا ينقلنا للنموذج التالى الا و هو ال COM (رعب الشمال ) :D لا شك ان معظم المطورين ما ان يسمع هذه الكلمه حتى تقشعر ابدانه و تراه ذهب مع الريح ;) على كل دعنا نرى إلى اين سنذهب

Compnent Object Model فى هذا النموذج يطبق مفهوم الكبسله Encapsulation و اعادة استخدام الكود Code Reuse

لن ازيد عن كلام استاذنا الكبير هانى الاتاسى

/index.ph...indpost&p=68350

المهم بهذا سنجد ان ال COM Model حلت لنا مشكلة ال Code Reuse و ال Versioning Control كما ان هذا النموذج لا يقيدك باستخدام لغة برمجه بعينها فيمكن لصديقى عروه المتعصب للدلفى ان يقوم بكتابة COM Component ليقوم صديقنا هيثم مشرف السى باستخدامه فى تطبيقه و قد يقوم هيثم بعمل مكون اخر تستخدمه انت فى تطبيقك و عندما يصدر هيثم اصدار جديد ما عليك سوى استبدال المكون القديم فى تطبيقك

قد يبدو ان ال COM Model قام بحل كل مشاكلك فلماذا ال +COM

اولاً ال +COM اتاحت لك مميزات اخرى على ال COM من خلال بيئة الدوت نيت مثل

1- قابلية العمل على اكثر من منصة تشغيل طالما توافر ال DOT NET Framework

2 - ال Type - Safety و هذا ما يوفره ال Managed Code و هو الا يستطيع هذا المكون ان يقوم بالوصول لتطبيق اخر يعمل فى حيز اخر من الذاكره

3- تحسين على التحكم بالاصدار Better Version Control : فيمكنك من استخدام اصدارتين لمكون واحد جنباً إلى جنب Side By Side Deployment فيستطيع مستخدموا الاصدار القديم التعامل مع الاصدار القديم و المستخدمون للاصدار الحديث التعامل معه فقط على نفس الجهاز

يا اخ طارق صدعت دماغنا و ما عرفنا يعنى ايه ال +COM ؟

انظر يا سيدى ال +COM نستطيع ان نقول انها استغلال مجموعه من الخدمات القابله للاستعمال و التى يقدمها نظام التشغيل ويندوز

فكره جيده لماذا اقوم ببناء بنيه تحتيه Infra Structure لبرامجى من جديد و هذه الخدمات يقدمها لى نظام التشغيل :D

ما هى هذه الخدمات COM+ Services :

JIT : Just In Time Activation

Synhronization

Security

Transaction

Losely Coubled Events

Message Queued

Resource Mangement

اسمح لى ان اناقش نبذه عن كل خدمه لاحقاً اليوم إن شاء الله و كيف تبدأ فى انشاء اول Serviced Compnent

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#3

اشاكرك جدا اخي الكريم

ماقصرت والله

ونحن بانتظار الباقي

تحياتي

abo_alzobaer@hotmail.com

#4

السلام عليكم ورحمة الله وبركاته

أخي العزيز ممكن توضيح Com+ بمثال عملي مع الشرح لو سمحت

جزاك الله خيرا

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#5

جزاك الله الف خير

في انتظار دروسك القادمة

ومشكور

#6

جزاك الله الف خير

حاولت ابحث عن الموضوع فما وجدت الا بالانكليزية ومعقد؟؟

اتمنى ان تضيف المزيد من الشروحات حول الموضوع

ولك مني جزيل الشكر

#7

الأخوة الأفاضل ،، شدني الموضوع كثيراً ،، وأحببت المشاركة فيه ،، لأفيد وأستفيد ..

بأختصار ، ممكن اشبه لك +COM ، بالدواء .. "لا تتناوله إلا عند الحاجة فقط " ...

قد تسأل متى نحتاج لل COM+

من الممكن إختصار الكلام في الحالات التالية ..

1- Object Pooling

2- Distributed Transaction

3- Security

عمليا ً ,,,

وإذا اردت ان تنشأ +COM ، ما عليك سوى التالي ...

1- إنشأ class جديد .

1- قم بإضافة Refrence لل System.EnterpriseServices .

2- قم بإستدعاء using System.EnterpriseServices

3- قم بعملية Inheritanceل ServicedComponent

بهذا الشكل ...

using System;
using System.EnterpriseServices;

namespace COM+
{
	public class Test : ServicedComponent
	{
  public Test()
  {
       	 
  }
	}
}

هكذا اصبح class ، جاهزا لأن يكون COM+ ، حاول ان تستخدمه في أي Form ، سوف تظهر لك رسالة خطأ ،، يجب إنشاء String Key

لعمل ذلك .. مع عليك سوى استخدام .NET Command Prompot

Start - > All Programs -> Microsoft Visual Studio .NET 2003->Visual Studio .NET Tools->Visual Studio .NET 2003 Command Prompt

استخدم هذا الأمر sn -k c:\ filename

استبدل file ame باي أسم ...

بعدها إذهب لل Solution Explorer، اختر AssemblyInfo

سوف تجد [assembly: AssemblyKeyFile("")]

بين علامات التنصيص اكتب موقع الملف كالتالي

[assembly: AssemblyKeyFile("c:\\limo")]

الآن قم بتنفيذ البرنامج ،، ستلاحظ بطأ في التنفيذ ،، لأول مرة فقط ،،، لانه سوف يتم تسجيل هذا class as COM+

لكي تتأكد إذهب إلى Component Services ، الموجودة ضمن Administrative Tools

Component Services -> Couputers -> MyComputer -> COM+ Application

سوف تجد اسم class الخاص بك هناك ...

طبعاً ، المضوع اوسع من كذا ،، وفي تفاصيل آخرى ... احبب اعرض الموضوع بشكل مبسط ،، وأي أستفسار انا أو غيري من الشباب جاهزين بإذن الله ...

#8

طيب السؤال هو :

ايش فائدة الcom+؟؟؟؟؟؟؟؟؟؟؟

وبمادا يستخدم؟؟؟؟؟؟؟؟؟؟؟؟

اشكر الاخ li8o على مساعدته

abo_alzobaer@hotmail.com

#9

السلام عليكم ورحمة الله وبركاته

أخي الكريم li8o

جزاك الله خيرا شرحك فوق الوصف ممتاز جدا مع أن المعلومة صغيره جدا فهذه بداية جيدة جدا

ونحن ننتظر المعلومات الكبيرة

اقتباس
طبعاً ، المضوع اوسع من كذا ،، وفي تفاصيل آخرى ... احبب اعرض الموضوع بشكل مبسط ،، وأي أستفسار انا أو غيري من الشباب جاهزين بإذن الله ...

أنا أنتظر بفارغ الصبر المزيد بنفس طريقة الشرح وبأمثلة عملية وأنا متابع معك بإذن الله

جزاك الله خيرا

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#10

شكراً جزيلاً أخ li8o

#11

أخي الكريم ،،

أتأسف على التأخير ، ولكن كنت منتظر الأستاذ طارق إبراهيم ، ليكمل حديثه ،،

أخي الكريم mgazif ،

افرض معي ، قمت بعمل Class ، يقوم بعمليات معينة ، وهذا class يستخدم من قبل أكثر من ألف شخص في نفس اللحظة ،،، تخيل كيف يكون أداء هذا البرنامج ؟؟؟

----------------------------------------

من المؤكد انك تعرف ماذا تعني هذه الكلمة (Transaction) ، للتذكير ، هي عبارة عن مجموعة من الأوامر التي تنفذ مع بعض ، إما تنفذ جميعا او تلغى جميعاً ...

نجدها دائما في قواعد البيانات ... تخيل معي ...

تمت عملية نقل مبلغ من المال من حسابي إلى حسابك ,, أثناء تنفيذ عملية النقل ،، ( تم خصم المبلغ من حسابي ) ولكن قدر الله وطفيت الكهرباء ،، و المبلغ لم يتم إيداعه في حسابك ،،،

هل هذا يعقل ,,, طبعا لا .. تتم تنظيم هذه العملية ب Transaction .. اما ان تتنفذ جميع العمليات ، او ان تلغى في حالة فشل احد هذه العمليات ...

في اغلب قواعد البيانات تتم إدارتها بكل سهولة ... و لكن تخيل معي ان قاعدة البيانات موزعة على اكثر من Server... وقمت بعملية مماثلة للسابقة ،، حيث ان العملية

تتطلب تحديث اكثر من Server كيف من الممكن إدارة والتحكم بهذا الأمر ؟؟؟

تخيلت الموقف معي ؟؟؟

هذه الأمور تستطع ان تديرها وبنجاح وبكل سهولة باستخدام COM+ ...

#12

السلام عليكم ورحمة الله وبركاته

أخي الكريم Li8o جزاك الله خيرا وأفاد الله بك المسلمون

شرحك جميل جدا جدا وبسيط وأرجوا أن تكمل في هذا الموضوع بحيث أن تبدأ بهدف من أهداف الكوم بلس وبعده يتم شرح مثال عن كيفية تنفيذ هذا الهدف .

وأنا أعلم أن هذا الموضوع يحتاج إلى وقت فراغ تقريبا فأسأل الله العظيم أن يبارك لك في وقتك وأنت تفيدنا .

جزاك الله خيرا

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#13

الف

شكر لك اخ Li8o

يعني افهم من كلامك ان com+ تستخدم فقط للتراجع عن الاوامر في حالة الخطا ؟؟؟

abo_alzobaer@hotmail.com

#14

كلا يا سيدى الفاضل نفترض الان انك تود بتقديم نموذج خاص بالامن فى تطبيقك او انك تود معالجة كم من الرسائل Messages التى ترسل إلى تطبيقك ليقوم بمعالجتها ففى حال عدم امكانية توفير نظام التشغيل لمجموعة من الخدمات التى تساعدك فى هذا العمل فعليك ان تقوم ببناء بنية تحتية InfraStructure تساعدك فى انجاز عملك

هنا تقدم انظمة مايكروسوفت المبنية على NT Family البنية التحتية المناسبة لهذه التطبيقات التى تعمل كحلقة حوار بين التطبيقات المختلفة

فتسطيع ان تستخدم خدمة ال Transactions و ال Object Pooling و ال CRM و ال Security و ال Mesaging Qeued بداخل تطبيقك بالاعتماد على وجود تلك الخدمات مقدمة من نظام التشغيل

ال +COM تناسب اكثر تطبيقات المؤسسات و انا اقول المؤسسات و تطبيقات الويب الضخمة التى تحتاج للتعامل بين التطبيقات و ليس تطبيقات سطح المكتب او الاعمال الصغيرة

الموضوع كبير و ما ذكرته هو فى عجالة صغيرة للاسف هناك مجموعة من اسماء الكتب كنت قد ذكرتها من قبل يمكن البحث عنها و معرفة ما هية ال +COM

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#15

كويس ان فيه موضوع بيتكلم عن الـ +COM وأرجو الاستمرار ,

لأن الواحد عايز يعرف الحكاية دي بالضبط ...,

أريد أن أعرف هل توجد علاقه بين الـ Services الخاصه بالويندوز (والتي يمكن عملها بسهولة في بيئة الدوت نت) والـ +COM ؟؟؟

08_10_05_11_01_15_1128794475ws.JPG

وما علاقة الـ +COM بالـ Addins ??? أنظر الصوره ,

08_10_05_10_40_23_1128793223addin.JPG

وفي مره كنت أقرأ في Module من كورسات ميكروسوفت و قرأت انه تطبيقات الـ +COM تنقسم الي نوعين موضحين في الصوره , ما هما هذين النوعين وما الفرق بينهما ؟؟؟

08_10_05_11_02_48_1128794568cs.JPG

أنا حاسس ان كله دخل في بعضه يا تفكوهم من بعض :wacko: :blink:

اللي يعرف معلومه يا ريت يقولها ,

وأنا عن نفسي لقيت كتاب يتحدث عن هذا الموضوع اسمه COM Programming with Microsoft .NET وآدي الرابط بتاعه :

MSpress - COM Programming with Microsoft .NET

وآدي كتاب تاني اسمه COM and .NET Component Services

وآدي الرابط بتاعه :

O'Reilly - COM and .NET Component Services

وجزاكم الله خيرا ,,,

تم تعديل هذه المشاركة بواسطة hazzoom في 9 أكتوبر 2005 في 08:09

#16

السلام عليكم ورحمة الله وبركاته

جزاك الله خيرا يا أخ حازم ، أرجوا أن تسترسل في الشرح بدون توقف لأهمية الموضوع

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#17

والله يا أخ أحمد أنا زيي زيك ويمكن أقل بكثير جدا , لكن أنا بحاول أفهم الموضوع لكني حتي الآن غير ملم به وأنا حاسس ان الموضوع فيه شغل كتير .........,

ومش هتصدق لو قلتلك اني مش عارف الفرق بين الـ COM و الـ +COM وياريت حد يفهمني ؟؟؟

ويا ريت أي حد يعرف معلومات عن الموضوع ده عامة يقولها وما يبخلش ..., وأنا لو عرفت أي معلومه مش هبخل طبعا وهقولها علطول بس شدوا حيلكم معايا وربنا يسهل يا عم أحمد ...,

يا أخ li8o أنا قابلتني مشاكل وأنا بنفذ الخطوات اللي قلت عليها ومش عارف السبب , وكمان الخطأ اللي بيظهر عند انشاء Object من الكلاس بيظل موجود حتي بعد عمل الخطوات اللي قلت عليها واضافة الأسمبلي , فما السبب ؟؟؟

و أرجوك أن تستمر , وجزاك الله خيرا ,,,

تم تعديل هذه المشاركة بواسطة hazzoom في 9 أكتوبر 2005 في 05:22

#20

السلام عليكم ورحمة الله وبركاته

أنا مش عارف القسم ده ميت ليه بجد أنا خلاص :(

يعني مفيش أي حد بيعرف فيها ولا عنده فكرة عنها أي معلومة على الأقل

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#22

هل حاول احدكم ان يبحث او ان يقرا فى احدى الكتب الموجوده هنا ام بانتظار من ياتى ليشرح الموضوع

اسماء كتب خاصة لل +COM

بالمناسبة موضوع ال +COM متقدم فعلاً و قرائته غير تطبيقه

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#23

لا يا أخ طارق صحيح أنا بسأل ان كان أحد علي استعداد للمشاركه في الموضوع لكن هذا لا ينفي أني أقرأ فعلا في هذا الموضوع في الكتاب الأول الذي وضعت له رابط في المشاركه رقم 15 :

MS Press - COM Programming with Microsoft .NET

لكن عندما تكون هناك مناقشه فيكون هناك استفاده أكبر وأسرع ,

يعني بالعربي كده عايز أقول اني مش قاعد ساكت وبس ,,,

تم تعديل هذه المشاركة بواسطة hazzoom في 12 أكتوبر 2005 في 05:09

#24

انصحك بالابتعاد الان عن الكتاب الذى تقرئه و ابدأ بكتاب + Understanding COM لكى تعرف ما هى ال +COM

اقتباس
لكن عندما تكون هناك مناقشه فيكون هناك استفاده أكبر وأسرع ,

يعني بالعربي كده عايز أقول اني مش قاعد ساكت وبس

كنت اتمنى المشاركة و لكن بالفعل مشغول ابدا فقط بالكتاب الذى ذكرته لك و بعد ذلك انتقل لاى كتاب يناقش ال +COM من خلال الدوت نيت

و نصيحتى لا تنتظر احد و فى حال توافر لدى وقت سأقوم بكتابة موضوع يناقش احدى خدمات ال +COM بال VB.NET و لكن انتهى اولاً من بعض مقالات ال MS SQL Server

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#25

ماشي كلامك يا أخ طارق , بس يا سلام حد يحط للكتاب رابط , لأن emule طلع عيني :wacko:

تم تعديل هذه المشاركة بواسطة hazzoom في 12 أكتوبر 2005 في 06:30

هذا الموضوع مغلق.

مواضيع مشابهة