2011-01-10 40 views
6

Ứng dụng của tôi giống như một Trình quản lý danh bạ. Giả sử người dùng có thể nhập địa chỉ liên hệ bằng địa chỉ của họ. Tôi có mã và công nghệ để lưu danh bạ của mình vào một tệp. Nhưng tôi phải lưu tệp đó ở đâu?Nơi lưu dữ liệu ứng dụng trong ứng dụng .NET

Xem xét đây là ứng dụng .NET chạy trên Windows. Nên tập tin của tôi kết thúc trong AppData của thư mục người dùng? Tôi có nên sử dụng Bộ nhớ riêng (như đã đề cập here) không? Thứ gì khác? Thực hành được khuyến nghị là gì?

+0

Nếu bạn muốn người dùng của bạn hoặc các ứng dụng khác dễ dàng tìm thấy tập tin danh bạ này, bạn sẽ muốn sử dụng AppData. Dường như lưu trữ riêng biệt là "quá mạnh" một giải pháp cho vấn đề cụ thể này. –

+0

Tôi có thể lưu trữ thông tin trong cơ sở dữ liệu. Đây có phải là hình ảnh không? Nếu không, bạn sẽ thu được lợi ích gì khi sử dụng cái kia? Theo tôi biết, về cơ bản nó chỉ là hai thư mục khác nhau? – Patrick

+0

@Chris O: trong .NET, làm thế nào tôi có thể truy cập thư mục AppData? Tôi có nghĩa là, có một số lớp học NET mà mang lại cho tôi các thư mục (thay vì đi đến C: \ Users \ etc cứng mã hóa)? – Peter

Trả lời

6

tôi đã kết thúc bằng cách sử dụng giải pháp Patrick gợi ý:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 
1

Bạn có một số tùy chọn; như bạn nói, Lưu trữ riêng biệt là một trong số đó. Bạn cũng có thể sử dụng tính năng khung Cài đặt người dùng và lưu dữ liệu dưới dạng blob dữ liệu hoặc dưới dạng XML.

Bạn cũng có thể xem SqlCompact cho một cơ sở dữ liệu trong quá trình rất nhẹ. Sau đó, bạn có thể lưu tất cả địa chỉ liên hệ của người dùng trong một cơ sở dữ liệu duy nhất có thể hoạt động, ví dụ: trong cùng thư mục với ứng dụng; bạn có thể dễ dàng sử dụng một cái gì đó như EF4 cho DAL của bạn.

Đó có thể là một chút nỗ lực hơn nữa, vì có vẻ như bạn đang có 99% cách có kiến ​​trúc hiện tại của bạn.

+0

Hm, tôi đang bước ra khỏi một giải pháp dựa trên SQL, bởi vì nó đòi hỏi quá nhiều thời gian và công sức (cấu trúc mô hình miền của bạn cho một ORM, làm việc với các quirks của ORM). Tôi đang sử dụng Karvonite, cho phép tôi tập trung vào bản thân ứng dụng. – Peter

+0

Trong khi đó, tôi đã chuyển sang một lần nữa :) Bây giờ sử dụng SterlingDB và Silverlight, vì vậy hiệu quả, bằng cách sử dụng Isolated Storage. Dự án là một chút dễ bay hơi trong đầu. – Peter

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