2009-11-22 24 views
5

Tôi vừa xem xong PDC 2009 session của Stefan Schackow và anh ta nói rằng anh ta ngạc nhiên khi mọi người vẫn đang sử dụng Session State trong ASP.NET. Session State thậm chí còn được sử dụng internally trong ASP.NET MVC.Buiding ASP.NET ứng dụng mà không có phiên nhà nước?

Đã làm việc với một ứng dụng kế thừa, nơi mọi thứ được đưa vào phiên "trong proc" (thậm chí là datatables!), Tôi đã thấy sự lạm dụng phiên đầu tiên.

Có cách nào để xây dựng ứng dụng ASP.NET không có trạng thái phiên không? Bạn sẽ lưu trữ thông tin cho từng bước của quy trình làm việc thương mại điện tử điển hình như thế nào?

Trả lời

3

Tôi chưa sử dụng phiên trong năm. Nếu bạn cần theo dõi tiến độ của người dùng giữa các trang (nói, thông qua quy trình thanh toán giỏ hàng), lưu trữ bất kỳ thông tin trạng thái nào bạn yêu cầu trong cơ sở dữ liệu và liên kết lại với người dùng bằng cookie. Cần lưu ý rằng .NET hỗ trợ các cơ chế "phiên" khác nhau, một trong số đó lưu trữ thông tin trong cơ sở dữ liệu (được ưa thích nhiều hơn trong quan điểm của tôi) thay vì trong proc.

+0

Giải pháp của bạn có thể mở rộng trong môi trường giao thông cao như thế nào? Sẽ đọc/ghi đối tượng phiên từ một cơ sở dữ liệu cho mỗi yêu cầu web là một vấn đề hiệu suất? – Herman

+0

Câu trả lời ngắn cho câu hỏi đó là "thử và xem". tuy nhiên, chúng tôi đang sử dụng SQL để quản lý phiên trên một trang web có lưu lượng truy cập tương đối cao và chưa thấy bất kỳ vấn đề về hiệu suất nào. Hãy nhớ rằng DB được thiết kế cho những thứ này - nhanh, các truy vấn và câu trả lời nhẹ. Tôi sẽ rất ngạc nhiên nếu bạn quản lý để bog xuống một máy chủ cơ sở dữ liệu phong nha với cách tiếp cận này. –

+0

http://odetocode.com/articles/440.aspx –

0

Kiểm tra Hồ sơ thành viên ASP.NET. Nó cho phép bạn sắp xếp và lưu trữ/truy xuất các đối tượng trên mỗi tài khoản người dùng, bất kể người dùng có ẩn danh hay không. Tôi đã có thể sử dụng thành công với các ứng dụng trực tuyến kiểu thuật sĩ kiểu dài.

+0

Do tính chất của nó (được lưu trữ trong một trường biểu mẫu ẩn), ViewState không hoạt động trên nhiều trang. –

+0

Bạn nói đúng. Không chắc tôi đang nghĩ gì. –

+0

Chăm sóc để giải thích lý do tại sao downvote? Ý tôi là, David Lively đề nghị điều darn tương tự sau khi tôi đã viết này và tôi nhận được một downvote? –

3

Bạn có các tùy chọn sau: cookie, cơ sở dữ liệu, chuỗi truy vấn, biến trang và bộ đệm máy chủ để cố gắng xử lý bản chất không trạng thái của web. Mỗi người có sự cân bằng của riêng mình, nhưng thực tế nói rằng tôi hiện đang sử dụng phiên được lưu trữ trong db. Quy mô này tốt cho các trang trại máy chủ, giúp giữ cho các trang của bạn nhỏ và dễ thực hiện.

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