PDA

View Full Version : سوال در مورد استفاده بهینه از سرعت و حجم برنامه



kourosh_ag
شنبه 05 خرداد 1386, 23:12 عصر
سلام
می خواستم بدونم که در یک برنامه در سطح وسیع ( مثلا حسابداری جامع که شامل مالی ، صنعتی، انبارداری، پرسنل هاو... ) برای تعیین پارامترهای عمومی برنامه مثل سطح دسترسی کاربران در فرم های مختلف و تنظیمات شخصی کاربر و ... استفاده مستقیم از بانک اطلاعاتی بهتره یا اینکه مشخصات رو در اول لود برنامه در ماژول ها و ثابتهای برنامه وارد کنم.

h_sadeghynejad
شنبه 05 خرداد 1386, 23:37 عصر
به نظر من بستگی به برنامت داره در جایی که برنامه تو توی شبکه هستش برای این که امکان دسترسی به یه قسمت رو به کاربر ندی مجبور هستی که دائما به بانک یه سری بزنی و همین اتصال های مدام به بانک باعث میشه که یه خورده توی شبکه سرعت بیاد پائین و اگه یه برنامه به صورت Local اجرا بشه اگه یه متغیر عمومی تعریف کنی که سطح دسترسی کاربر رو تعیین کنی ممکنه باز این هم مشکل داشته باشه
به صورت کلی بهترین راه حل اینه که همون اول که کاربر میخواد Login کنه قسمتهایی که نمیتونه بهش دسترسی داشته باشه رو مخفی کنی که اصلا توی برنامه دیگه نیازی به ارتباط دوباره با بانک برای این منظور نباشه
موفق باشی

kourosh_ag
شنبه 05 خرداد 1386, 23:47 عصر
خوب در این صورت استفاده از این ثابتها که باعث پر حجم شدن برنامه میشه باعث کم شدن سرعت برنامه نمیشه؟

h_sadeghynejad
شنبه 05 خرداد 1386, 23:58 عصر
نه دیگه نیازی به این ثابتها نیست مثل توی یه منو یه گزینه داری به نام ابزارهای مدیریتی که میخوای یه کاربر عادی به این منو دسترسی نداشته باشه پس همون موقع که Pass ش رو چک میکنی محدودیتهای دسترسیش رو چک کن اونوقت اگه نبایستی وارد این منو بشه میزنی Visible این گزینه رو false مکنی در این صورت کاربر اصلا این گزینه رو نمیبینه که بخواد وارد بشه فقط Login شدن شاید یه خورده طول بکشه که بستگی به برنامت داره

kourosh_ag
یک شنبه 06 خرداد 1386, 00:04 صبح
مسئله انجاست که دسترسی به یک فرم فقط از یک طریق نیست و این فرم در هر جا کلید های میانبر متفاوتی میتونه داشته باشه مثلا کاربری دسترسی به فرم اسناد رو داره و هنگام کار با فرم اسناد میتونه با یک کلید میانبر به فرم ابزارهای مدیریتی بره که در این جا لازمه که دوباره سطح دسترسی اون چک بشه

azmoodeh
یک شنبه 06 خرداد 1386, 00:21 صبح
به نظر من بهتره یک کلاس تعریف کنید که اطلاعات مربوط به ورود و نام کاربری و سطح دسترسی و ... رو به صورت ایده ال و استانداردی نگهداری کنه . حالا همه فرمها و قسمتهای مختلف برنامه یک Propertyاستاتیک از جنس این کلاس داشته باشند و موقع صدا زدن همدیگه به هم پاس بدن . در هنگام لود هر قسمت هم چنانچه این متغیر وجود نداشت اون رو ایجاد کنه و چنانچه که وجود داشت ( قبلا کاربر از یک فرم دیگه وارد شده) که فقط از اطلاعاتش استفاده کنه و .... کارهای مفیدی که میشه با استفاده از این روش انجام داد.

امیدوارم این روش بتونه کمکتون کنه .
موفق باشید

maroot
یک شنبه 06 خرداد 1386, 00:38 صبح
بهترین روش استفاده از روش آقای صادقی نژاد هست که اصلا کاربر چیزی رو نبینه که تحریک به انجامش بشه ولی از آونجا که میان برهای زیادی برای فرم های شما هست باید در موقع ایجاد مبان بر ها مثلا Load شدن فرم هم سطح دسترسی کاربر (که بهتره موقع Login در یک متغر عمومی قرار داشته باشه ) چک بشه و همون موقع اون راه میان بر بسته بشه و Invisible بشه

kourosh_ag
یک شنبه 06 خرداد 1386, 00:41 صبح
ممنون
من هم همین کارو کردم ولی چون تعداد متغیر ها خیلی زیاد میشه حجم برنامه بالا میره ولی فکر میکنم که بهترین راه حل باشه. به هر حال از کمکتون ممنونم

kourosh_ag
یک شنبه 06 خرداد 1386, 00:42 صبح
ولی لطفا اگر راه حل بهتری به ذهنتون رسید دریغ نکیند ...........

maroot
یک شنبه 06 خرداد 1386, 00:54 صبح
چرا تعداد متغیرها بالا میره؟ شما مگه چند تا سطح دسترسی دارید؟ و تعدادش هم مهم نیست شما با یه الگوریتم خاص می تونید سطح دسترسی تون رو به یک integer تبدیل کنید که دیگه نه حجم زیادی هم نمیگیره

Keyvan_Y
یک شنبه 06 خرداد 1386, 02:45 صبح
می شه یکم بیشتر توضیح بدید

محسن بابائی
یک شنبه 06 خرداد 1386, 07:28 صبح
من که از یک متغیر string که از تعدادی صفر و یک مثلا (11101010111) تشکیل شده برای تعیین سطوح دسترسی استفاده می کنم و فکر نکنم اونقدر فضا نیاز داشته باشه یا واسه چک کردن زیاد روی سرعت برنامه تاثیر داشته باشه .

maroot
دوشنبه 07 خرداد 1386, 01:01 صبح
یک راهش دقیقا چیزیه که آقای بابایی فرمودن
راه دیگش اینه که برای جالت های مختلف یک عدد در نظر بگیری و در موقع چک کردن این عدد رو در select case چک کنی