PDA

View Full Version : حرفه ای: build کردن



haaash
پنج شنبه 04 تیر 1394, 16:14 عصر
سلام دوستان
من دارم یک cms می نویسم با زبان سی شارپ
همونطور که می دونید سی شارپ کامپایل می کنه کد رو! من می خوام مثل ورد پرس که افزودن ماژول داره، تو cms خودم همچین چیزی رو پیاده سازی کنم اما چون کد باید اول کامپایل بشه تو سی شارپ تا کار کنه همچین چیزی رو نمیتونم پیاده سازی کنم!
یعنی باید تمام ماژول ها رو همون اول درست کنم و بعد کامپایل کنم!
اما من میخوام ماژول ها رو هر چند وقت بکبار تو Cms بزارم و کاربر به دلخواه استفاده کنه.
می خواستم بدونم راهی یا ااگوریتمی هست که من بتونم این کار پیاده سازی کنم؟!
با تشکر

hakim22
پنج شنبه 04 تیر 1394, 16:34 عصر
می توانید از فریم ورک MEF (https://msdn.microsoft.com/en-us/library/dd460648(v=vs.110).aspx)استفاده کنید.

این ابزار به شما این امکان رو میده که dll ها و فایلهای هر ماژول رو در زمان اجرا (و نه در زمان کامپایل) کشف کنید و به پروژه ی اصلی متصل کنید.
بدون اینکه نیاز باشه اونها رو مستقیما Reference بدید.

haaash
پنج شنبه 04 تیر 1394, 17:29 عصر
باز هم تفاوتی به اون صورت تفاوت نمی کند چون باید Dll های ماژول را جای صدا زد و بنا به خواسته ازش استفاده کرد که این امر هم نیاز به کامپایل اولیه دارد!

hakim22
پنج شنبه 04 تیر 1394, 22:27 عصر
به هر حال PHP یک زبان اسکریپتی است و ASP یک زبان از پیش کامپایل شده .

کامپایل شدن در نتیجه تاثیری نداره ، با استفاده از MEF شما میتوانید dll ماژول رو در یک فولدر خاص کپی کنید (همانند نصب ماژول های جوملا) و سایت اصلی (CMS) محتوای آنرا شناسایی و ماژول مربوطه را به پروژه اضافه میکند. اینکار در زمان اجرا اتفاق می افتد و شما نیاز به تغییر سورس و کامپایل و بیلد ندارید.

---

شما میتوانید برای بعضی از قسمتها از کلاسهای Dynamic استفاده کنید. نگاهی به DLR در دات نت بیاندازید.

همچنین امکان بهره بردای از IronPython به عنوان یک زبان اسکریپتی در ASP وجود دارد.
برای افزودن قابلیتهای بیشتر به ماژولها میتوانید با یک API که مترجم ساده ای از IronPython باشد کار کنید.