Где хранить глобальные данные приложения?

Программирование Web-приложений и Web-сервисов.

Модератор: Ramzes

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Где хранить глобальные данные приложения?

Сообщение Roman Koff » 29.09.2008 (Пн) 22:27

Подскажите, где и с помощью чего следует хранить глобальную конфигурацию приложения?
Т.е. допустим есть некие данные, которые приложение использует постоянно при работе. Данные инициализируются один раз при старте приложения и в дальнейшем должны быть доступны объектам сессии пользователя. Например список mime-типов файлов.

Данные сессии я храню в объекте Web.HttpContext.Current и они доступны в рамках сессии

Global.asax - инициализация класса данных
Код: Выделить всё
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
   Dim _Request As New Portal.WebRequest.RequestContentClass
   Me.Context.Items.Add("Request", _Request)
End Sub


Default.aspx.vb - восстановление класса данных
Код: Выделить всё
Private _Request As Portal.WebRequest.RequestContentClass = CType(HttpContext.Current.Items("Request"), DN2Portal.WebRequest.RequestContentClass)


А вот где и как хранить глобальные установки приложения?

Код: Выделить всё
Sub Application_OnStart(ByVal sender As Object, ByVal e As EventArgs)
   'Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!
End Sub
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Где хранить глобальные данные приложения?

Сообщение kibernetics » 30.09.2008 (Вт) 9:33

Храни в БД

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Где хранить глобальные данные приложения?

Сообщение Roman Koff » 30.09.2008 (Вт) 12:24

А что такое БД?
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Где хранить глобальные данные приложения?

Сообщение Roman Koff » 30.09.2008 (Вт) 13:36

Короче я догнал сам:

Инициализация
Код: Выделить всё
Sub Application_OnStart(ByVal sender As Object, ByVal e As EventArgs)
   Dim _PortalConfig As New DN2Portal.PortalConfigClass
   System.Web.HttpContext.Current.Application.Add("PortalConfig", _PortalConfig)
End Sub


Восстановление
Код: Выделить всё
Private _PortalConfig As DN2Portal.PortalConfigClass = CType(System.Web.HttpContext.Current.Application.Get("PortalConfig"), DN2Portal.PortalConfigClass)


Всем спасибо
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Где хранить глобальные данные приложения?

Сообщение Roman Koff » 30.09.2008 (Вт) 14:55

"... Мама, я не могу больше пить ..."

Еще один способ, для тех кому интересно.
Если в проекте описать класс у которого есть элементы shared, то эти элементы будут поступны всему приложению ...
Просто до тупизны ...
При этом, почему то в C# можно сделать класс shared, а в VB.NET нельзя ...
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Где хранить глобальные данные приложения?

Сообщение kibernetics » 30.09.2008 (Вт) 17:11

а точно,
можно же хранить в вебконфиге...
типа,
Код: Выделить всё
<configSections>
    <section name="mySection" type="CH.MySection, __code"/>
  </configSections>

  <mySection defaultConnectionStringName="LocalSqlServer">
    <contactForm mailTo="aaa@bbb.ccc"/>
    <articles pageSize="10"/>
    <polls archiveIsPublic="true" votingLockByIP="false"/>
    <newsletters fromEmail="aaa@bbb.bbb" fromDisplayName="Title" archiveIsPublic="true" hideFromArchiveInterval="10"/>
    <forums threadsPageSize="8" hotThreadPosts="10" bronzePosterPosts="10" silverPosterPosts="20" goldPosterPosts="50"/>
    <store sandboxMode="true" businessEmail="aaa@bbb.ccc" />
  </mySection>


Код: Выделить всё
Public NotInheritable Class Globals
        Public Shared ReadOnly Settings As MySection = CType(WebConfigurationManager.GetSection("mySection"), MySection)

    End Class


Вернуться в ASP.NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

    TopList