PDA

View Full Version : سوال: استفاده از یه متغییر در تمام صفحات ASP.NET



kamran_14
شنبه 09 بهمن 1389, 19:14 عصر
سلام
1- می شه در هنگام نوشتن سایت بشه از یک متغییر در تمام صفحات استفاده کرد؟ اگه جوابتون استفاده از کلاسه می شه یه مثال ساده از کلاس بزنید و اون کلاس رو در صفحات دیگه استفاده کنیند ممنون.

Mostafa_Dindar
شنبه 09 بهمن 1389, 19:30 عصر
سلام ،
بله ! شما میتونید از Application State (http://www.c-sharpcorner.com/UploadFile/annathurai/542/Default.aspx) استفاده کنید .

موفق باشید

tanha_mkh
پنج شنبه 14 بهمن 1389, 12:23 عصر
یک روش دیگه اینه که در صفحه مستر پیج اون متغییر رو به صورت public static تعریف کنید و در صفحات دیگر به صورت زیر فراخوانی کنید
masterpage.s

aminghaderi
پنج شنبه 14 بهمن 1389, 13:37 عصر
سلام ،
بله ! شما میتونید از Application State (http://www.c-sharpcorner.com/UploadFile/annathurai/542/Default.aspx) استفاده کنید .
موفق باشید
این موارد لوک و آنلوک رو من متوجه نشدم ؟! می شه یکم توضیح بدین؟؟؟
و اینکه تا جایی که من متوجه شدم یکی از معایبش این بود که بعد بسته شدن برنامه متغیر ها از بین می روند؟! این چطوری هست چون یه برنامه تحت وب که هیچ وقت بسته نمی شود؟! یا منظورش چیز دیگه هست؟؟؟؟
ویه سوال دیگه از لحاظ امنیتی چطوره؟؟؟می شه روش حساب کرد؟؟ تاجایی که متوجه شدم فقط خود برنامه می تونه از این متغیر ها استفاده کنه و استفاده از اون هم دست برنامه نویس هستش ...؟؟؟؟

این موارد رو اگر توضیح بدید یه دنیا ممنون می شم.:قلب:



یک روش دیگه اینه که در صفحه مستر پیج اون متغییر رو به صورت public static تعریف کنید و در صفحات دیگر به صورت زیر فراخوانی کنید
masterpage.s
کمی بیشتر توضیح می دید؟؟؟:قلب:

Mostafa_Dindar
پنج شنبه 14 بهمن 1389, 14:31 عصر
این موارد لوک و آنلوک رو من متوجه نشدم ؟! می شه یکم توضیح بدین؟؟؟

از اونجایی که این متغیر در تمامی صفحات قابل دسترس هست , امکان اینکه چند کلاینت همزمان بخواهند مقدار آن را تغیر دهند زیاد است , برای جلوگیری از مشکلات همزمانی از متدهای lock()و unlock() استفاده میشود .


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


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

بسیار Secure هست , چون سمت سرور ذخیره میشود .



موفق باشید

iman_ad
جمعه 15 بهمن 1389, 18:15 عصر
یک روش دیگه اینه که در صفحه مستر پیج اون متغییر رو به صورت public static تعریف کنید و در صفحات دیگر به صورت زیر فراخوانی کنید
masterpage.s
نظر شما با stateless بودن web app کاملا تناقض داره و دوست عزیز اینم به ذات web بر می گرده، بعد از رندر شدن صفحه فاز clean up اتفاق می افته و کلا استفاده از متغییرهای static توصیه نمی شه مگر اینکه بدونی داری چیکار می کنی مثل الگوی singlton در دسترسی به داده ها
شاید بگید خوب متغییر static ربطی به instance از اون کلاس نداره و در سطح app قابل استفاده است ولی web app ماتی ترد است و متغییر های استاتیک safe thread نیستند.