PDA

View Full Version : حرفه ای: ماژولار کردن یک برنامه در برنامه نویسی ویندوزی



betisa
چهارشنبه 10 آذر 1389, 17:30 عصر
سلام به همه
ما برنامه ای داریم می نویسیم که باید به صورت ماژولار طراحی بشه یعنی این که باید به روشی نوشته بشه که در اولین دفعه یک فایل اجرایی تحویل مشتری داده میشه و در دفعات بعدی فقط DLL هایی که مربوط به ماژول ها و یا قابلیت های برنامه که سفارش داده شده قرار داده می شود.

حالا سوال اینجاست که برنامه اولیه چگونه باید فرم ها رو که در DLL هست رو فراخوانی کند و با آنها ارتباط برقرار کند .

مثل plugin ها و Addin ها

betisa
پنج شنبه 11 آذر 1389, 18:56 عصر
اساتید گرامی آیا کسی در این مورد اطلاعاتی ندارد؟

robat7
جمعه 12 آذر 1389, 01:50 صبح
سلام
بسيار ايده جالبي است ولي نخستين مشكل اين است كه وقتي شما مي خواهيد يك امكان به برنامه خود اضافه نماييد مثلا يك منو چگونه مي خواهيد آن را به منوي برنامه اجرايي خود بيافزاييد؟
شايد مجبور باشيم هنگام Initillize كردن فرم منو ها را از يك dll ديگر فراخواني نماييم.

دوستان راهنمايي بفرمايند

hassan_kahrizy
جمعه 12 آذر 1389, 10:57 صبح
بسمه تعالی
با سلام
کار به این سادگی نیست .
یک راهش باید بگردی روی بحث پلاگین . من قبلا دوستم روی این کار کرده بود و به نتیجه هایی رسید.
یک راه دیگه نوشتن کدهای آن قسمت و اضافه کردن آن و اجرای آن کدها بصورت runTime .فقط برای اینکه سورس ها سرقت نشه باید کدش کنی بعد دیکودش کنی.

hassan_kahrizy
جمعه 12 آذر 1389, 11:03 صبح
بسمه تعالی
با سلام
کار به این سادگی نیست .
یک راهش باید بگردی روی بحث پلاگین . من قبلا دوستم روی این کار کرده بود و به نتیجه هایی رسید.
یک راه دیگه نوشتن کدهای آن قسمت و اضافه کردن آن و اجرای آن کدها بصورت runTime .فقط برای اینکه سورس ها سرقت نشه باید کدش کنی بعد دیکودش کنی.
شما باید بتونید تکه کدهای خودتون رو

betisa
یک شنبه 14 آذر 1389, 15:53 عصر
یک راه دیگه نوشتن کدهای آن قسمت و اضافه کردن آن و اجرای آن کدها بصورت runTime
چطور میشه این کار رو کرد میشه تکه کدی رو برای مثال قرار بدید.

amir_alaki
یک شنبه 14 آذر 1389, 18:46 عصر
با سلام خدمت دوست عزیز

اکر فقط مسئله در همین حد که شما مطرح کردین باشه ، کار راحتیه
کافیه شما یک برنامه مرکزی داشته باشین که وظیفه اون این باشه که هروفت مثلا یک DLL جدید به پوشه خاصی اضافه شد کلیه فرم های اونو بدست بیاره و مثلا در منویی به صورت dynamic بچینه و اجرا کنه
برای بدست آوردن لیست کلاس ها و کلیه زندگی یک DLL در .Net میشه از کلاس هایی که در System.Reflection هستند مثل Assembly استفاده کرد.

موفق باشید

علیرضا حسن زاده
یک شنبه 14 آذر 1389, 20:24 عصر
می تونی از Reflection استفاده کنی یعنی جز Reflection راه دیگه ای نداری در این مورد هم اگه کمکی خواستین در حد توان می تونم کمک می کنم (PM بدین)

betisa
چهارشنبه 17 آذر 1389, 21:21 عصر
سلام
اگر می شه یک نمونه کد برای مثال قرار بدید.

علیرضا حسن زاده
پنج شنبه 18 آذر 1389, 09:23 صبح
تو سایت جستجو کن در مورد پلاگین، همشون از Reflection استفاده کردن

joker
پنج شنبه 18 آذر 1389, 10:13 صبح
این وسط کد کردن و امنیت چه ربطی داشت به سوال این بنده خدا ؟

برنامه نویسی ماژولار به این صورت هست که شما به عنوان یک برنامه نویس یک استاندارد برای لود کردن مثلا Dll ها در نظر میگیری ، قرار نیست هر dll ی که از هر جا میرسه توی فولدر قرار بگیره ،تحت برنامه شما اجرا بشه که...
اونوقت شما کافیه موقع اجرای برنامه اصلی ، یک لیست از dll های شاخه جاری بگیری و دونه دونه توی برنامه به صورت داینامیک ( LoadLibrary ) صداشون بزنی
چون استاندارد و نام توابع مورد نیازت را هم میدونی دیگه هر کاری میتونی باهاش بکنی.