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.
- поиск будет кошмаром, так как контент будет в файлах. Сложно настроить, и это никогда не будет эффективным.
- редактирование, добавление комментариев, модерация будет.,, действительно трудно.
- безопасность будет сложной