PDA

View Full Version : سوال: اجراي ماژولها در زمان اجرا



developer_rahimi
جمعه 12 تیر 1388, 15:16 عصر
دوستان سلام
من ميخوام به برنامه اي كه نوشتم بتونه در شرايط مختلف ماژولهاي مختلفي اجرا كنه. ببينيد يه برنامه مينويسيد و ميفروشيد حالا توي پشتيباني مثلا ماژولي بعنوان حقوق و دستمزد و يكي از مشترياتون درخواست ميكنه. تو VB.NET چطوري ميتونيد برنامه رو طراحي كنيد كه بتونه ماژول مورد نظرو اجرا كنه بدون اينكه exe جديد واسش بفرستيد. مثلا توي دلفي فايلهاي bpl موقع اجرا شدن برنامه load ميشن بنابراين خيلي راحت توي پشتيباني نرم افزار ميشه توانائيهاي مختلفيو با توجه به پولي كه مشتري ميده به برنامه اضافه كنيد درحاليكه همه مشترياتون از يه فايل exe استفاده ميكنن. مثل برنامه همكاران. خيلي دنبالش گشتم ولي پيدا نكردم. كسي روش اين كارو بلده؟

adinochestva
جمعه 12 تیر 1388, 17:59 عصر
در مورد reflection تحقیق کن ;)

developer_rahimi
شنبه 13 تیر 1388, 11:22 صبح
مرسي دوست من ولي يه كم راجع بهش توضيح ميدي؟ كاربردش چيه و كجا دنبالش بگردم؟ رفرنس داري واسش؟

naeeme
شنبه 13 تیر 1388, 14:10 عصر
system.reflection این namespace برای همین کارها ساخته شده. با استفاده از اون می تونین، ساختار یک کلاس( dll) رو دربیارین و متدهاش رو پیدا کنین و اونها را invoke کنین.
msdn برای آشنایی خیلی خوبه. نمونه کد هم توی اینترنت زیاد پیدا میشه. اما برنامه شما واقعا باید برای پذیرش یک ماژول نوشته شده باشه تا بتونین از این خاصیت استفاده کنین.

developer_rahimi
شنبه 13 تیر 1388, 20:31 عصر
ممنونم از راهنمائيتون ولي يه اشكالي هست. من يه نمونه كد پيدا كردم اما فقط پراپرتيها و متدها رو درمياره من ميخوام فرمهاي جديدي اجرا بشن. اگه جسارت نباشه من يه برنامه نويس حرفه اي هستم البته همه چيز را همگان دانند و به دانش دوستان خيلي احترام قائلم. تا بحال اينكارو نكردم. يه برنامه جديد و خيلي قوي طراحي كردم كه داره فروش ميره و براي اولين بار ميخوام پشتيبانيشو اينطوري انجام بدم. اين برنامه رو ببين نظر شما دوستان واسم مهمه http://www.gesmic.ir در هرحال ب ديدن اين مطلب دقيقا متوجه ميشيد كه چيكار ميخوام بكنم.
يه سري از مشتري برنامه پايه رو ميخرن بعدا درخواست ميكنن ماژول مثلا حقوق و دستمزدو بهشون بدم. نميخوام سنتي كار كنم و exe جديد بدم بهشون ميخوام يطور ديگه اينكارو بكنم كه ماژولام دسته بندي بشن.
به هر حال از وقتي كه گذاشتيد نهايت سپاسگذاريو دارم و ممنون ميشم اگه يه راه حلي بديد يا اگه زحمتي نيست نمونه كدي بهم بديد.

naeeme
یک شنبه 14 تیر 1388, 09:16 صبح
من قبلا هم گفتم که برنامه شما واقعا باید برای پذیرش یک ماژول نوشته شده باشه، یعنی اینکه وقتی شما با استفاده از System.Reflection.MethodInfo.Invoke بخواید یک متد رو اجرا کنین، بتونید به راحتی، ورودیهای و خروجیهای این متد رو تشخیص و اختصاص بدین.
یعنی طراحی سیستم شما باید براساس این قابلیت انجام شده باشه. در مورد نحوه استفاده از Reflection تاحدی می تونم کمکتون کنم اما در مورد اضافه کردن ماژول، این توانایی رو ندارم.

موفق باشید

developer_rahimi
دوشنبه 15 تیر 1388, 21:30 عصر
ممنون ميشم اگه اين موضوعو ادامه بديم. اين مسئله مهميه خيلي دارم سعي ميكنم اطلاعات جمع كنم اگه چيز خاصي گيرم اومد ميذارمش اينجا

nickaein.i
یک شنبه 11 مرداد 1388, 22:03 عصر
با System.Reflection میشه یه جور سیستم قفل هم فراهم کرد؟

یعنی اینکه یه نفر نتونه با کپی کردن یه نرم افزار با امکانات بیشتر از اون استفاده کنه؟