Tôi có một số giá trị cấu hình cho ứng dụng web asp.net. Chúng sẽ được quản trị viên hệ thống duy trì khi hệ thống hoạt động. Tôi có nên lưu trữ các giá trị này trong cơ sở dữ liệu hoặc trong tệp cấu hình không? Có cách nào tốt nhất cho loại điều này?Giá trị cấu hình trong DB hoặc Tệp?
Trả lời
Thật dễ dàng và thuận tiện để tạo giao diện mạnh mẽ để chỉnh sửa các giá trị trong cơ sở dữ liệu.
Việc tạo một tệp tốt cho tệp cấu hình sẽ ít dễ dàng hơn.
Vì vậy, tôi thường muốn lưu trữ mọi thứ mà bạn muốn người dùng/quản trị viên của mình có thể chỉnh sửa sau trong cơ sở dữ liệu. Tất cả mọi thứ mà chỉ cần phải được xúc động trong những thay đổi nghiêm trọng như cài đặt lại vv là tốt hơn tắt trong tập tin cấu hình.
Tùy thuộc vào ngữ cảnh của thông tin cấu hình, bạn có thể chọn để nó trong web.config hoặc bạn có thể tạo bảng bảo trì cho nó trong cơ sở dữ liệu. Tôi sẽ typcially giữ những thứ phụ trợ cụ thể hơn, như dây kết nối, địa điểm ftp, tên người dùng/mật khẩu (cho các ứng dụng, không cho phép người dùng) trong web.config mặc dù.
Tôi thường giữ thông tin liên quan nhiều hơn có liên quan đến thông tin trong cơ sở dữ liệu thay vì bản thân ứng dụng, trong cơ sở dữ liệu.
Đây là tất cả dựa trên mặc dù không phải lúc nào cũng như vậy.
Cập nhật web.config khiến IIS tái chế trang web. –
Như tôi đã nói, tất cả phụ thuộc vào ngữ cảnh. – thismat
Đúng là khi bạn thay đổi tệp cấu hình, ứng dụng sẽ phản ứng ngay lập tức. Các hit tiếp theo thấy hành vi mới và không cũ. Nó là * không * đúng là IIS tái chế. ASP.NET sử dụng các thông báo thay đổi tập tin NTFS, vì vậy nó được thông báo khi nội dung của tập tin thay đổi. Đó là trọng lượng nhẹ hơn nhiều so với tái chế IIS. –
Tôi muốn tránh cơ sở dữ liệu nếu có thể và tôi không cần hiệu suất. Nếu bạn cần/có một cơ sở dữ liệu sau đó tôi sẽ nói đặt nhiều như bạn có thể ở một nơi. Một điều cần quản lý.
Tôi luôn đề xuất cơ sở dữ liệu đơn giản vì bạn có thể xây dựng một giao diện người dùng quản trị tương đối dễ dàng và kiểm tra tất cả các thay đổi dễ dàng. Mặc dù bạn có thể thực hiện tương tự với các thay đổi đối với một tệp, nhưng tuyến đường cơ sở dữ liệu với một số loại vùng kiểm soát Quản trị luôn thích hợp hơn. Đặc biệt là khi bạn muốn biết ai đã thay đổi những gì khi.
Cũng trong môi trường của chúng tôi, thay đổi tệp cấu hình nếu có lỗi, liên quan đến toàn bộ quy trình quản lý thay đổi phê duyệt/v.v., điều này khá đau. Vì vậy, nếu bạn dành thời gian để kết hợp các thiết lập cấu hình trong một cơ sở dữ liệu tôi nghĩ rằng nó sẽ làm việc tốt hơn trong thời gian dài. Chỉ cần $ 0,02 của tôi.
Đồng ý, nếu kiểm toán là cần thiết, đó là lý do cho cơ sở dữ liệu. Nếu quá trình quản lý thay đổi của bạn khác nhau chỉ vì thông tin khái niệm được lưu trữ trong một tệp so với một cơ sở dữ liệu, quá trình đó là thiếu sót. –
tôi thích một file văn bản cấu hình, phong cách .ini hoặc kiểu XML vì hai lý do sau đây:
1 - Bạn có thể đưa ý kiến trong các tập tin văn bản.
2 - Trình chỉnh sửa văn bản có lệnh "hoàn tác".
Tôi nghĩ cơ sở dữ liệu là một nơi tuyệt vời cho các giá trị cấu hình cho các ứng dụng được phân phối nơi bạn muốn cài đặt người dùng khả dụng cho họ bất kể họ sử dụng máy tính nào.
Giá trị cấu hình được lưu trữ trong tệp rất hữu ích cho cấu hình máy tính cụ thể (chẳng hạn như nếu bạn sử dụng ổ đĩa được ánh xạ để xác định vị trí và mọi người dùng có thể có ánh xạ khác, chẳng hạn như ổ đĩa CD/DVD).
Nếu bạn chưa có cơ sở dữ liệu cho ứng dụng mà bạn đang phát triển, có thể quá mức cần thiết để có cơ sở dữ liệu dành riêng cho cấu hình ứng dụng.
JettGeek, câu hỏi ban đầu là về một ứng dụng web ASP.NET, vì vậy cài đặt dành riêng cho máy tính cho người dùng không áp dụng. –
Tôi thích một văn bản .ini
tệp. Chúng dễ dàng chỉnh sửa và dễ di chuyển xung quanh khi ứng dụng của bạn di chuyển xung quanh. Dưới đây là ví dụ Setting
class mà bạn có thể thấy hữu ích.
Nhân vật chính, tôi không hiểu tại sao bạn lại làm điều này. Về nguyên tắc, các tệp ini và các tệp cấu hình giống nhau: các tệp văn bản đơn giản có thể được sửa đổi với trình soạn thảo văn bản, Notepad là đủ. Sự khác biệt với các tệp cấu hình là hỗ trợ mở rộng trong Khuôn khổ .NET trong các không gian tên System.Configuration và System.Web.Configuration. Vì vậy, tập tin cấu hình cung cấp cho bạn những đức tính của ý tưởng tập tin ini, cộng với hỗ trợ cơ sở hạ tầng rộng lớn. Lợi thế * duy nhất mà tôi có thể thấy đối với các tệp ini là một ý kiến chủ quan rằng ini dễ đọc hơn đối với con người. Chỉ cần thực hành đọc XML! –
Ilya, tôi tin rằng nó không phải là đơn giản. Bạn đang nói về các trang phụ, kiểm tra, quản lý bảo mật. Tôi đã đề cập đến thử nghiệm? Điều đó cần có thời gian, công sức và tiền bạc. Tôi cho rằng tệp cấu hình có lợi thế "dễ dàng" và "thuận tiện". Bạn muốn tùy chọn cơ sở dữ liệu khi: 1. quản trị viên sẽ không có quyền truy cập vào tệp cấu hình 2. Có vai trò bảo mật đa cấp 3. Cài đặt phải được đọc bởi các ứng dụng khác, không chỉ ứng dụng ASP.NET này. Nói cách khác, trong các tình huống lớn hơn và phức tạp hơn, tệp cấu hình không đủ. Khi nó * là * đủ, sử dụng nó. Tôi đang thiếu gì? –