PDA

View Full Version : تفکیک پروژه در فایلهای مختلف



حمیدرضاصادقیان
شنبه 11 مهر 1388, 15:55 عصر
سلام دوستان.دارم روی یک پروژه مالی کار میکنم.سوالی که اینجا مطرح است اینه که دارم سیستم رو جوری طراحی میکنم که امکان این باشه اگر مشتری نیاز داشت فقط یک بخش رو خریداری کنه بتونیم ارائه بدیم.حالا میخواستم ببینم برای پیاده سازی اون بهتره قسمتهای اصلی برنامه رو داخل package قرار بدم یا کل قسمت در قالب یک فایل اجرایی باشه و با روشهای مختلف مثل استفاده از قفل سخت افزاری ، استفاده از Directive Compiler ها و... این قسمتها رو جدا کنیم.
ممنون.

Felony
شنبه 11 مهر 1388, 17:51 عصر
فکر کنم اگه کلا یه فایل باشه بهتره ، شما یه فایل تحویل مشتری بده و بسته به نوع محصولی که مشتری خریداری کرده بهش قفل سخت افزاری اون محصول رو بده یا سریال نرم افزار رو طوری طراحی کن که مثلا اگر فرمول سریال به صورت X بود برنامه با امکانات X و اگه Y بود برنامه با امکانات Y اجرا شه ...

Mahmood_M
شنبه 11 مهر 1388, 20:16 عصر
با روشهای مختلف مثل استفاده از قفل سخت افزاری ، استفاده از Directive Compiler ها و... این قسمتها رو جدا کنیم.
فقط در مورد این یک مورد : Compiler Directive ها برای زمان کامپیل هستند ، یعنی مشخص میکنند که چه چیزی کامپایل بشه و یا چه چیزی کامپایل نشه ...
وقتی چیزی کامپایل نشه یعنی در فایل برنامه وجود نداره و این یعنی اینکه دیگه نمی تونید فعال یا غیر فعالش کنید ... !

موفق باشید ...

حمیدرضاصادقیان
یک شنبه 12 مهر 1388, 07:26 صبح
سلام.درمورد Directive compiler ها میدونم به این صورت کار میکنه.به همین خاطر گفتم.چون دیگه وقتی یک نرم افزار حسابداری به یکی بدی نمیتونه کرکش کنه و از جاهی دیگه استفاده کنه.فقط اینجوری برای چند نوع مختلف setup بسازم و هردفعه مثلا 20 تا فایل بایدکامپایل کنم.اینش یک مقداری سخته.باز منتظر راه حل دوستان هستم
ممنون.

hojjatcroos
یک شنبه 12 مهر 1388, 09:57 صبح
سلام
بهترین روش همون روش خودتون هستش( استفاده از Directive compiler که خوب بعد اون ها رو چند تا Setup می کنید)

حمیدرضاصادقیان
یک شنبه 12 مهر 1388, 12:24 عصر
ممنون.ولی مشکل این روش هم این هست که اگر فرضا 50 آیتم تفکیکی داشتیم باید 50 تا setup بسازیم؟؟؟
که این خیلی مشکل ساز خواهد شد.

Ahmad Chehreghani
یک شنبه 12 مهر 1388, 12:46 عصر
من چند سال پيش روي يک پروژه حسابداري کار ميکردم. هر قسمت رو توي يک DLL قرار داده بوديم. وقتي مشتري يک Dll رو توي شاخه مربوطه قرار ميداد يک قسمت جديد به پروژه اضافه ميشد! (منو، فرم و ...).
هر DLL وقتي فراخواني ميشد قفل رو هم چک ميکرد، همين فراخواني DLL ها تکنيک خودش رو داشت.
اگر مجبور بوديم قسمتي از نرم افزار را با يک زبان برنامه نويسي ديگه بنويسيم ، با زبان جديد يک DLL مي ساختيم و در شاخه نرم افزار قرار ميداديم.

hojjatcroos
یک شنبه 12 مهر 1388, 12:59 عصر
سلام
میشه بگید این ایتم ها به چه صورت اضافه یا کم میشند مثلا به صورت یک صفحه بیش تر آیتمهای یک منو یا...
با تشکر

حمیدرضاصادقیان
یک شنبه 12 مهر 1388, 14:46 عصر
ممنون.ببینید بعضی از قسمتها نیاز هست یک گزینه باشه مانند تجمیع سند که میخواهیم تجمیع ماهانه رو تفکیک کنیم یک مورد نیز به صورت سیستم هست مانند سیستم اموال.

درمورداینکه داخل dll باشد این سوال مطرحه که باید در داخل یک جای دیگه چک کنیم ببینیم این کاربر باید از چه dll هایی استفاده کنه.چون در غیر اینصورت اگر طرف بیاد تمامی dll هارو پیدا کنه و در مسیر برنامه اش کپی کنه تمامی قابلیتها رو داره!!!
من خودم به ذهنم رسیده بود از پکیج ها استفاده کنم و موارد مورد نظر رو داخل پکیجهای گوناگون قرار بدم بعد در مواقع خاصاونو صدا بزنم.فقط باید شماره پکیج های گوناگون رو در داخل یک قفل قرار بدم که بدونم چه کاربری چه پکیج هایی خریداری کرده که اونارو براش لود کنیم.
بازم منتظر نظر اساتید هستم.
ممنون.

Ahmad Chehreghani
یک شنبه 12 مهر 1388, 22:55 عصر
میشه بگید این ایتم ها به چه صورت اضافه یا کم میشند مثلا به صورت یک صفحه بیش تر آیتمهای یک منو یا...



درمورداینکه داخل dll باشد این سوال مطرحه که باید در داخل یک جای دیگه چک کنیم ببینیم این کاربر باید از چه dll هایی استفاده کنه.چون در غیر اینصورت اگر طرف بیاد تمامی dll هارو پیدا کنه و در مسیر برنامه اش کپی کنه تمامی قابلیتها رو داره!!!

تقريبا ميشه گفت که اينطوري در نظر بگيريد که وقتي نرم افزار اجرا ميشه ابتدا مشخصات قفل رو ميگيره (شناسايي ميکنه) و ذخيره ميکنه. بعد يک تابع رو از DLL ها فراخواني ميکنه و مشخصات قفل مورد نياز را از اونها ميخونه و با مشخصات ذخيره شده مقايسه ميکنه. اگه برابر بود که اونها را لود ميکنه وگرنه بيخيال ميشه.

من راه يک ستاپ و چند نوع قفل رو بيشتر ميپسندم


بهترین روش همون روش خودتون هستش( استفاده از Directive compiler که خوب بعد اون ها رو چند تا Setup می کنید)

به نظر من اگه از قفل سخت افزاري استفاده ميکنيد بهتره مشتريهاتون رو با شماره سريال قفل بشناسيد. يعني هرکي قفل داشت مشتري هست، نداشت بايد بخره :دي

-------------------------
200 مين پستمم زدم :دي

حمیدرضاصادقیان
دوشنبه 13 مهر 1388, 07:33 صبح
ممنونم.اینم روش جالبیه.حالا فرقی نمیکنه که dll یا bpl باشه.ظاهرا میگن استفاده از bpl مزیتهای دیگری نسبت به dll داره.درسته؟

hojjatcroos
دوشنبه 13 مهر 1388, 14:58 عصر
سلام
استفاده از پلاگین گزینه خوبی میتونه باشه؟