ASP.NET 2.0 มีคุณสมบัติทางเทคนิคใหม่สำหรับการปรับปรุงประสิทธิภาพของโปรแกรม เทคโนโลยีแคชเป็นคุณสมบัติที่สำคัญมาก มีกลไกการแคชข้อมูลภายในเครื่องที่ดีมากที่สามารถปรับแต่งได้อย่างง่ายดาย ดังนั้น ประสิทธิภาพของการเข้าถึงข้อมูลจึงสามารถปรับปรุงได้อย่างมีประสิทธิภาพ
การแคชมีข้อบกพร่องซึ่งไม่ใช่เรื่องง่ายที่จะเอาชนะ และนั่นคือปัญหาการหมดอายุของข้อมูล สถานการณ์ทั่วไปส่วนใหญ่ก็คือ ถ้าเนื้อหาข้อมูลในตารางฐานข้อมูลถูกแคชไว้ในหน่วยความจำเซิร์ฟเวอร์ เว็บแอปพลิเคชันมีแนวโน้มที่จะแสดงข้อมูลที่ล้าสมัยและไม่ถูกต้องเมื่อบันทึกในตารางฐานข้อมูลเปลี่ยนแปลง สำหรับข้อมูลบางประเภท แม้ว่าข้อมูลที่แสดงจะล้าสมัย แต่ผลกระทบก็ไม่มีนัยสำคัญ อย่างไรก็ตาม สำหรับข้อมูลที่มีข้อกำหนดแบบเรียลไทม์ที่เข้มงวด เช่น ราคาหุ้น ราคาประมูล และข้อมูลอื่น ๆ การแสดงข้อมูลที่ล้าสมัยเล็กน้อยไม่สามารถยอมรับได้
ASP.NET 2.0 รองรับแคชเอาต์พุตเพจชนิดต่อไปนี้ แคชเอาต์พุตเพจเป็นกลไกการแคชที่ง่ายที่สุด เมื่อผู้ใช้ร้องขอเพจ ระบบจะส่งออกข้อมูลที่เกี่ยวข้องจากหน่วยความจำจนกว่าข้อมูลที่แคชไว้จะหมดอายุ ในกระบวนการนี้ เนื้อหาที่แคชไว้จะถูกส่งโดยตรงไปยังผู้ใช้โดยไม่ต้องผ่านวงจรการประมวลผลเพจอีกครั้ง โดยทั่วไป การแคชเอาต์พุตเพจมีประโยชน์อย่างยิ่งสำหรับเพจที่มีเนื้อหาที่ไม่จำเป็นต้องแก้ไขบ่อยๆ แต่ต้องใช้การประมวลผลจำนวนมากเพื่อคอมไพล์ให้เสร็จสมบูรณ์ ผู้อ่านควรทราบว่าแคชเอาท์พุตเพจจะเก็บเนื้อหาทั้งหมดของเพจไว้ในหน่วยความจำ และใช้เพื่อดำเนินการตามคำขอของไคลเอ็นต์
แคชบางส่วนของหน้า
การแคชหน้าบางส่วนหมายความว่าเอาต์พุตแคชบางส่วนของหน้าแทนที่จะแคชเนื้อหาทั้งหน้า มีสองกลไกในการใช้การแคชเพจบางส่วน: วิธีหนึ่งคือการวางส่วนของเพจที่จำเป็นต้องแคชไว้ในการควบคุมผู้ใช้ (ไฟล์ .ascx) และตั้งค่าฟังก์ชันแคชสำหรับการควบคุมผู้ใช้ (เพจที่มีการควบคุมผู้ใช้ อาจตั้งค่าแคชหรือไม่ก็ได้) โดยทั่วไปจะเรียกว่า "การควบคุมแคช" สาระสำคัญของการตั้งค่าแคชควบคุมคือการกำหนดค่าแคชของการควบคุมผู้ใช้ โดยหลักแล้วจะมีสามวิธีต่อไปนี้: วิธีหนึ่งคือการใช้คำสั่ง @OutputCache เพื่อตั้งค่าฟังก์ชันแคชสำหรับการควบคุมผู้ใช้อย่างเปิดเผย อีกวิธีหนึ่งคือการใช้คลาส PartialCachingAttribute ในไฟล์โค้ดหลังเพื่อตั้งค่าแคชการควบคุมผู้ใช้ คือการใช้คลาส ControlCachePolicy เพื่อระบุการตั้งค่าแคชการควบคุมผู้ใช้โดยทางโปรแกรม หรือมีวิธีการที่เรียกว่า "replace after cache" วิธีการนี้ตรงกันข้ามกับการควบคุมแคช โดยจะตั้งค่าบางส่วนของเพจไม่ให้ถูกแคช ดังนั้น แม้ว่าเพจทั้งหมดจะถูกแคชไว้ แต่เมื่อเพจถูกร้องขออีกครั้ง เนื้อหาที่ไม่ได้ตั้งค่าให้แคชจะถูก ประมวลผลใหม่
Application Data Cache Application Data Cache มีวิธีทางโปรแกรมในการจัดเก็บข้อมูลที่กำหนดเองในหน่วยความจำโดยใช้คู่คีย์/ค่า การใช้แคชของแอปพลิเคชันจะคล้ายกับการใช้สถานะแอปพลิเคชัน อย่างไรก็ตาม ไม่เหมือนกับสถานะของแอปพลิเคชัน ข้อมูลในแคชข้อมูลแอปพลิเคชันนั้นมีความผันผวน กล่าวคือ ข้อมูลจะไม่ถูกจัดเก็บไว้ในหน่วยความจำตลอดอายุการใช้งานของแอปพลิเคชัน ข้อดีของแคชข้อมูลแอปพลิเคชันคือ ASP.NET จัดการแคช ซึ่งจะลบรายการออกจากแคชเมื่อรายการเหล่านั้นหมดอายุ ไม่ถูกต้อง หรือหน่วยความจำไม่เพียงพอ แคชของแอปพลิเคชันยังสามารถกำหนดค่าให้แจ้งเตือนแอปพลิเคชันเมื่อรายการถูกลบออก .
การพึ่งพาแคช
การพึ่งพาแคชแบบกำหนดเองที่นำมาใช้ใน Net 2.0 โดยเฉพาะฟีเจอร์ SqlCacheDependency ที่ใช้ MS-SQL Server ช่วยให้เราสามารถหลีกเลี่ยงปัญหา "การหมดอายุของข้อมูล" ได้ โดยสามารถแจ้งเตือนแคชและลบแคชที่หมดอายุตามการเปลี่ยนแปลงในข้อมูลที่เกี่ยวข้อง ฐานข้อมูล
คุณสมบัติการแคชข้อมูลก็มีข้อบกพร่องเช่นกัน ตัวอย่างเช่น เนื้อหาที่แสดงอาจไม่ล่าสุดและแม่นยำที่สุด และด้วยเหตุนี้ จึงต้องกำหนดนโยบายการแคชที่เหมาะสม อีกตัวอย่างหนึ่ง การแคชจะเพิ่มความซับซ้อนของระบบ และทำให้ยากต่อการทดสอบและดีบัก ดังนั้นจึงแนะนำให้พัฒนาและทดสอบแอปพลิเคชันโดยไม่ต้องแคช จากนั้นเปิดใช้งานตัวเลือกการแคชในระหว่างขั้นตอนการเพิ่มประสิทธิภาพประสิทธิภาพ