Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Caching στρατηγική (Business Layer Level)

Îåêßíçóå áðü ôï ìÝëïò Τάσκος Γιώργος. Τελευταία δημοσίευση από το μέλος Τάσκος Γιώργος στις 14-05-2012, 14:00. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  11-05-2012, 11:12 70232

    Caching στρατηγική (Business Layer Level)

    Αν και δεν είναι απόλυτα για ASP.NET Webforms, επειδή όμως το front end είναι ASP.NET Webforms, το αναρτώ εδώ.

    Ψάχνω ένα τρόπο για να κάνω caching σε μια από τις σελίδες στην οποία έχω ένα Panel και δημιουργώ δυναμικά ένα UserControl όπου μπορεί να είναι διαφορετικό
    σε περίπτωση κι αυτό επιστρέφεται μέσω ενός Factory. Τα UserControls κάνουν inherit από την ίδια Base Class και overide τις operations μεθόδους.
    Υπάρχει ένα Service class για κάθε UserControl όπου κάνει implement ένα συγκεκριμένο Interface, όπου εκεί γίνεται και η φόρτωση των εκάστοτε δεδομένων βάση των παραμέτρων.

    Θα ήθελα σε αυτό το "Service", BL στην ουσία επίπεδο των UserControl να εφαρμόσω κάποια Caching τεχνική όπου θα κάνει κλήση ξανά στο data store μόνο όταν δεν έχει cach data ή
    του πω να κάνει ανανέωση αυτών.

    Τώρα επειδή το UserControl δημιουργείτε δυναμικά, θα πρέπει να δημιουργείτε σε κάθε postback, αν έχετε κάποια άλλη άποψη σε αυτό, δεκτή! Αρά καταλαβαίνετε και που το πάω.
    Αν έχω να φορτώνω π.χ. από το data store (και το ονομάζω έτσι γιατί δεν είναι database SQL etc.) κάθε φορά τα δεδομένα, έχω καθυστέρηση για τα ίδια data, μετά φανταστείτε και σε
    μέγεθος τι θα γίνεται.

    Με ενδιαφέρει η λύση για τα συγκεκριμένα service business layer classes αλλά θα ήθελα να ακούσω και κάτι ποιο Application Wide Solution αν έχετε στο μυαλό σας ή έχετε υλοποιήσει κάτι παρόμοιο.

    Ευχαριστώ.


    Δημοσίευση στην κατηγορία: ,
  •  11-05-2012, 20:06 70234 σε απάντηση της 70232

    Απ: Caching στρατηγική (Business Layer Level)

    Σε ενδιαφέρει να κάνεις cache τα usercontrols ή τα data; Δηλαδή είναι βαρύ το render των usercontrols ή το fetch των δεδομένων από το data store;

    Αν το θέμα μας είναι τα data:
    Έχω χρησιμοποιήσει το System.Web.HttpContext.Current.Cache, μέσα στο οποίο αποθηκεύω objects ή datasets της εφαρμογής και τα κάνω reuse. Με δεδομένο πως το σενάριο είναι heavy read (πολλα SELECT και λίγα INSERT/UPDATE/DELETE) είναι αρκετά καλή λύση για να μειωθεί το database load.

    Αν το θέμα μας είναι το render των control:
    Υπάρχει ένα directive που βάζεις στα .aspx / .ascx αρχεία και γίνονται cache με διάφορες παραμέτρους. Το caching αυτό χειρίζεται το και το postback, το οποίο σημαίνει πως δεν τρέχει καθόλου server side κώδικας για το control αυτό, το οποίο είναι καλό και κακό.


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  12-05-2012, 02:37 70235 σε απάντηση της 70234

    Απ: Caching στρατηγική (Business Layer Level)

    Taso, το System.Web.HttpContext.Current.Cache δουλεύει μόνο για το instance του συγκεκριμένου server, κι όταν έχεις παραπάνω απο 1 (web-farm κλπ), εάν δεν πέσεις πάνω στον ίδιο server ξανά τότε γίνεται ολόκληρο το call απο την αρχή γιατί πολύ απλά δεν υπάρχει στον συγκεκριμένο server. Το πράγμα γίνεται ακόμα πιο δύσκολο όταν πλέον θέλεις να έχεις synchronization, invalidation, expire κλπ κλπ, κοινός θες κάποια distributed cache (memory κατα προτίμηση) η οποία υποστηρίζει Local store (in-memory συνήθως, τοπικά) αλλά και distributed store.

    Giwrgo, ρίξε μια ματιά σε Velocity (AppFabric 1.1) ή εάν θες κάτι Open source, σε memcached.


    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  14-05-2012, 09:26 70240 σε απάντηση της 70235

    Απ: Caching στρατηγική (Business Layer Level)

    Thanx boys,

    Χρησιμοποίησα το .NET 4 System.Runtime.Caching κι από ότι δείχνει με βόλεψε ;)

    Ευχαριστώ.

  •  14-05-2012, 11:42 70242 σε απάντηση της 70240

    Απ: Caching στρατηγική (Business Layer Level)

    Γιώργο, αξιολόγησες τα προβλήματα/περιορισμούς που σου ανέφερα παραπάνω;
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  14-05-2012, 14:00 70243 σε απάντηση της 70242

    Απ: Caching στρατηγική (Business Layer Level)

    Ναι, ναι, είδα το Appfabric και το πως πρέπει να παίξει σε τέτοιες περιπτώσεις, δεν είναι για μένα το πρόβλημα για την ώρα.

    Thanx dude.



Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems