ASP.Net MVC: где хранить настройки приложения и панели администратора?Web.config? - PullRequest
4 голосов
/ 08 октября 2010

Создав приличный веб-сайт с использованием ASP.NET MVC, я собираюсь создать «Панель администратора» для пользователей с ролью «Администратор», с которой можно управлять сайтом.В частности, созданный мной веб-сайт является внутренним сайтом для предприятия и состоит из набора мини-веб-приложений, каждое из которых необходимо время от времени настраивать и / или настраивать.

Является ли Web.Config подходящим файлом для хранения этих настроек приложения?

Должен ли он быть в отдельном файле XML?

Таблица БД (или набор таблиц)?

В настоящее время у меня нет доступных БД, но, возможно, позже я сделаю это.В настоящее время я склонен создавать XML-файл и хранить там значения.Это разумный подход?Или я упускаю что-то очевидное о том, как это сделать?

РЕДАКТИРОВАТЬ: Хорошо, вот мой уровень абстракции (интерфейс):

public interface IAppSettings
{
 IQueryable<string> GetValues(string component, string setting);
 void SetValues(string component, string setting, List<string> values, bool append);
}

Я думаю, я могу прочитать/ записать в Web.Config, другой XML или БД таким образом.

Что вы думаете?

Ответы [ 2 ]

1 голос
/ 08 октября 2010

Вопрос, который необходимо задать, заключается в том, является ли это набор настроек, которые будут меняться в зависимости от кодовой базы или изменяться пользователями?Если это первое, то XML - это путь, который можно легко контролировать с помощью кода.Если пользователи меняют его, лучше использовать базу данных.

1 голос
/ 08 октября 2010

Я бы порекомендовал вам БД. Запись в файлы в многопользовательском / многопоточном приложении может быть сложной, и могут возникнуть проблемы, если вы не синхронизируете доступ к этим файлам, не говоря уже о транзакционном доступе, если вы когда-либо нуждались в этом. Существует несколько облегченных баз данных NoSQL , которые могут быть чрезвычайно полезны и просты в настройке.

Независимо от того, что вы выберете, обязательно создайте абстракции на уровне доступа к данным, чтобы позже вы могли легко переключиться на другой метод, например, на базу данных SQL (если вы попробуете базу данных NoSQL, вы, вероятно, этого не сделаете :-)).

...