نمایش نتایج 1 تا 8 از 8

نام تاپیک: خواندن اطلاعات از یک استاتیک در ASP.NET MVC

  1. #1
    کاربر دائمی آواتار nunegandom
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    الان اصفهان
    سن
    32
    پست
    828

    Question خواندن اطلاعات از یک استاتیک در ASP.NET MVC

    سلام
    من میخوام یکسری اطلاعات رو از دیتابیس و جاهای دیگه لیست کنم توی کل برنامه
    یک بار این اطلاعات رو بگیرم و دفعات بعدی از همین لیست بخونم برای تمام کاربرا مثل تنظیمات سایت و غیره
    فقط مسئله اینه نمیدونم باید چکار بکنم
    توی Global.asax بذارم؟ بعد چطوری بخونم؟ اطلاعاتی دارید بگذارید استفاده ببریم ممنون

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: خواندن اطلاعات از یک استاتیک در ASP MVC

    اگر حجم لیستی که بهش اشاره کردید زیاد نیست می توانید اون رو در کالکشن Application قرار بدید و هر گاه نیاز داشتید از اونجا بخوانید. فرض کنید لیست شما این طوری تعریف شده باشه:
    List<Person> people = new List<Person>();

    در این صورت به این شکل می توانید اون را داخل کالکشن Application قرار بدید:
    Application["People"] = people;

    و هر جای برنامه بهش نیاز داشتید این طوری بخوانیدش:
    if(Application["People"] != null) // اطمینان از این که لیست شما الان در قالب یک آبجکت داخل کالکشن قرار داره
    {
    var people = Application["People"] as List<Person>;
    // rest of your code...
    }


    دقت داشته باشید با توجه به اینکه کالکشن فوق در حافظه Ram سرور نگهداری میشه قرار دادن آبجکت های بزرگ در اون می تونه Performance برنامه شما رو کاهش بده. علاوه بر اون، اگر این مورد رو رعایت نکردید و برنامه تون رو روی هاست اشتراکی قرار دادید با توجه به این که اکثر هاست ها جهت تقسیم منابع سرور بین سایت های مختلف، برای هر سایت Application Pool جداگانه تعریف می کنند و مقدار رم کمی رو به هر سایت اختصاص میدن استفاده بیش از حد از کالکشن Application میتونه بواسطه پر کردن مقدار حافظه اختصاص داده شده باعث Restart شدن Application Domain شما بشه و سلامت اجرای برنامه شما زیر سوال بره.

  3. #3

    نقل قول: خواندن اطلاعات از یک استاتیک در ASP MVC

    نقل قول نوشته شده توسط مهدی کرامتی مشاهده تاپیک
    اگر حجم لیستی که بهش اشاره کردید زیاد نیست می توانید اون رو در کالکشن Application قرار بدید و هر گاه نیاز داشتید از اونجا بخوانید. فرض کنید لیست شما این طوری تعریف شده باشه:
    List<Person> people = new List<Person>();

    در این صورت به این شکل می توانید اون را داخل کالکشن Application قرار بدید:
    Application["People"] = people;

    و هر جای برنامه بهش نیاز داشتید این طوری بخوانیدش:
    if(Application["People"] != null) // اطمینان از این که لیست شما الان در قالب یک آبجکت داخل کالکشن قرار داره
    {
    var people = Application["People"] as List<Person>;
    // rest of your code...
    }


    دقت داشته باشید با توجه به اینکه کالکشن فوق در حافظه Ram سرور نگهداری میشه قرار دادن آبجکت های بزرگ در اون می تونه Performance برنامه شما رو کاهش بده. علاوه بر اون، اگر این مورد رو رعایت نکردید و برنامه تون رو روی هاست اشتراکی قرار دادید با توجه به این که اکثر هاست ها جهت تقسیم منابع سرور بین سایت های مختلف، برای هر سایت Application Pool جداگانه تعریف می کنند و مقدار رم کمی رو به هر سایت اختصاص میدن استفاده بیش از حد از کالکشن Application میتونه بواسطه پر کردن مقدار حافظه اختصاص داده شده باعث Restart شدن Application Domain شما بشه و سلامت اجرای برنامه شما زیر سوال بره.
    از کجا میشه فهمید مثلا یه آبجکتی که توی حافظه قرار داره چقدر حجم رم رو گرفته و داره از منابع مصرف میکنه؟

  4. #4

    نقل قول: خواندن اطلاعات از یک استاتیک در ASP MVC

    نقل قول نوشته شده توسط سعید کشاورز مشاهده تاپیک
    از کجا میشه فهمید مثلا یه آبجکتی که توی حافظه قرار داره چقدر حجم رم رو گرفته و داره از منابع مصرف میکنه؟
    فک کنم بشه حداکثر فضایی که یک آبجکت اشغال میکنه رو خودمون محاسبه کنیم از طریق سایز انواع داده در سی شارپ مثلا نوع داده بول یک بایت، دسیمال 16 بایت، int32 مقدار 4 بایت و به همین ترتیب محاسبه کنیم البته نمیدونم چقد دقیق میتونه باشه این روش

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    ایران
    پست
    487

    نقل قول: خواندن اطلاعات از یک استاتیک در ASP MVC

    از cache هم میتونید استفاده کنید

  6. #6
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: خواندن اطلاعات از یک استاتیک در ASP MVC

    از کجا میشه فهمید مثلا یه آبجکتی که توی حافظه قرار داره چقدر حجم رم رو گرفته و داره از منابع مصرف میکنه؟
    با نرم افزارهای Memory Profiler به راحتی میشه این کار رو انجام داد.

  7. #7
    کاربر دائمی آواتار nunegandom
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    الان اصفهان
    سن
    32
    پست
    828

    نقل قول: خواندن اطلاعات از یک استاتیک در ASP MVC

    خیلی ممنون جناب کرامتی و جناب مهدوی
    همین Application مورد نیازم هست ممنون

  8. #8
    مدیر بخش آواتار ahmad156
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    پست
    2,104

    نقل قول: خواندن اطلاعات از یک استاتیک در ASP.NET MVC

    به شخصه در لایه سرویس ، زمانی که تغییرات زیاد نیست و اطلاعات کمتر بروزرسانی میشوند ، متدی همانند کد زیر ایجاد می کنم که صرفاً در دفعه نخست که صدا زده می شود اجرا می شود و در سایر فراخوانی ها (تا مدت زمان انقضا کش) اطلاعات از کش خوانده می شود و در ادامه تمامی کوئری ها را بر روی خروجی متد زیر اجرا میکنم

    private static object _objLock = new object();
    private List<YourViewModel> CacheRepository()
    {
    var repository = MemoryCache.Default["YourViewModelRepository"];
    if (repository == null)
    {
    List<YourViewModel> YourViewModels;
    lock (_objLock)
    {
    repository = MemoryCache.Default["YourViewModelRepository"];
    if (repository == null)
    {
    YourViewModels = //Get Data From Database
    if (MemoryCache.Default.Contains("YourViewModelReposi tory"))
    {
    MemoryCache.Default.Remove("YourViewModelRepositor y");
    }
    MemoryCache.Default.Add("YourViewModelRepository", YourViewModels, DateTime.Now.AddHours(2));
    }
    else
    {
    return (List<YourViewModel>)repository;
    }
    }
    return YourViewModels;
    }
    return (List<YourViewModel>)repository;
    }



تاپیک های مشابه

  1. پاسخ: 5
    آخرین پست: دوشنبه 29 شهریور 1395, 11:19 صبح
  2. مبتدی: تفاوت متغیر های استاتیک و اتوماتیک
    نوشته شده توسط Moein.sk در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: شنبه 28 تیر 1393, 14:25 عصر
  3. صدا زدن متد های غیر استاتیک در متد استاتیک
    نوشته شده توسط sepehrforough در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: پنج شنبه 22 خرداد 1393, 18:04 عصر
  4. سوال: چرا در کلاس های استاتیک امکان تعریف متد غیراستاتیک نداریم؟
    نوشته شده توسط irpersian20 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: دوشنبه 04 شهریور 1392, 13:15 عصر
  5. پاسخ: 2
    آخرین پست: پنج شنبه 30 آذر 1391, 12:29 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •