StiMobileDesigner ist eine ASP.NET-Komponente für Erstellen und Bearbeiten der Berichte im Browser. In diesem Artikel beschreiben wir die Verwendung dieser Komponente mit der Cloud-Plattform Azure.

Es sei erwähnt, dass die Komponente StiMobile Designer auf der Technologie Client-Server basiert. Auf der Serverseite befindet sich der Cache, ein schneller Puffer-Speicher, der Zugriffe auf ein langsames Hintergrundmedium oder aufwendige Neuberechnungen zu vermeiden hilft. Daten, die bereits einmal geladen wurden, verbleiben im Cache, so dass sie bei späterem Bedarf schneller wieder abgerufen werden können. Und wenn der Designer auf Azure geladen ist, kann die speichernde Variante des Objektes in verschiedene Serverinstanzen gespeichert werden. In dieser Situation entsteht ein Problem mit dem Speichern des Berichtes. Für richtige, korrekte Arbeit soll der Bericht in einer Instanz gespeichert werden.

Um dieses Problem zu lösen, erstellten unsere Entwickler die Klasse StiCacheHelper für folgende Komponenten: StiMvcMobileDesigner, StiMvcMobileViewer, StiMobileDesigner, StiMobileViewer und erlaubten den Benutzern zwei öffentliche Methoden SaveObjectToCache und GetObjectFromCache zu überschreiben. Innerhalb dieser Methoden kann der Benutzer seinen eigenen Speicher im Cache beschreiben. Anders gesagt, man muss die Methode überschreiben und alle Objekte in seinen eigenen Cache speichern, was die Arbeit mit Berichten auf Azure schnell und einfach macht.

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();
By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.