Задать вопрос
  • Как написать Dockerfile для asp.net приложения с такой архитектурой?

    @hello_my_name_is_dany
    Backend Developer (Node.js, PHP, C#)
    У вас проблема в зависимостях
    Даже по логу вам говорится:
    /app/server_app.Domain/Model/Queries/ProductCategoryCreateQuery.cs(3,17): error CS0234: The type or namespace name 'AspNetCore' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) [/app/server_app.Domain/server_app.Domain.csproj]


    А конкретно проблема в этом
    server_app/server_app.Domain/server_app.Domain.csproj
    <ItemGroup>
            <Reference Include="FluentValidation">
                <HintPath>..\..\..\..\.nuget\packages\fluentvalidation\11.11.0\lib\net8.0\FluentValidation.dll</HintPath>
            </Reference>
            <Reference Include="Microsoft.AspNetCore.Http.Abstractions">
                <HintPath>..\..\..\..\.nuget\packages\microsoft.aspnetcore.app.ref\8.0.8\ref\net8.0\Microsoft.AspNetCore.Http.Abstractions.dll</HintPath>
            </Reference>
            <Reference Include="Microsoft.AspNetCore.Http.Features">
                <HintPath>..\..\..\..\.nuget\packages\microsoft.aspnetcore.app.ref\8.0.8\ref\net8.0\Microsoft.AspNetCore.Http.Features.dll</HintPath>
            </Reference>
            <Reference Include="Microsoft.AspNetCore.Mvc.Abstractions">
                <HintPath>..\..\..\..\.nuget\packages\microsoft.aspnetcore.app.ref\8.0.8\ref\net8.0\Microsoft.AspNetCore.Mvc.Abstractions.dll</HintPath>
            </Reference>
            <Reference Include="Microsoft.AspNetCore.Mvc.Core">
                <HintPath>..\..\..\..\.nuget\packages\microsoft.aspnetcore.app.ref\8.0.8\ref\net8.0\Microsoft.AspNetCore.Mvc.Core.dll</HintPath>
            </Reference>
            <Reference Include="Microsoft.IdentityModel.Tokens">
                <HintPath>..\..\..\..\.nuget\packages\microsoft.identitymodel.tokens\7.1.2\lib\net8.0\Microsoft.IdentityModel.Tokens.dll</HintPath>
            </Reference>
            <Reference Include="Npgsql.EntityFrameworkCore.PostgreSQL">
              <HintPath>..\..\..\..\.nuget\packages\npgsql.entityframeworkcore.postgresql\9.0.2\lib\net8.0\Npgsql.EntityFrameworkCore.PostgreSQL.dll</HintPath>
            </Reference>
        </ItemGroup>


    Вы буквально указали путь к конкретным dll на вашем компьютере, и из-за этого в докер они не попадают, а dotnet restore их просто игнорирует. Эти зависимости должны быть в общем списке, как в блоке ItemGroup ниже этого, но проблема на самом деле куда глобальнее.

    Как я понимаю, вы только изучаете DDD, и сделали самую фатальную ошибку в дизайне, Domain не должен отвечать за БД, JWT, модели, DTO и тд. Domain должен концентрировать именно бизнес-сущности и бизнес-логику (Entities & Buisness Services). Application слой уже отвечает за сценарии использования приложения (CQRS или Use Cases, которые оперируют сущностями/сервисами из Domain, а для инфраструктурных моментов использует интерфейсы - dependency inversion). Инфраструктурный слой реализует интерфейсы из Application слоя, например, репозитории бд, http-клиенты и тд, соответственно в нём концентрируется вся работа с БД и другими внешними сервисами. Presentation слой отвечает за представления, это может быть ASP.NET Core API. В таком случае, здесь уже используются модели, JWT, вызов Use Cases из слоя Application, в общем всё, что касается предоставления API.

    Это если очень коротко, тема довольно обширная и сложная.
    Советую вам почитать:
    Мартин Роберт - Чистая архитектура. Искусство разработки программного обеспечения
    Эрик Эванс - Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем

    Также именно для C# есть прекрасный пример проекта с использованием подходов CA и DDD, изучите его, необязательно делать всё под копирку, но полезным точно будет.

    Удачи Вам!
    Ответ написан
    1 комментарий
  • Почему мыльный интерфейс в vscode?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вот эти опции уже пробовали из первых ссылок в гугле?
    https://github.com/hyprwm/Hyprland/issues/4677
    https://wiki.hyprland.org/Configuring/XWayland/
    https://dev.to/nishan_bista/uitext-blur-issues-wit...
    --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto

    --enable-features=UseOzonePlatform --ozone-platform=wayland
    Ответ написан
    Комментировать
  • Нужны ли везде дивы и как должна выглядеть верстка?

    Бри́тва О́ккама (иногда ле́звие О́ккама) — методологический принцип, в кратком виде гласящий: «Не следует множить сущее без необходимости» (либо «Не следует привлекать новые сущности без крайней на то необходимости»).

    Это главный принцип и верстки, и программирования.

    1. Оборачивайте элемент в div (или другой контейнер), если вы точно знаете, зачем вы это делаете, и без этого нельзя обойтись.

    2. Не вставляйте везде бездумно div. Почитайте про семантическую вёрстку, и используйте разные элементы-обёртки для разных типов контента.

    https://htmlacademy.ru/blog/html/semantics
    Ответ написан
    1 комментарий
  • Как сделать окно, как на скрине?

    oleg0vi4
    @oleg0vi4
    Используйте html css js
    Как вариант
    Ответ написан
    Комментировать
  • Почему получаю System.InvalidOperationException: No authentication handler is registered for the scheme?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Вы неправильно используете метод ControllerBase.Forbid. Передаваемая в него строка (она, как понимаю, преобразуется в массив строк из одного элемента) - это не сообщение об ошибке, а название использованного метода аутентификации.
    Ответ написан
    Комментировать
  • Как сделать Table Per Class и почему у меня вылетает ошибка "A key cannot be configured on 'CustomerEntity' because it is a derived type. "?

    Geminix
    @Geminix
    Фуллстек nuxt, .net разработчик
    Полагаю, что useTpcMapping надо применить к конфигурации UserEntity
    Ответ написан
    3 комментария
  • Есть ли смысл применять CQRS/MediatR?

    vhood
    @vhood
    Не забывайте отмечать решения
    Query может использовать отдельную базу данных с денормализацией и индексами под поиск, а Command другую базу данных с нормальными формами и без лишних индексов для ускорения вставки. В случае микросервисной архитектуры это будет 2 отдельных микросервиса, что позволит эффективно всем управлять. Но настроить такую систему сложнее и дольше.

    Независимо от БД и архитектуры, для Query и Command стоит делать разных пользователей в базе данных с разными правами, что только усиливает безопасность.
    Ответ написан
    Комментировать
  • Как исправить "info: Microsoft.AspNetCore.Hosting.Diagnostics[2] Request finished HTTP/1.1 GET http://localhost:5183/favicon.ico - 400"?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Насколько помню - лого запрашивает браузер. Если я открываю страницу апи, то он и лого запросит, если делаю запрос через curl, то никаких лого запрашиваться не будет.
    Ответ написан
    3 комментария
  • Как поменять место установки в arch linux?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    вы сейчас на этом шаге
    Installation_guide#Install_essential_packages

    то какой раздел диска вы монтируете в папку /mnt (куда будет ставиться система) проделывается на предыдущем шаге
    Installation_guide#Mount_the_file_systems
    Ответ написан
    Комментировать
  • По какой причине появляеться SqliteException: SQLite Error 19: 'NOT NULL constraint failed?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Исправьте вот здесь:
    [Column("profilePicturePath")]
        public string? ProfilePicturePath { get; set; }

    Пояснение. В документации по EF Core написано:
    Если включены ссылочные типы, допускающие значение NULL, свойства будут настроены на основе nullability C# для типа .NET: string? будут настроены как необязательные, но string будут настроены по мере необходимости.

    В современных шаблонах проектов nullability включена по умолчанию, так что ваш тип свойства string EF понимает как то, что соответствующая колонка записи должна иметь ограничение NOT NULL. А потому вам следует использовать в качестве типа свойства string? .
    Ответ написан
    1 комментарий
  • От чего появляется 405 http code?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Форма отправляется в теле, а ты хочешь ее передать через путь.
    Тег action у form - статический, он не меняется (js тут нет), поэтому он должен быть известен с самого начала.

    Тут 2 решения:
    1. Переделывай все под js (сам все вставляй и прописывай)
    2. Измени способ передачи формы: путь статический (без параметров пути подставляемых), а форма через [FromForm]
    Ответ написан
    Комментировать
  • Как исправить ошибки SqliteException: SQLite Error 19: 'UNIQUE constraint failed: AspNetUsers.NormalizedUserName' и DbUpdateException?

    yarosroman
    @yarosroman
    C# the best
    не пишите User = owner, это навигационное свойство, оно не хранится в базе, для связи достаточно UserId выставить. В вашем случае EF добавляет еще и юзера, а так ка он уже есть, отсюда и ошибка.

    https://learn.microsoft.com/en-us/ef/core/saving/r...
    Ответ написан
    Комментировать