Ответы пользователя по тегу ASP.NET
  • Стоит ли переписывать старый проект на .NET6 (на голом энтузиазме)?

    igolets
    @igolets
    Программист C#, MSSQL
    Я бы предложил попробовать скушать этого слона по частям, а не замахиваться на переписывание всего с сразу.
    По мере появления новых задач локально (в тех местах, которые уже затронуты изменениями) приводить код в порядок — добавлять асинхронность, приводить в порядок типы, обновлять библиотеки.
    Собственно, на .Net6 свет клином не сошёлся, плохой код (как и хороший) можно писать на любой версии
    Ответ написан
    Комментировать
  • Это оптимальный способ фильтрации записей из таблицы с помощью Entity Framework?

    igolets
    @igolets
    Программист C#, MSSQL
    Я как-то обычно пишу код чуть проще:
    var query = _dbContext.Products.AsQueryable();
                if (request.ProductGroups?.Length > 0)
                {
                    query = query.Where(x => request.ProductGroups.Any(y => y == x.ProductGroup));
                }
                if (request.SupplierIds?.Length > 0)
                {
                    query = query.Where(x => request.SupplierIds.Any(y => y == x.SupplierId));
                }
                if (request.Categories?.Length > 0)
                {
                    query = query.Where(x => request.Categories.Any( y => y == x.Category));
                }
    
    
                return Task.FromResult(_mapper.ProjectTo<ProductDto>(query));


    Общие замечания к коду:
    1. Есть ограничения по размеру запроса, если ProductGroups и Categories будут иметь длинные названия, могут быть исключения в рантайме
    2. Надо внимательно подумать на счёт ProductGroups и Categories и используемого движка БД — на предмет CaseSensitive и CaseInsensitive сравнений. Могут тоже быть приколы — когда запись из БД вернулась (там CaseInsensitive), а какой-то код на стороне C# не принял эту запись и упал (CaseSensitive).
    3. Соответственно, как предложение на подумать — нормализовать ProductGroups и Categories в отдельные таблицы ;)
    Ответ написан
    Комментировать
  • Запросы HTTPS между ASP.NET Core 6 и React?

    igolets
    @igolets
    Программист C#, MSSQL
    Если приложение для широкой аудитории, то нет, нельзя. Браузер клиента будет видеть этот сертификат как не доверенный и будет блокировать запросы. В зависимости от того, где размещается приложение, нужно смотреть, какие есть возможности по покупке своего https сертификата. Для собственного хостинга можно использовать letsencrypt, для разных облаков нужно смотреть в их документации. Вот, например, на Яндекс Облаке.

    Если приложение корпоративное и все пользователи работают в контролируемой среде, то можно создать корневой сертификат для организации, централизовано раздать его на все компьютеры и потом создавать сертификаты https свои, подписанные этим корневым.
    Ответ написан
    Комментировать
  • Как обновлять не создавая связанные данные добавляемой сущности при соединении ManyToMany (EF CORE 5)?

    igolets
    @igolets
    Программист C#, MSSQL
    Боюсь, придется сбегать в БД и получить объекты БД для тех тэгов, которые уже есть в базе. Либо сохранять через хранимку и в ней уже проверять, есть такой тэг в базе, или нет.
    Ответ написан
    Комментировать
  • Возможна ли публикации автономного ASP.NET Core приложения (сайта)?

    igolets
    @igolets
    Программист C#, MSSQL
    В диалоге паблиша на вкладке Settings указать "Target runtime = Portable" - не оно?
    Ответ написан
    Комментировать