2009-08-03 40 views
9

Tôi có một câu hỏi liên quan đến Caching. Tôi có một ứng dụng web n-tier ASP.NET điển hình. Tôi đã thực hiện một wrapper Cache tùy chỉnh (gói ASP.NET đối tượng Cache), và tôi muốn biết các thực hành tốt nhất của dữ liệu Caching. Tôi không muốn sử dụng bộ nhớ đệm trong lớp kinh doanh của tôi (không muốn thêm bất kỳ tham chiếu đến System.Web dll đó). Trường hợp tương tự với DAL. Vì vậy, lựa chọn duy nhất còn lại là:Các phương pháp hay nhất liên quan đến bộ nhớ đệm trong các ứng dụng ASP.NET

  1. cache tất cả mọi thứ trong lớp UI
  2. Tạo một lớp bộ nhớ cache giữa UI và BL (không biết làm thế nào khả thi là?)

Tôi cũng nghe nói về sắp tới Velocity bộ nhớ đệm khuôn khổ nhưng tôi đoán rằng có thể là một overkill (như ứng dụng của tôi sẽ không cần một trang trại/cụm).

Tôi có thể sai lầm khủng khiếp trong các cách tiếp cận của mình, vì vậy tôi sẽ hoan nghênh mọi đề xuất hoặc phương pháp thay thế về cách lưu trữ dữ liệu trong các dự án web của tôi.

Trả lời

10

Lớp giữa giao diện người dùng và BLL của bạn sẽ là lớp Dịch vụ, đây là nơi tốt để lưu vào bộ nhớ cache. Sử dụng trình quản lý bộ nhớ cache trừu tượng (example on my blog) để bạn có thể hoán đổi các nhà cung cấp (bộ nhớ cache ASP.NET, Tốc độ, memcached, bất cứ điều gì) khi cần thiết.

+0

Tôi thích ví dụ trên blog của bạn, sử dụng giao diện tuyệt vời. – Rutger

+0

Chúng tôi đã làm điều tương tự và đã thực sự thực hiện việc di chuyển từ bộ nhớ cache ASP.Net sang memcache. Làm thế nào các lớp Cache trong ASP.Net là không nguyên bản pluggable là một bí ẩn đối với tôi. – jro

+0

Nó sẽ nằm trong ASP.NET 4 –

1

Đôi khi cũng đáng xem xét mục đích của dữ liệu được lưu trong bộ nhớ cache là gì? Nếu cuối cùng nó chỉ tạo HTML tĩnh trong lớp giao diện người dùng hơn là gói các phần này trong điều khiển người dùng và thêm chỉ thị @OutputCache có thể là cách hiệu quả nhất (khi sử dụng biểu mẫu web, ít nhất). Thật dễ dàng để quên điều này, đôi khi, khi bạn bị sa lầy trong khuôn khổ bộ nhớ đệm vv Tất nhiên tôi đánh giá cao điều này có thể không phù hợp hoặc thực hành tốt nhất trong nhiều trường hợp.

+0

Tôi về cơ bản muốn lưu dữ liệu đến từ DB (hoặc trong bộ nhớ cache ngắn các đối tượng/bộ sưu tập kinh doanh của tôi). – Raghav

Các vấn đề liên quan