3 главных причины не разрабатывать "систему блогов", которая генерирует файлы aspx на лету

В этом вопросе OP подразумевает, что он хочет основать систему блогов, которую он разрабатывает, на автоматическом создании файлов.aspx, по одному на каждую новую запись в блоге. В своем ответе на его вопрос (который связан с чем-то другим) я сказал ему, что буду отговаривать его от использования такого подхода, но без объяснения причин. Сейчас ему нужны причины, по которым это не очень хорошая идея, и я использую этот вопрос, чтобы посмотреть, сможет ли сообщество найти достаточно убедительный список причин, по которым он может использовать другой подход, например, использующий код dbms. - повторное использование, перезапись URL, MVC, а что нет.

3 ответа

Решение

Существует два вида публикаций CMS:

  • Те, кто генерирует контент статически. Некоторые издательские платформы генерируют контент статически. В этом случае сгенерированные файлы не являются динамическими и должны быть файлами HTML. Система должна иметь возможность регенерировать все, например, если шаблон изменился. Было время, когда у этого решения были некоторые преимущества:
    • безопасность: безопасность управляется на уровне файловой системы
    • поиск: полнотекстовый поиск был прост, потому что все было на основе файлов
    • производительность: использует меньше ресурсов процессора.
    • интерактивность: невозможно
    • Распространение контента: единственная причина, по которой сейчас нужно создавать или выбирать такую ​​платформу, заключается в том, что контент нужно распространять через другой канал, кроме Интернета, например, CD, загружаемый журнал и т. д.

,

  • Те, кто рендерит контент динамически. Для веб-сайта самый простой способ - это динамическое отображение страницы.
    • безопасность: безопасность может быть проверена по сложной схеме и т. д.
    • search: поисковая система развивается и прекрасно интегрируется с разнородными источниками: может быть полнотекстовым в базе данных, файлах и т. д.
    • производительность: это больше не проблема.
    • интерактивность: это намного более гибко: контент может быть адаптирован для посещающего пользователя, люди могут оценивать страницу, добавлять комментарии и т. д.
    • Распространение контента: должно быть онлайн, конечно

Гибридная система, в которой вы генерируете статически файл, который будет отображаться динамически (.aspx), для меня не имеет смысла - у него есть недостатки обоих.

Генерация отдельных файлов ASPX для каждой статьи неэффективно использует ресурсы сервера:

  • каждый новый файл aspx будет скомпилирован в DLL. Это означает дополнительные накладные расходы времени выполнения для компиляции статьи + накладные расходы памяти через воссоздание нового AppDomain, который содержит эту новую DLL

  • Можно настроить ASP.Net для компиляции всех файлов ASPX в один файл DLL, но это было бы еще хуже: ВСЕ статьи придется перекомпилировать каждый раз при создании новой статьи.

Более приемлемым решением (но даже тогда, а не тем, которое я бы порекомендовал) было бы создание статических файлов.html.

Страницы.aspx предназначены для динамического создания html (и javascript и т. д.). Либо один и тот же небольшой набор страниц.aspx должен генерировать выходные данные для всех записей блога (хранящихся в последовательности полей), либо (по соображениям производительности) предварительно сохраненный html может храниться на страницах db (best) или.html.

Создание страницы ASPX для каждой записи в блоге - это инструмент для создания контента. Это не имеет смысла для любого нормального. Там будет ненужные накладные расходы в этой системе. Не зная его точного плана, я все еще могу быть уверен, что по крайней мере некоторые из следующего применимы:

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