Часто задаваемые вопросы

Узнайте, как Lino ускоряет проекты .NET с Clean Architecture, DDD, CQRS, JWT, multi-tenancy, shadow entities, RabbitMQ, Hangfire, Blazor, cache, observability и deploy.

Lino — это интерфейс командной строки для создания современных приложений в .NET.

Он автоматизирует архитектуру, модули, API, аутентификацию, интерфейс и инфраструктуру с упором на Clean Architecture, DDD и CQRS.

Lino служит для уменьшения повторяющейся работы по запуску и развитию приложений .NET.

Вместо того, чтобы вручную собирать решение, слои, конечные точки, аутентификацию и первоначальное развертывание, команда начинает с готовой базы и фокусируется на бизнес-правилах.

Lino — это генератор кода для .NET, а не закрытая платформа.

После генерации проект принадлежит команде и может быть модифицирован без обязательной зависимости от инструмента.

Основное внимание в Lino уделяется детерминированной генерации на основе шаблонов и правил.

Это помогает поддерживать предсказуемость, согласованность архитектуры и меньше шума, чем потоки, зависящие от искусственного интеллекта.

Lino был создан Эдуардо Толино для повышения производительности и стандартизации архитектуры современных приложений в .NET.

Да.

Сгенерированные проекты используют распространенные patterns корпоративного ПО, такие как Clean Architecture, CQRS, DDD, JWT, Docker, observability и интеграция с pipelines. Сгенерированную базу все равно нужно проверить, протестировать и настроить для каждой production-среды.

Основное отличие Lino заключается в ускорении создания приложений .NET с единой архитектурной базой с первой команды.

Он объединяет генерацию кода, модульную организацию, API, интерфейс, аутентификацию, события и инфраструктуру в единый поток.

Чтобы использовать Lino вам необходимо установить .NET SDK, Git, Entity Framework CLI и Docker.

dotnet tool install --global Tolitech.Lino

После установки вы можете проверить версию с помощью lino --version.

lino project new --name MyProject

Эта команда создает исходную структуру проекта со слоями, модулями и базовыми конфигурациями.

Lino может генерировать структуру проекта, services, modules, entities, value objects, enumerations, commands, queries, APIs, pages, events, event handlers, migrations, конфигурацию secrets, background jobs и Docker images в зависимости от выбранных features.

Да. Сгенерированный код полностью принадлежит вам и не зависит от продолжения работы инструмента.

Да. Lino — хороший вариант для MVP, если вам нужна скорость, не отказываясь от чистой базы для дальнейшего развития.

Да. Lino помогает SaaS-проектам, которым нужны организованный backend, authentication, APIs, web frontend, стандартизированная инфраструктура, изоляция tenant, permissions по context, управление secrets и rate limiting.

Да. Lino был разработан для бизнес-приложений в .NET, требующих разделения уровней, четко определенных модулей, API, событий и интеграции с реальной инфраструктурой.

Оба сценария действительны. Для большинства продуктов начать с модульного монолита зачастую проще и экономически эффективнее.

Lino имеет смысл, когда вам нужно реализовать проект .NET с согласованной архитектурой, быстрой настройкой и возможностью роста без переписывания базы.

Если проект чрезвычайно мал, одноразовый или не требует модульной архитектуры, выигрыш от Lino может быть ниже.

Да. Выгода заключается в устранении часов или дней повторяющейся настройки серверной части, внешнего интерфейса, аутентификации, конечных точек, событий, устойчивости и начальной инфраструктуры.

Команды .NET, создающие веб-продукты, SaaS, внутренние системы, платформы B2B и бизнес-услуги, как правило, получают наибольшую выгоду от Lino.

Lino использует Clean Architecture, разделяя систему на такие уровни, как домен, приложение, инфраструктура и представление.

Да. Lino поощряет моделирование на основе предметной области с помощью Entities, Value Objects, Enums, Domain Events и bounded contexts.

Да. Commands и Queries разделены для облегчения организации, обслуживания и масштабируемости приложения.

