StiMobileDesigner - ASP.NET компонент для создания и редактирования отчетов в браузере. В этой статье мы расскажем об использовании данного компонента на облачной платформе Azure.

В первую очередь стоит заметить, что компонент StiMobileDesigner основан на технологии клиент-сервер. На серверной стороне находится кэш, то есть ячейка для хранения информации с быстрым доступом. Из кэша можно в любой момент получить необходимый объект или же наоборот загрузить его в кэш. Но если загрузить дизайнер отчетов на Azure, то сохраняемый вариант объекта может быть сохранён в различных экземплярах сервера. Поэтому при сохранении отчета в различные экземпляры сервера в кэше возникает проблема его хранения. Для корректной работы необходимо, чтобы отчет сохранялся в один и тот же кэш.

Для решения этой проблемы наши разработчики создали класс StiCacheHelper для каждого из следующих компонентов: StiMvcMobileDesigner, StiMvcMobileViewer, StiMobileDesigner, StiMobileViewer и вынесли из дизайнера два внешних метода: SaveObjectToCache и GetObjectFromCache. Внутри этих методов пользователь может описать свое собственное сохранение в кэше и собственное изъятие объекта из кэша. Другими словами, необходимо переопределить метод и сохранять любые объекты в свой собственный кэш, что значительно упрощает и ускоряет работу с отчетами на облачной платформе Azure.

classStiAzureCacheHelper : StiMobileViewer.StiCacheHelper
{
    string SlsPath = RoleEnvironment.GetLocalResource("TestStorage").RootPath + "\\";
    public override void SaveObjectToCache(object obj, string guid)
    {
        byte[] cacheData = GetCacheDataFromObject(obj);
        System.IO.File.WriteAllBytes(SlsPath + guid, cacheData);
    }
    public override object GetObjectFromCache(string guid)
    {
        if (!System.IO.File.Exists(SlsPath + guid)) return null;
        byte[] cacheData = System.IO.File.ReadAllBytes(SlsPath + guid);
        return GetObjectFromCacheData(cacheData);
    }
}
StiMobileViewer1.CacheHelper = new StiAzureCacheHelper();
Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.