Каков наилучший способ управления настройками (конфигурацией) в ASP.NET 2.0? - PullRequest
2 голосов
/ 27 марта 2009

У меня есть проект, для которого мы расширяем некоторые функции с существующего клиента на веб-портал в ASP.NET 2.0. Клиент на основе форм Windows (в .NET 2.0). Он имеет некоторые параметры, которые хранятся в системе Project> Properties> Settings.settings, включая сгенерированный файл settings.Designer.cs. Этот файл предоставляет хорошие автоматические упаковщики для каждой настройки.

Пытаясь настроить веб-сайт, я был разочарован очевидным отсутствием паритета для этой функции. У меня есть web.config, и он может иметь раздел. Это означает доступ через код со строками, например:

WebConfigurationManager.AppSettings["mySetting"];

Я даже могу сделать так, чтобы настройки ссылались на другой файл таким образом, предоставляя небольшую абстракцию и более легкие проверки в системе контроля версий:

<appSettings configSource="web.settings.config"/>

, но в конечном итоге ему не хватает некоторых функций системы настроек клиентских проектов.

В частности, я бы очень хотел, чтобы эти функции, если это вообще было возможно:

  • Класс сгенерированного автоматически (для удобства intellisense ..)
    • Удобный
    • Сильно типизированный
    • Обеспечивает Intellisense
    • Код не будет компилироваться против опечаток / ошибок в именах настроек
  • Простой интерфейс
    • Настройки. Настройки перед предоставлением приятной сетки
    • Все представленные варианты
    • Показан выпадающий список для определенных опций
    • Не нужно редактировать XML
    • Не может толстый палец угловая скобка

Я знаю, что было бы возможно создать класс, который обернул бы их, но он не будет автоматически синхронизироваться с настройками, и его придется редактировать вручную при любом изменении. Это обеспечит некоторые из вышеперечисленных тем не менее.

Могу ли я получить паритет с настройками проекта, как мы делаем в нашем клиенте?

Каков наилучший способ управления настройками веб-сайта ASP.NET 2.0?

Ответы [ 3 ]

1 голос
/ 27 марта 2009

Вы должны использовать веб-приложение, а не веб-сайт, и вы будете иметь доступ к настройкам так же, как приложения Windows

0 голосов
/ 27 марта 2009

Я создаю классы, которые обертывают мой web.config, чтобы обеспечить строго типизированный, интеллигентный дружественный доступ к настройкам.

Кроме того, настройки, скорее всего, будут изменены в XML сотрудниками службы поддержки во время реализации, поэтому сетка в VS не имеет значения. Конечно, он не сгенерирован автоматически, но скопируйте / вставьте ваш друг:)

0 голосов
/ 27 марта 2009

По умолчанию, использование раздела appSettings в вашем web.config - это самый простой способ управлять настройками приложения для веб-приложения. Вы можете привести значения в настройках приложения по мере необходимости. Тем не менее, в этом случае вы потеряете сильную типизацию, которая звучит для вас как прерыватель сделки.

Если вам нужно сохранить строгую типизацию, перейдите в настройки проекта (аналогично приложению WinForms) и установите там свои значения. Вы заметите, что файлы settings.settings существуют в папке MyProjects, но вы также найдете следующий фрагмент кода внизу вашего файла web.config (проведенный одним из моих приложений):

<applicationSettings>
   <EAF.My.MySettings>
      <setting name="EAF_AS400EmployeeServices_EmployeeServices" serializeAs="String">                                          
      <value>http://countynetappsdev/AS400DataService/EmployeeServices.asmx</value>
  </setting>
</applicationSettings>

Обратите внимание на свойство serializeAs в этом разделе. Если у вас есть что-то в этом разделе, вы можете получить доступ к настройкам через библиотеку My.Settings, используя VB.NET. Однако, поскольку вы используете C #, вам нужно проделать дополнительную работу, но простое решение кода можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...