واضح آرشیو وب فارسی:سایت ریسک: اجرای ساختار cms های تحت وب در برنامه exe دلفی ali2100 17 مرداد 1387, 15:48سلام چنانچه با برنامه های مدیریت محتوی تحت وب CMS کار کرده باشید حتما می دانید که اینها شامل یک برنامه مادر هستند که امکان ساپورت و اجرای ماژولهای دیگر را می دهد. من دقیقا همین سیستم را میخواهم بصورت exe با دلفی پیاده سازی کنم. ماژولهای من بصورت exe خواهند بود. راهکار اجرایی چیست و ساختار معماری این سیستم چگونه خواهد بود؟؟؟ آیا میشود طبق عکس بعد از نصب ماژول ، بخش اصلی ماژول در محیط 1 و فرم های وابسته در محیط 2 اجرا شوند؟؟؟ . saalek110 17 مرداد 1387, 17:32با سلام. من دقیقا کار ماژول ها را در cms ها نمی دانم و دقیقا نمی دونم شما چرا می خواهید این طرح را اجرا کنید. ولی روشهایی را می گویم شاید مفید باشد: روش اول: فایلهای dll شامل توابعی هستند که برنامه exe آنها را به عنوان کتابخانه خود استفاده قرار می دهد. مثلا a.dll شامل 10 تابع است و ورژن بعدی a.dll که جایگزین آن شود تابع شماره 2 آن مثلا متفاوت است با تابع شماره 2 فایل قدیمی و همین باعث تغییر رفتار فایل exe هم خواهد شد. این روش موقعی مفید است که تعداد رفتارهای برنامه محدود باشد. روش دوم: فایلهای dat بسازید که حاوی اطلاعاتی است که فایل exe آنها را می خواند. و نسبت به هر اطلاعاتی واکنشی بنا به قرارداد تعیین شده توسط شما از خود نشان می دهد. این روش پیاده سازی اش خیلی زمان بر است ولی بسیار قدرت مانور بالایی به برنامه می دهد. یعنی کاملا برنامه می تواند رفتارش متحول شود. روش سوم: همان که خودتان گفتید یعنی exe بر روی exe : این روش معایبی دارد چون هر برنامه exe خود موقع اجرا با سیستم عامل طرف خواهد بود و exe اصلی کمتر بر آن نظارت دارد. و اگر قرار باشد آن exe ماژولی اجرا نشود پس همان روش دوم می شود و نیازی به exe بودن ماژول نیست. Sampro 26 مرداد 1387, 05:56سلام برنامه های مدیریت محتوی تحت وب با استفاده از برنامه های مدیریت محتوی می شه به راحتی ماژول ها رو مدیریت کرد و حتی محتوی سایت رو هم به راحتی تغییر داد مثلا بخش اخبار سایت ، بخش دانلود ، بخش فروشگاه یا گالری و اینا رو به راحتی با این قسمت مدیریت می کنن. سالک جان این دوستمون می خواد یه برنامه اجرایی بنویسه که دیگه لازم نباشه بره تو وبسایتش یا هم می خواد بده به مدیران سایتش(یا هم کاربرا) تا در مدیریت محتوای سایت راحت تر باشن . در این مورد امنیت یکم پایینه و باید مسائل امنیتی به خوبی رعایت بشه . ولی به نظرم با استفاده از کمپوننت های Indy دلفی می شه نوشتش . چون همین امروز یه جایی خودن که چه طوری می شه با Indy تو دلفی به یه وبسایت پوست ریکوئست داد . و این به نظرم اساس ارسال دستوره موفق باشید . ali2100 04 شهريور 1387, 23:01خیلی ممنون از شما ممکنه که من درست نتونستم منظورم را برسونم من یک برنامه ای می خواهم داشته باشم که امکان ساپورت و مدیریت زیر برنامه های مختلف را داشته باشه برنامه ای که توی ذهنم بود که مثال بزنم یک cms بود ویا اگه بخواهم مثال دیگه ای بزنم google desktop و یا vista sidebar که این امکان هست که گاجت های مختلفی را روش نصب کرد حالا می خواهم بدونم که سورس ویا مقاله و یا کامپوننت ویا .... هست که راهنمایی بفرمایید؟ . the_king 05 شهريور 1387, 00:44من توی یکی از پروژه هام که با وِیژوال بیسیک نوشته شده بود ساختار پلاگین را با استفاده از ActiveX ها بکار برده ام، اما چون می خواهید با دلفی و فایلهای exe کار کنید، نمی توانم روش کارآمد ActiveX را پیشنهاد کنم. اما یک راه حل مناسب را پیشنهاد می کنم : من در توضیحاتم از توابع استاندارد API ویندوز کمک می گیرم، صرفا از این جهت که از نمونه مشابه موجود در کتابخانه های دلفی بی اطلاعم. ولی شاید در جاهایی لازم باشد که حتما از توابع API استفاده کنید. شما یک برنامه اصلی خواهید ساخت که در هنگام اجرا شدن خود، هر فایل اجرایی که در یک زیرشاخه به نام Plugin ببیند اجرا می کند و سعی در برقراری ارتباط با آن خواهد کرد. پس اول در نظر بگیرید که پلاگین های شما قراره چه توانایی ها را داشته باشند و چه ورودی هایی از برنامه اصلی می گیرند و چه ورودی هایی را ارسال می کنند. بعد بر اساس این ارتباط کلی بین پلاگین و برنامه اصلی، یک رابط استاندارد تعریف کنید که از یکسری توابع تشکیل می شوند. مثلا اگر حداقل یکی از پلاگین های شما حالت نمایشی دارد، بایستی در تمامی پلاگین هایتان یک تابع به نام ShowPlugin تعریف کنید که توسط برنامه اصلی صدا زده شود. قطعا اگر موقعیت و اندازه پلاگین در صفحه نمایش تغییر می کند، این تابع نیاز به یکسری پارامتر ورودی مثل X و Y و Width و Height دارد که به پلاگین بفهماند که ترسیم خود را در چه محدوده ای انجام دهد. اصولا بایستی پارامتر هایی مانند hDC و hWnd هم داشته باشیم که پلاگین در پیدا کردن پنجره و Device Handle برنامه اصلی مشکلی نداشته باشد. در هر زمانی که برنامه اصلی لازم بداند این تابع را که در پلاگین قرار دارد صدا می زند تا رسم پلاگین انجام شود. یا مثلا اگر قرار است پلاگین بتواند مقدار داخل یک کنترلی که در برنامه اصلی قرار دارد را بفهمد یک تابع در برنامه اصلی به نام GetControlValue تعریف کنید که پارامتر ورودی آن ControlName و خروجی اش یک مقدار String باشد. چنین تابعی توسط پلاگین صدا زده می شود تا از مقادیر کنترلهای برنامه اصلی با خبر شود. موضوعی که باقی می ماند، نحوه صدا زدن تابع و ارسال مقادیری است که در دو برنامه متفاوت قرار دارند : یک روش ساده ارسال پیغام توسط تابع استاندارد API ویندوز است، یعنی SendMessage یعنی شما یک Structure تعریف می کنید که فیلد های لازم برای توابع را در خود جای می دهند و بعد به عنوان پارامتر ورودی توسط SendMessage به پنجره برنامه اصلی یا پلاگین ارسال می کنید. وقتی این پیغام توسط پنجره مقصد دریافت شد باید بر اساس آن Structure تعریف شده، محتوای آنرا استخراج کند. یک روش دیگر ایجاد کردن توابع Export شده Stdcall استاندارد ویندوز است که پسوند متداول آنها DLL است. اینجوری دیگر نیازی به اجرا کردن پلاگین ها نیست. صرفا با توابعی مثل LoadLibrary آن فایل DLL را در حافظه قرار می دهید و تابع مورد نظر را Call می کنید. در مورد دلفی نمی توانم نمونه کدی ارائه کنم، ولی توصیه می کنم راهنمای پلاگین نویسی و بکار گیری پلاگین ها را در نرم افزار Multimedia Builder مطالعه کنید چون تکنیک های مناسب را در ساختار خود دارد. چون پلاگینها جزو قابلیت های پیشرفته محصولات نرم افزاری هستند آموزش های ابتدایی و متعارفی برای آن نخواهید یافت مگر در مورد پلاگین نویسی برای یک محصول خاص، وگرنه بیشتر باید روی تکنیک های اختصاصی خودتان تکیه کنید. ali2100 05 شهريور 1387, 11:54از شما بخاطر اطلاعات با ارزشتان ممنونم. همانطور که گفته اید: "چون پلاگینها جزو قابلیت های پیشرفته محصولات نرم افزاری هستند آموزش های ابتدایی و متعارفی برای آن نخواهید یافت مگر در مورد پلاگین نویسی برای یک محصول خاص، وگرنه بیشتر باید روی تکنیک های اختصاصی خودتان تکیه کنید." دوستان دیگه اگر تکنیک خاص و ... برای این کار داشته باشند ممنون میشوم مطرح کنند تا به یک راهکار مناسب برسیم . farhad 110 05 شهريور 1387, 15:35سلام. شما ميتونيد از Delphi Application Framework Library استفاده كنيد. با استفاده از اين ابزار برنامه شما قابليت استفاده از پلاگين رو پيدا ميكنه، اما اين پلاگين ها فقط بايد با ساختار package دلفي طراحي شده باشند.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1496]