Да. Модульный монолит — один из наиболее естественных сценариев для Lino, особенно когда команде нужны низкие эксплуатационные расходы при хорошем внутреннем разделении.

Да. Lino можно использовать для создания модульных монолитов, независимых сервисов и архитектур на основе микросервисов.

Да. Lino был разработан для усиления разделения обязанностей, слабой связи, модульности и устойчивого развития кода.

Entities представляют объекты с собственным идентификатором в домене, например «Пользователь», «Заказ» или «Продукт».

Value Objects представляют неизменяемые концепции домена, не имеющие собственной идентичности, например деньги, адрес или электронную почту.

Да. Lino поддерживает Domain Events для представления соответствующих событий в домене и поддержания низкой связи между частями системы.

Домен можно разделить на модули или bounded contexts для отражения отдельных областей бизнеса, таких как каталог, продажи, запасы, идентификация или выставление счетов.

Да. Вы можете начать с нескольких модулей и более простых правил и развивать моделирование по мере развития продукта.

Да. Lino может автоматически генерировать конечные точки на основе команд и запросов приложения.

Да. Созданные API используют Minimal APIs из .NET, интегрированные непосредственно с прикладным уровнем.

Сгенерированный проект совместим с документацией API через OpenAPI и Swagger, что облегчает проверку контрактов, тестирование и интеграцию между командами.

Управление версиями может соответствовать известным стандартам REST и сочетаться с организацией по конечным точкам, контрактам и сборкам.

Да. Архитектура Lino позволяет интегрировать внешние API, веб-перехватчики, SDK и сторонние сервисы через уровень инфраструктуры.

Сгенерированный проект публикует API contracts через OpenAPI/Swagger, а практическое тестирование endpoints может поддерживаться HTTP-файлами или похожими client tools в зависимости от выбранного template и workflow.

Да. Lino поддерживает создание аутентификации и авторизации для внешних и внутренних проектов.

Да. Lino поддерживает аутентификацию на основе JWT для API и веб-приложений с упором на безопасность и встроенную интеграцию с ASP.NET Core.

Да. Модель безопасности Lino включает более детальное управление доступом с помощью ролей, утверждений и Authorization Policies из ASP.NET Core.

Да. Интерфейс может быть интегрирован в поток аутентификации для входа в систему, обновления токенов и защищенного доступа к страницам и API.

Lino предоставляет команды secrets, такие как lino secret list, lino secret set, lino secret remove и lino secret clear, чтобы хранить локальные чувствительные значения вне versioned files. Сгенерированные secrets также можно моделировать как Aspire Parameters для publish и deploy flows.

Да. Сгенерированные APIs могут изначально иметь rate limiting policies для public traffic, authenticated users, routes с API key и temporary token flows, снижая экспозицию до тонкой настройки production.

Domain Events представляют собой внутренние события в домене. Integration Events используются для независимого взаимодействия модулей, служб или внешних систем.

Да. Lino поддерживает события для связи между частями приложения и для интеграции между сервисами, когда архитектура требует этой модели.

Да. Когда асинхронный messaging включен, Lino настраивает RabbitMQ как broker, чтобы services и modules обменивались сообщениями независимо и устойчиво.

Да. Lino использует MassTransit в messaging-сценариях, чтобы упростить publishing, consuming и регистрацию distributed events с native dependency injection model.

Да. Lino поддерживает background jobs с Hangfire для scheduled tasks, asynchronous processing, recurring operations и operational visibility через dashboard Hangfire.

Используйте domain events для изменений внутри domain, integration events для коммуникации между modules или services, queues для asynchronous processing и background jobs для scheduled, recurring или long-running work. Для надежного publishing сценарии Lino используют Outbox Pattern.

В настоящее время Lino поддерживает базы данных, совместимые с Entity Framework Core, такие как SQL Server и PostgreSQL.

Да. Сохранение данных основано на Entity Framework Core для моделирования, миграции и развития базы данных на протяжении всего жизненного цикла проекта.

