آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش قابلیت Caching در Designer Stimulsoft

دوره های مرتبط با این مقاله

آموزش قابلیت Caching در Designer Stimulsoft

HTM5 Designer از cache سرور برای ذخیره ی قالب گزارش ها با قابلیت ویرایش استفاده می کند. این امر ضروری است چرا بخش سمت کلاینت designer فقط حاوی نمایشی ظاهری از component های گزارش است و شی report به همراه تمام پارامترهای و property هایش سمت سرور ذخیره می شود.

برای استفاده از caching، باید ماژول ها را طوری تنظیم کنید که با session یا cache در سرور کار کنند. برای این منظور، Service های زیر با به فایل startup.cs پروژه اضافه کنید:


 
Startup.cs
...
public void ConfigureServices(IServiceCollection services)
{
services.AddMemoryCache();
services.AddSession();
services.AddMvc();
}
...

می توانید caching را با استفاده از property های زیر کنترل کنید:

CacheMode property

این property از designer برای فعال کردن caching و تعیین نوع آن استفاده می شود و یکی از مقادیر زیر را به صورت یک StiServerCacheMode enumeration می گیرد:


  • None – caching را غیرفعال می کند.
  • ObjectCache - از cache سرور برای Caching استفاده می شود و report object در آن ذخیره می شود (مقدار پیش فرض).
  • StringCache - از session جاری که report object در آن ذخیره شده، برای Caching استفاده می شود.
  • ObjectSession - از cache سرور برای Caching استفاده می شود و گزارش به صورت string فشرده شده در آن ذخیره می شود.
  • StringSession - از session جاری برای Caching استفاده می شود و گزارش به صورت string فشرده شده در آن ذخیره می شود.

CacheItemPriority property

این property اولویت گزارش ذخیره شده در cache سرور را مشخص می کند. هنگام کمبود حافظه در سرور، هرچه اولویت یک گزارش کمتر باشد امکان پاک شدن آن از حافظه بیشتر است.

CacheTimeout property

این property بازه زمانی ذخیره گزارش در cache سرور را به دقیقه مشخص می کند. اگر از Caching استفاده می کنید و گزارش درخواست شده در cache سرور موجود نباشد (زمان ذخیره آن به پایان رسیده)، توسط GetReport action دوباره request داده می شود . در این صورت تغییرات ذخیره نشده ممکن است از دست بروند.

StiCacheHelper

HTML5 Viewer component امکان تعریف متدهای موردنظر برای کار با caching گزارشات را می دهد. به این منظور از کلاس class StiCacheHelper استفاده می کنیم که دارای متدهایی برای بازیابی گزارش از cache و ذخیره آن در cache است. به این منظور لازم است یک کلاس که از StiCacheHelper ارث بری کرده است ایجاد کنیم و متدهای GetObject و SaveObject آن را override کنیم.


HomeController.cs
...
public class DesignerController : Controller
{
public class StiMyCacheHelper : StiCacheHelper
{
public override object GetObject(string guid)
{
string path = System.IO.Path.Combine(this.HttpContext.Server.MapPath("CacheFiles"), guid);
if (System.IO.File.Exists(path))
{
byte[] cacheData = System.IO.File.ReadAllBytes(path);
return StiCacheHelper.GetObjectFromCacheData(cacheData);
}
return null;
 
//return base.GetObject(guid);
}
 
public override void SaveObject(object obj, string guid)
{
byte[] cacheData = StiCacheHelper.GetCacheDataFromObject(obj);
string path = System.IO.Path.Combine(this.HttpContext.Server.MapPath("CacheFiles"), guid);
System.IO.File.WriteAllBytes(path, cacheData);
 
//base.SaveObject(obj, guid);
}
}
 
static DesignerController()
{
StiNetCoreDesigner.CacheHelper = new StiMyCacheHelper();
}
}
...

برای شروع کار با Caching و استفاده از این کلاس کافی است StiNetCoreDesigner.CacheHelper property را در سازنده ی controller به این شی از این کلاس مقداردهی کنیم.

  • 36
  •    0
  • تاریخ ارسال :   1398/07/10

دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .