powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как компилируется application theme?
3 сообщений из 3, страница 1 из 1
Как компилируется application theme?
    #34101019
Кэр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, кто разбирался в потрохах компиляции application theme?
Почему при изменениях в App_Themes директории не происходит перегрузка приложения? Ведь skin файл компилируется в определенный тип. Этот тип нужно где-то хранить. Если тип меняется — его надо выгрузить...
А такое чувство, что новые классы просто генерятся и генерятся — лишь бы не допустить перегрузку приложения :)

Просто пытались заоптимайзить выбор новой application theme и пытались подсунуть новую, уже скомпилированную. Хрен. Время запроса увеличилось с 0.5 секунд до 3.0 :) Кстати, есть идеи, как можно подсунуть уже скомпилированную тему и при этом не вызвать рестарт приложения?
...
Рейтинг: 0 / 0
Как компилируется application theme?
    #34101821
Gollum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Кэр, Вы писали:

Кэр>Коллеги, кто разбирался в потрохах компиляции application theme?

Page.InitializeThemes()


private void InitializeThemes()
{
      string text1 = this.Theme;
      if (!string.IsNullOrEmpty(text1))
      {
            BuildResultCompiledType type1 = ThemeDirectoryCompiler.GetThemeBuildResultType(this.Context, text1);
            if (type1 == null)
            {
                  throw new HttpException(SR.GetString("Page_theme_not_found", new object[] { text1 }));
            }
            this._theme = (PageTheme) type1.CreateInstance();
            this._theme.Initialize(this, false);
      }
}

Есть еще Page.InitializeStyleSheet()

ThemeDirectoryCompiler работает через PageThemeBuildProvider.

Кэр>Почему при изменениях в App_Themes директории не происходит перегрузка приложения? Ведь skin файл компилируется в определенный тип. Этот тип нужно где-то хранить. Если тип меняется — его надо выгрузить...

Видимо, решили что частое изменение в темах на продакшн сервере не планируется.

Кэр>А такое чувство, что новые классы просто генерятся и генерятся — лишь бы не допустить перегрузку приложения :)

Как видите, именно так.

Кэр>Просто пытались заоптимайзить выбор новой application theme и пытались подсунуть новую, уже скомпилированную. Хрен. Время запроса увеличилось с 0.5 секунд до 3.0 :) Кстати, есть идеи, как можно подсунуть уже скомпилированную тему и при этом не вызвать рестарт приложения?

А зачем нужна подобная оптимизация? Если изменений не было, то тема подгружается уже скомпилированная.Круглое — носить, квадратное — катать!
...
Рейтинг: 0 / 0
Как компилируется application theme?
    #34102650
Кэр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Gollum, Вы писали:

G>Page.InitializeThemes()

G>
G>private void InitializeThemes()
G>{
G>      string text1 = this.Theme;
G>      if (!string.IsNullOrEmpty(text1))
G>      {
G>            BuildResultCompiledType type1 = ThemeDirectoryCompiler.GetThemeBuildResultType(this.Context, text1);
G>            if (type1 == null)
G>            {
G>                  throw new HttpException(SR.GetString("Page_theme_not_found", new object[] { text1 }));
G>            }
G>            this._theme = (PageTheme) type1.CreateInstance();
G>            this._theme.Initialize(this, false);
G>      }
G>}
G>

G>Есть еще Page.InitializeStyleSheet()

G>ThemeDirectoryCompiler работает через PageThemeBuildProvider.

Угу, reflector'ом забирались еще глубже, пытаясь постичь дао кэшинга application theme. Но там столько всего, что за один вечер вычитать не удалось. Надеялся, что кто-то уже прошел этим путем и может даже чиркнул статью-другую :)

Кэр>>Просто пытались заоптимайзить выбор новой application theme и пытались подсунуть новую, уже скомпилированную. Хрен. Время запроса увеличилось с 0.5 секунд до 3.0 :) Кстати, есть идеи, как можно подсунуть уже скомпилированную тему и при этом не вызвать рестарт приложения?

G>А зачем нужна подобная оптимизация? Если изменений не было, то тема подгружается уже скомпилированная.

У сайта может быть заменена вся тема. После этого проходит некоторое время на генерацию кода классов и его компиляцию. Вдобавок на этом шаге иногда все может свалится "неизвестный тэг", "плохое форматирование" и т.п. Предварительной компиляцией хотелось решить обе эти проблемы. Но видимо малой кровью эту проблему не решить.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как компилируется application theme?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]