Migrations управляются через Entity Framework Core и могут создаваться командой lino database migrations add, сохраняя изменения модели явными, versionable и reviewable до deploy.

Не обязательно. В модульных монолитах наиболее распространенным является общий банк с четкой организацией каждого модуля.

В микросервисах каждый сервис может иметь свой собственный банк, если это целесообразно с архитектурной точки зрения.

Да. Lino поддерживает развитие базы данных через migrations и script-oriented deploy practices, сочетая этот flow с возможностями build и versioning, когда services готовятся к release.

Да. Lino может создавать веб-приложения, интегрированные в серверную часть, для ускорения доставки полных систем.

Да. Lino может генерировать интегрированные Blazor Web Apps, включая frontend resources, подключенные к backend APIs, localization и authentication, когда выбраны эти features.

Да. Архитектура Lino не препятствует использованию React, Angular, Vue или любого другого интерфейса, использующего API проекта.

Да. Интерфейс может работать с входом в систему, обновлением токенов и использованием API, защищенных JWT и политиками авторизации.

Да. Lino помогает структурировать страницы, компоненты и функции более стандартизированным образом, сокращая количество повторяющихся решений во внешнем интерфейсе.

Да. Проекты, сгенерированные Lino, могут включать structured logging, интеграцию с dashboard Aspire, traces, metrics и operational diagnostics для поддержки debugging и анализа в production.

Да. Lino поддерживает cache-сценарии с Microsoft HybridCache и distributed cache на Redis, когда эта опция включена, улучшая consistency между несколькими instances.

Да. Стандартизируя структуру, журналы, аутентификацию, API и инфраструктуру, Lino облегчает расследование проблем и оперативное обслуживание.

Сгенерированное solution может включать health checks, metrics, traces, logs и resource visibility через Aspire, следуя practices экосистемы .NET, используемым выбранной architecture.

Да. Lino может генерировать Docker images для services и web applications через build flow, помогая упаковывать artifacts для registries и containerized environments.

Да. Созданные проекты можно интегрировать с конвейерами CI/CD для сборки, тестирования, упаковки, миграции и автоматического развертывания.

Build и versioning могут следовать SemVer-oriented practices, а Lino поддерживает упаковку выбранных services и web applications как versioned Docker images для release.

Да. Проект может быть опубликован в облаке, контейнерных средах или собственной инфраструктуре, в зависимости от операционной стратегии команды.

Да. Lino ускоряет техническую настройку для развертывания в рабочей среде благодаря Docker, стандартизированной сборке, сохранению, аутентификации и интеграции с конвейерами.

Lino включает multi-tenant support через lino feature tenant add или lino features tenant add. Сгенерированная структура может resolve tenants по domain или slug, применять permissions по context и защищать tenant-scoped data.

Shadow entities — это локальные копии минимальных данных, которые module получает из другого context. Команда lino shadow new создает структуру, а соответствующий integration event handler должен быть сгенерирован отдельно командой lino event-handler new.

Да. Roadmap показывает постоянное развитие и также отмечает многие уже завершенные capabilities, такие как JWT authentication, Blazor Web Apps, Hangfire, RabbitMQ/MassTransit, migrations, Docker build, HybridCache, multi-language resources, smart merge, secrets и rate limiting.

Завершенный roadmap включает несколько ключевых capabilities: генерацию проектов .NET/Aspire, modular services, Minimal APIs, поддержку SQL Server и PostgreSQL, background jobs, messaging, JWT security, Blazor Web Apps, Docker build/versioning, user secrets, rate limiting, tenant support и shadow entities.

Генерация кода, integrations, developer experience, deploy workflows, observability, security hardening и template coverage продолжают развиваться по мере роста продукта.

Следить за изменениями можно на странице roadmap, в documentation и через официальные каналы продукта. Используйте status roadmap, когда нужно отличить завершенные features от запланированных improvements.

Произошла необработанная ошибка. Обновить 🗙