PDA

View Full Version : COM object



reza.palang
جمعه 24 فروردین 1386, 00:07 صبح
به طور اجمالی میخواستم بدونم ابجکت های COM چی هستن و اینکه درتکنولوژی Net. چه دلیلی برای استفاده از اینها هست؟ نوشتن این آبجکت ها در #C ممکن هست؟ و آیا استفاده از این آبجکت ها و یا تولیدشون رو توصیه میکنید؟

omid_Ahmadi
جمعه 24 فروردین 1386, 07:57 صبح
COM یه تکنولوژی مایکروسافتیه که بیشتر روی استفاده اشیای ایجاد شده در یک زبان، در محیط های دیگه و یا حتی در ماشینهای دوردست (Remote) تمرکز می کنه. این عنوان، یه عنوان کلیه که معمولا وقتی نام میبرن، تمام تکنولوژی های مربوط به اون رو هم شامل میشه، مثل OLE، COM+، DCOM و Windows DNA.
اما با اومدن .NET و تکنولوژی های جدیدی که ارائه شد مثل Remoting و Web Service ها و یا WCF، دیگه کم کم استفاده از COM داره کمرنگ تر میشه، چون تکنولوژی هایی مثل Web Service و یا WCF از XML برای مسیجینگ خودشون استفاده می کنن، در حالی که COM (و Remoting نیز) از فرمت باینری استفاده می کنن.
دلیل استفاده از این تکنولوژی و اینکه قابلیت تعامل برنامه های .NET با COM وجود داره هم بیشتر به پشتیبانی از سیستمهای قدیمی برمی گرده و اینکه .NET بتونه اجازه بده سازمانها
هم از اشیای COM قدیمی خودشون و هم از .NET برای طراحی برنامه های جدیدشون استفاده کنن.
معادل این تکنولوژی توی Java EE هم تکنولوژی هایی مثل CORBA و Java Beans هست.
تولید این آبجکت ها توصیه نمیشه، اما استفاده از اونها، در صورتی که معادلی برای اون نباشه و یا هزینه طراحی معادل اون زیاد باشه منطقیه.

reza.palang
جمعه 24 فروردین 1386, 09:42 صبح
متشکر از جوابتون
با این حساب در مقابل باید آبجکت های net. وجود داشته باشه.
تفاوت کدهای com و Net. چیه؟

omid_Ahmadi
جمعه 24 فروردین 1386, 09:56 صبح
ببینید، منطق و سلوشنی که در Remoting، Web Services و یا WCF برای این کار ارائه میشه، مقداری با اون چیزی که در COM و یا +COM بود تفاوت داره. شما باید اول خود صورت مسئله که منتهی به خلق چنین سیستمهایی شده رو درک کنید، بعد این راه حلها رو مطالعه کنید و باهاشون آشنا بشید.
مثلا سوال دومتون اصلا معنی نداره، چون نه .NET و نه COM به کد مربوط نمی شن، که بخواهیم از نظر کد اونها رو با هم مقایسه کنیم. اصلا این دو مورد قابل مقایسه نیستند. COM یه تکنولوژی هست که کاربرد اون رو به اختصار گفتم، در .NET تکنولوژی ها و راه حلهای دیگه ای جای این مورد رو گرفتن (نه اینکه .NET به عنوان نسخه بعدی COM ارائه شده باشه).

قبل از سوال پرسیدن، باید یه آشنایی کلی با صورت مسئله داشته باشید. برای این کار هم می تونید کتاب یا سایتهای مربوط به این موارد رو بررسی کنید.
موفق باشید.