Programavimas

Geriausia ASP.Net talpyklos praktika

Talpinimas yra būsenos valdymo strategija, dažnai taikoma ASP.Net, siekiant pagerinti programos našumą sumažinant jūsų sistemos išteklių sunaudojimą. Tinkamai naudojant, jis gali žymiai pagerinti jūsų programos našumą, išsaugodamas visą arba iš dalies „wWb“ puslapį, arba net išsaugodamas programos duomenis HTTP užklausose. Talpinimas leidžia greičiau atkurti tinklalapį, o tinkamai naudojant talpyklą sumažėja arba sumažėja duomenų bazės įvykiai arba serverio išteklių sunaudojimas.

ASP.Net talpyklos yra šių trijų tipų:

  1. puslapio išvesties talpykla
  2. puslapio fragmento talpinimas
  3. duomenų talpykla

Puslapio išvesties talpykla

Tai yra ASP talpyklos forma. Tinklas, kuris saugo jūsų tinklalapio kopiją atminties talpykloje, kad vėlesnes to paties tinklalapio užklausas būtų galima gauti tiesiai iš talpyklos - talpyklos išvestis siunčiama programai. Tai žymiai pagerina programos našumą. Šis kodo fragmentas parodo, kaip galite įdiegti puslapio išvesties talpyklą.

Parinktis „VaryByParam“ padeda „Http“ užklausoje nurodyti kintamuosius, kuriems reikės naujo talpyklos įrašo. Kiti galimi variantai: VaryByHeader ir VaryByCustom. „OutputCache“ direktyvoje taip pat galite nurodyti vietą ir trukmę - galite jas naudoti nurodydami talpyklos vietą ir trukmę, per kurią tinklalapis turėtų būti atitinkamai talpinamas.

Puslapio fragmento talpinimas

Puslapio fragmento talpinimas yra talpinimo strategija, kai tinklalapis yra talpinamas iš dalies - talpykloje talpinami tik tinklalapio fragmentai, o ne visas tinklalapis. Galite naudoti tą pačią sintaksę kaip ir puslapio išvesties talpykloje. Tačiau „OutputCache“ atributą turite taikyti vartotojo valdikliui, o ne tinklalapiui. Fragmentų talpinimas yra naudingas, kai talpykloje talpinti reikia tik tas jūsų tinklalapio dalis - paprastai tais atvejais, kai jūsų tinklalapyje yra bendrų ir dinamiškų sekcijų derinys. Pavyzdžiui, galite turėti tinklalapį, kuriame yra įvairių meniu elementų ir tam tikrų dinaminių sekcijų, kurias reikia dažnai užpildyti ir atnaujinti iš duomenų bazės.

Duomenų talpykla

ASP.Net atidaro talpyklos API, kad galėtumėte išsaugoti duomenis talpykloje, kad vėliau galėtumėte jas gauti. Duomenų kaupimo talpykloje naudojant talpyklos API sintaksė pateikiama žemiau.

Talpykla ["key"] = "value";

Taip pat galite naudoti metodus Pridėti arba Įterpti. Norėdami perkelti įrašą iš talpyklos, galite naudoti „Cache“ klasės metodą „Pašalinti“ (). „Cache“ klasės „Insert“ (metodas) leidžia nurodyti priklausomybę nuo talpyklos. Priklausomybė nuo talpyklos yra strategija, užtikrinanti, kad pasikeitus duomenų saugykloje (kurioje užpildyta talpykla) esantys duomenys, talpykla būtų nedelsiant iš naujo užpildyta. Pasikeitus duomenų saugyklos duomenims, pasibaigs talpyklos galiojimo laikas, todėl talpykla bus vėl užpildoma naujausiais duomenimis. Daugiau apie tai galite sužinoti iš šio MSDN straipsnio.

Geriausia praktika

Turėtumėte saugoti talpyklą kuo dažniau ir tinkamai saugoti duomenis kiekviename programos sluoksnyje. Kai naudojate duomenų talpyklą, turėtumėte įgyvendinti tinkamą strategiją, kad užtikrintumėte, jog talpykloje esantys duomenys sinchronizuojami su duomenų saugykloje esančiais duomenimis. Galite pasinaudoti paskirstytų talpyklos tvarkyklių, pvz., „Memcached“, pranašumais, kad jūsų talpyklos strategija taip pat galėtų gerai masto ir būtų naudinga - galite naudoti „Memcached“ dideliems duomenims saugoti. Turėtumėte užtikrinti, kad talpykloje talpinsite tik palyginti pasenusius duomenis - nėra prasmės talpinti duomenis, kurie laikui bėgant dažnai pasikeistų. Be to, duomenys, kurie vargu ar bus naudojami pakartotinai, neturėtų būti laikomi talpykloje. Nereikėtų per daug naudoti „SqlDependency“ arba „SqlCacheDependency“.

Dabar žinokime ir spartinimo talpykloje trūkumus. Talpyklos objektas pasiekiamas tik dabartiniam programos domenui. Taigi, jei norite saugoti duomenis talpykloje ir padaryti juos prieinamus visame interneto ūkyje, tai nėra galimybė. Turėtumėte panaudoti paskirstytą talpyklą, pvz., „Windows Server AppFabric“ talpyklą ar kitas paskirstytas talpyklos sistemas, kad talpykloje esantys duomenys būtų visuotinai prieinami žiniatinklio ūkyje.

Talpykla yra galingas mechanizmas, padedantis padidinti programos našumą saugant atmintyje gana pasenusius duomenis, kad vėliau juos būtų galima gauti iš talpyklos atminties. Aptarsiu daugiau šia tema su realaus gyvenimo kodų pavyzdžiais savo būsimuose įrašuose čia.