Задать вопрос
  • Какие есть оптимальные способы хранения и передачи изображений из MongoDB?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, есть: хранить сами изображения не БД, а в отдельном файловом хранилище с внешним доступом по ссылке-идентификатору. В самой же БД хранить только идентификаторы изображений в хранилище. Это стандартная практика работы с файлами и БД.
    Ответ написан
    Комментировать
  • При генерации кошельков должна генерироваться seed-фраза из 12 слов с проверкой checksum, как это понять?

    Noizefan
    @Noizefan
    последнее слово из 12 это хеш-сумма предыдущих 11, мой дорогой фуллстак.
    при генерации ты должен проверить, что это не от балды напиханные 12 слов, а соответствующая спецификации настоящая мнемоника, хешанув 11 слов и получив именно двенадцатое.
    Ответ написан
    Комментировать
  • С чем и как есть gRPC?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    1-2. Если говорить про микросервисы: каждый микросервис должен определять свою модель пользователя (только те поля/данные которые нужны конкретно ему) - да это будет копипаст

    Если про реальность: все зависит от области - возможно стоит сделать несколько независимых (в контексте запускаемых процессов) сервисов, но все они будут шарить единственную модель, а может для каждого свою определить.

    3. Зависит
    4. Обычно, для популярных ЯП (ты не указал, но в тегах есть питон) есть официальные библиотеки с кодогенерацией - юзай их
    5. Какой архитектуры? Если про gRPC vs HTTP, то лучше копай в строну понимания синхронного (HTTP, TCP, gRPC) и асинхронного (очереди сообщений) взаимодействия
    Ответ написан
    2 комментария
  • Что выбрать для CI/CD проектов на .net?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    • Самое ближайшее и доступное в вашем случае - GitHub Actions
    • Чуть более сложно, но больше гибкости и автономности - GitLab PipeLines (можно даже у себя захостить сервер)
    Ответ написан
    2 комментария
  • Стоит ли заниматься по курсам от Ulearn?

    ulearn - вполне хорошие курсы университетского уровня.
    Причём это не "курсы C#", а "курсы программирования, на примере C#", что для новичка даже лучше.
    Ответ написан
    Комментировать
  • Возможно чтобы код С# испольнялся на GPU?

    @rPman
    Погуглю за тебя.
    ilgpu.net, первый же пример.

    Возможно ты что то не то хочешь, и лучше бы тебе сначала посмотреть в сторону opencl, язык там будет похожий на c++, заточен на работу на многопроцессорных ускорителях типа видеокарта. Есть даже реализации для fpga чипов с программируемой логикой, в общем это специализированный стандарт.

    Есть еще cuda, это vendorlock модификация opencl от nvidia (формально это они двигают стандарты в этом направлении, ибо крупнейшие разработчики железа)
    Ответ написан
    Комментировать
  • Как правильно обучаться в начале пути?

    Adamos
    @Adamos
    Решения, которые можно найти на ютубах и форумах, достойны того, чтобы находить их на ютубах и форумах.
    Ничего сколько-нибудь серьезного из этих обрывков (особенно из того мусора, который на ютубах) все равно собрать не получится, голова понадобится.

    "Насчёт паттернов, принципа SOLID и подобных штук": для их изучения необходим опыт, хотя бы говнокодинга, и точка приложения, хотя бы тот же собственный говнокод, в котором груда классов перепутана между собой. Разгребание этой груды позволит применить те принципы на практике, а без практики их изучать бесполезно вовсе.
    Ответ написан
  • Как сделать самоподписанный сертификат доверенным на Windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    У сертификата есть поле Common Name или Certificate Subject, там где ты указывал имя при генерации сертификата.
    Оно должно соответствовать имени домена (например localhost)

    Либо у сертификата есть дополнительное поле Alternative Subject Names, где можно перечислить несколько DNS имен, тогда localhost должен быть или там или там.
    Иначе не пройдет валидация, браузер не будет видеть что сертификат соответствует твоему сайту localhost
    Ответ написан
    Комментировать
  • Что означает оператор => в linq c#?

    Это не оператор, а стрелочка, которая отделяет аргументы анонимной функции от её тела.
    https://learn.microsoft.com/en-us/dotnet/csharp/la...

    Тоесть вот такой код создаёт функцию с единственным аргументом num, которая возвращает значение выражения num != 2.
    num=>num!=2

    Ведь эта строка на много проще

    Нет, не проще.

    Выбирай:
    var noTwo = nums.Where(x=>x != 2);
    // или
    var noTwo=from num in nums
                      where num!=2
                      select num;
    Ответ написан
    Комментировать
  • Как получить текст ответа ASP Net Core API?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Основным методом общения между клиентом и сервером являются Status Code. Зачем вам передавать точное описание, что там оно не нашло, если вы можете просто передавать 404 и клиент пусть сам генерирует себе ошибку.

    Вообще забудьте про этот бред return StatusCode. Есть нормальные методы StatusResult к которым относятся Ok(), BadRequest() и тот же NotFound(). В эти методы можете передавать какие-то мета-данные если вам нужно. Либо можете использовать Response.Headers. Но если вам прям очень-очень нужно впихнуть туда вот это вообще об ошибке, так что бы ваш сервер был на все руки мастер, можете сделать что-то типа такого:

    return NotFound(new { message = "Omg, Not Found!!!" });


    UPD:
    Как на клиенте через JS вытянуть ошибку? Я бы использовал просто ajax:

    $.ajax({
        url: '...',
        method: 'get',
        success: (response): {
            let data = JSON.parse(response.responseText);
            console.log(data.message); //Omg, Not Found!!!
        }
    });
    Ответ написан
    3 комментария
  • Как подключить proto файлы к проекту?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Клик сюда
    660ebe1a9e832661047201.jpeg

    Далее сюда
    660ebe371e0df243799837.png

    Подключаете .proto файл. После этого делает Rebuild вашего solution'а. Потом даблклик по проекту, в этом .csproj файле ищите секцию ItemGroup в которой будут ваши Protobuf. К ним додаёте аттрибут ProtoRoot, который (Для удобной работы) должен быть таким же как и пусть в аттрибуте Include без указания названия файла .proto

    UPD:
    Так же стоит отметить, чтобы импортировать в .proto ваш другой .proto, они должны быть хотя бы на одном уровне. Другими словами, вы можете импортировать только файлы, который находятся по архитектуре на том же уровне или ниже, потому что в import запрещено использования символа точки и запятой. Это значит, что вы не сможете выйти на уровень выше
    Ответ написан
    7 комментариев
  • Не работает Visual Studio, начинающий изучатель C#?

    1. Работает.
    2. Все ошибки перечислены внизу.
    Ошибка у тебя в том что ты методы пишешь в неймспейсе, а не в классе - смотри внимательно, как код пишет ведущий.
    Ответ написан
    5 комментариев
  • Как сделать редирект на refresh-token когда получаю AuthenticationFailed на asp.net core web api?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Решил. Как это всё делается? Внутрь onAuthenticationFailed вставляем этот код:
    if (context.Exception?.GetType() == typeof(SecurityTokenExpiredException))
    {
        IJwtService jwtService = context.HttpContext.RequestServices.GetService<IJwtService>();
    
        if (context.Request.Cookies.TryGetValue("refresh-token", out string refreshToken))
        {
            Result<ClaimsPrincipal> principalResult = jwtService.ValidateAndDecodeToken(refreshToken);
            if (!principalResult.IsSuccess || principalResult.Value == null)
            {
                return Task.CompletedTask;
            }
    
            Result<string> renewAccessTokenResult = jwtService.Encode(principalResult.Value);
            if (!renewAccessTokenResult.IsSuccess && renewAccessTokenResult.ValidationErrors.Any())
            {
                return Task.CompletedTask;
            }
    
            context.Response.Cookies.Append("access-token", renewAccessTokenResult.Value);
            context.Response.StatusCode = 200;
            context.HttpContext.User = principalResult.Value;
            context.Principal = principalResult.Value;
            context.Success();
        }
    }
    return Task.CompletedTask;


    Т.е.. вызывает сервис, берём refresh token и из него извлекаем ClaimPrincipal, далее на его основе делаем access token из того же сервиса и обрабатываем запрос, что бы он возвращал нужный статус. Как говорил Andrei SunnyPh , это допустимая практика (Спасибо)
    Ответ написан
    Комментировать
  • Почему в Rust использую Tokio?

    @D3lphi
    Потому что она реализует то, чего нет в стандартной библиотеке - асинхронный рантайм. Если писать сетевое приложение без токио, то придется плодить по отдельному потоку на каждый сетевой коннекшен. (на самом деле, речь идет про любой i/o, к которому чтение/запись файлов тоже относится) Каждый из этих потоков большую часть времени будет заблокирован в ожидании завершения сететвого вызова (передачи или приема данных). Однако, операционная система при разблокировке этих тредов будет постоянно переключать контекст для каждого потока и тратить процессорное время.
    Асинхронный подход позволяет обойтись лишь сравнительно небольшим пулом потоков, на которые токио рантайм будет распределять таски (грин треды) и, таким образом, экономить процессорное время.
    Ответ написан
    9 комментариев
  • Как сделать самоподписанный сертификат доверенным на Windows?

    @NortheR73
    системный инженер
    надо импортировать cert.pfx в хранилище сертификатов локальной машины (через certlm.msc), затем там же перенести/скопировать импортированный сертификат в "Доверенные корневые центры сертификации"
    Ответ написан
    8 комментариев
  • Какие данные можно не указывать при регистрации домена?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Лучше вводить все правильно. Из whois данные можно скрыть, у рег.ру такая возможность есть. Будет вот так

    domain: *****
    nserver: ns1.reg.ru.
    nserver: ns2.reg.ru.
    state: REGISTERED, DELEGATED, UNVERIFIED
    person: Private Person
    registrar: REGRU-RU
    admin-contact: http://www.reg.ru/whois/admin_contact
    created: 2024-02-11T05:41:55Z
    paid-till: 2025-02-11T05:41:55Z
    free-date: 2025-03-14
    source: TCI


    Самое важное, это Фамилия Имя Отчество, Паспорт Серия и номер Кем выдан Дата выдачи, Дата рождения - без этого потом ни домен не передать, ни к другому регистратору не перевести.
    Ответ написан
    1 комментарий
  • Какие есть фриланс-направления в разработке?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Для вас ответы не будут иметь смысла. Вы ищете как бы не работать и получать деньги. Как бы не учиться и получить квалификационную профессию.
    Фриланс бывает ОЧЕНЬ и очень разнообразным. Но прибыльный фриланс начинается с высокого уровня сеньорности. Когда ты можешь сделать практически все.
    К этому моменту направления могут быть какие угодно, включая ентерпрайз.
    Ответ написан
  • В чём отличие между middleware и фильтрами в .Net?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Middleware - это часть ASP.NET Core. Они занимаются обработкой HTTP запроса, могут его изменять/дополнять. Например, производить авторизацию или, если запрос пришел от прокси, то разворачивать отображать HTTP заголовки
    Фильтры - это часть MVC, фреймворка внутри ASP.NET Core. Т.е. они часть контроллеров и предназначаются только для них, но могут работать и как Middleware (HttpContext поле доступно). Дополнительно, у них есть иерархия вызовов, в зависимости от типа фильтра, а middleware вызываются каждая и в зависимости от порядка их регистрации
    Ответ написан
    2 комментария
  • Как работать с компилируемым языком?

    При запуске ide, сначала нужно собрать: shift + f10, следом каждый раз мне нужно нажимать ctrl + f5.

    В гугле file watcher - там я могу указать только путь до .exe файла, это не то.

    dotnet watch run есть и hot reload.
    https://www.jetbrains.com/help/rider/Hot_Reload.html
    https://blog.jetbrains.com/dotnet/2022/09/12/jetbr...
    https://learn.microsoft.com/en-us/dotnet/core/tool...
    Ответ написан
    1 комментарий
  • В чём отличие между middleware и фильтрами в .Net?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Middleware работают на уровне запросов, а фильтры на уровне слоя MVC, применяются для контроллеров, actions.
    Ответ написан
    2 комментария