PageCharm

Разработчикам

Архитектура

Руководство разработчика PageCharm

Из каких пакетов состоит PageCharm и где проходят границы ответственности.

Пакеты

PageCharm содержит ядро, маршрутизацию, рендеринг и базовые сервисы. PageCharm.Ui добавляет русскоязычную админку. EF Core-пакеты отвечают за хранение моделей, storage-пакеты — за файлы и бэкапы.

Модули

Модуль реализует IPageCharmModule и может создавать блоки, шаблоны, поля, представления, настройки и стартовый контент. Именно так построен этот sample.

Публичный сайт

Контент разрешается по URL, затем выбранное Razor-представление получает PageCharmPageModel. Если у шаблона нет представления, публичный URL вернет 404, но такой контент можно использовать как данные.

Пример

public sealed class MySiteModule : IPageCharmModule
{
    public string Id => "my-site";
    public Version Version => new(1, 0, 0);

    public Task SeedAsync(IPageCharmModuleSeedContext context, CancellationToken token)
    {
        // Создайте блоки, шаблоны, поля и стартовый контент.
        return Task.CompletedTask;
    }
}

Граница

PageCharm не диктует дизайн публичного сайта. Он хранит структуру и данные, а HTML/CSS/Razor остаются в вашем приложении.