Задать вопрос
  • Как выполнить запрос c# httpclient, если сервер требует js?

    Jeer
    @Jeer Автор вопроса
    сайт travian.ru, да похоже, что это я просто кипешь развожу как обычно. Видимо, тег noscript меня интересовал, но должно и дальше проходить, я просто перепугался. Завтра гляну )
  • Где можно найти живой проект для практической работы?

    Привет, а какие технологии изучаешь? ) у меня есть вяло-текущий учебный проект на .net core + angular. Интересуют такие технологии? Мы иногда собирались где-нибудь кучей, но сейчас, всё чаще, напоминает личные консультации через скайп/дискорд )
  • Как найти возможность в любой момент брать шабашки на 1000-2000 рублей?

    О, прикольная идея, раньше о таком не слышал, погляжу что там, спасибо )
  • Как скопировать БД с одного сервера на другой?

    Jeer
    @Jeer Автор вопроса
    Привет. Так резервная копия идёт со всеми данными? И может много весить. А тут нужна только схема базы
  • Как скопировать БД с одного сервера на другой?

    Jeer
    @Jeer Автор вопроса
    Привет, ну, я так и написал, что вручную правой кнопкой мыши создаю скрипты. Допустим, кто-то накатил какие-то обновления на базу. Мне опять нужно вручную лезть и перегенерировать скрипты? Я хочу, чтобы это делалось в автоматическом режиме. Чтобы я в проекте тестов нажал выполнение, а база скопировалась с какой-то исходной
  • Как правильно варить многопоточность на тасках?

    Jeer
    @Jeer Автор вопроса
    Хм, не пойму тогда, зачем ждать, пока выполнится задача, при этом без возможности получить её результат.
    Вы уверены, что третья строчка опять запускает задачу?

    var task = db.Image.CountAsync();
    var result = task.Result;
    var result2 = task.Result;
    var result3 = task.Result;


    Хотите сказать, что на sql сервер уйдёт три запроса? Какая-то дикость, у нас одна задача. И как только результат будет получен, не важно, через Result или Wait, мы можем обращаться к нему сколько угодно раз.
  • Как правильно варить многопоточность на тасках?

    Jeer
    @Jeer Автор вопроса
    Привет, спасибо за пояснения, стало гораздо понятнее.
    Вопрос по первому, db.Image.CountAsync(); возвращает задачу.
    Так в чем отличие
    Task.Wait(db.Image.CountAsync()) и Task.WaitAll(db.Image.CountAsync())
    Мы можем написать так:
    var task = db.Image.CountAsync();
    Task.Wait(task);
    var result = task.Result; // тут уже нет никаких запросов и выполнений, мы дождались результатов на первой строчке.


    Корректный синтаксис?

    Теперь, если у нас будет два запроса, мы можем сделать так:
    var task = db.Image.CountAsync();
    var task2 = db.Image.ToArrayAsync();
    Task.WaitAll(task, task2); // Это и есть ожидание всех результатов
    var result = task.Result;
    var result2 = task2.Result;


    Что не так? как правильно?
  • Как правильно варить многопоточность на тасках?

    Jeer
    @Jeer Автор вопроса
    Ну при чем тут очередь или дизайн БД.
    Вопрос такой, есть два (или больше) sql запроса, они не пересекаются между собой. Я хочу из c# кода выполнить их одновременно.
    Я думал, что создав таски с помощью методов CountAsync(), ToArrayAsync() и аналогичных, запросы уже отправляются в sql сервер и я могу дождаться результатов через метод Task.WaitAll(). (мне уже ниже сказали, что это некорректно).
    Вы же советуете обернуть вызов этих методов в транзакцию. Я не понимаю зачем. Запросы не связаны, они будут выполняться по очереди, ни о каком одновременном выполнении тут речи быть не может.
  • Как правильно варить многопоточность на тасках?

    Jeer
    @Jeer Автор вопроса
    Эм, как так?
    Вот я делаю два запроса
    var count = db.Image.CountAsync();
    var notReady = db.Image.Where(x => !x.IsReady).CountAsync();
    В обоих случаях результат выполнения типа Task - я думал, что это и означает запуск на выполнение.
    А когда я пишу Task.WaitAll(count, notReady); - это означает, что ожидается выполнение этих тасков, прежде чем выполнение программы пойдёт дальше.
    Прям вот открыл метадату WaitAll: Waits for all of the provided System.Threading.Tasks.Task objects to complete execution.
    Как же тогда правильно писать?
  • Как правильно варить многопоточность на тасках?

    Jeer
    @Jeer Автор вопроса
    Первое, если так запросы обернуть в транзакцию, то всё равно метод будет вызываться синхронно же. Вначале один запрос, после его выполнения другой запрос. А транзакция подвесит всю базу еще сверху...

    А вообще, тут дело в том, что меня интересует именно подход, например, когда вызываются методы из не связанных сервисов с async методами. Их в транзакцию не обернёшь. И в данном примере, у меня идут запросы на разные sql сервера, так что
  • Как набрать опыту начинающему C# программисту?

    Привет! Сервисы в .net core служат только для разделения кода, для удобства программиста и сопровождения в дальнейшем. Решение, которое использует такие сервисы остается, тем не менее, монолитным решением. Я не могу просто взять и вынести выполнение сервисов на другую машину. С wcf такой трюк прокатывал в несколько строк кода. И оставались типизированные вызовы. Если в одном проекте я поменял тип возвращаемого значения у метода, то другой проект от этом уже знает, не нужно ничего искать, править или генерировать.
    Сверху еще такая штука, аутентифицированный пользователь может прокидываться через канал wcf. В сервисе я пишу нужный мне метод, без лишних параметров. Но внутри него я могу получить, грубо говоря, User.Identity.Name
    С точки зрения web api если смотреть. Вот есть у нас два сервера, веб-морда и сервисы. Чтобы вызвать метод сервиса из морды, над сервисами так же нужно поднять web api. Теряется типизация, мы вручную делаем приведение типов. Как в таком случае пробросить пользователя, допустим классическая аутентификация на основе куков? На первом сервере у нас происходит аутентификация, мы получаем пользователя, проверяем его права, а дальше чего? Завернуть его в json, прикрепить в хедер? Или вынужденно переходить на токены и проверять второй раз то же самое на втором сервере? Или просто добавлять во все методы параметр userId? )
    SignalR я не использовал между серверами, но думаю, там аналогичная ситуация.
    Все талдычат "не используйте wcf, используйте web api", а как использовать, никто не говорит.
    Пару лет назад я работал над проектами сервис-ориентированной архитектуры (на wcf), энтерпрайз, не наколенные разработки. Всё работало. Сейчас проект на "микросервисах", вызовы которых идут с браузера (ангуляр). Но, если нужно из одного сервиса дёрнуть другой, то происходит ад. Двойная аутентификация это еще ничего. Для строгой типизации используется autorest. Генерятся методы. Вызов одного метода занимает строк пять.
    Для себя я используют .net core с их сервисами, мне удобно, но я вот не могу сказать как разбить такой сервер на два независимых. Может, вы мне скажете?
  • Как набрать опыту начинающему C# программисту?

    Роман Мирр, привет, я немного отстал от жизни. Какая есть замена wcf? Если нужно сделать вызов одного метода из другого сервера. Что вы используете? Чтоб строгая типизация осталась, разумеется.
  • Как набрать опыту начинающему C# программисту?

    Добрый день, я немного отстал от жизни. Подскажите, что сейчас используют вместо wcf? Чтоб разбить один сервер на морту и сервисы и чтоб строгая типизация?
  • Как сделать единый аккаунт для своих сервисов?

    погуглите JWT, сервис аутентификации выдаёт токен, в котором содержится вся инфа о пользователе. Этот токен сохраняется на клиенте и его можно прикреплять к запросам на другие сервисы, например, в хедере, а в сервисах уже проверять только валидность и работать с этим пользователем
  • Почему не работает аутентификация в .net core с ангуляром 5?

    Jeer
    @Jeer Автор вопроса
    Ребята, моя вина, я не почистил куки, это устанавливаются хз вообще откуда взялись. В общем, в /login есть set-cookie, а следующий запрос на /list на деве кука прицепляется, а на проде не прицепляется. Проблема явно в ангуляре. Либо withCredentials не работает, либо каких-то хедеров не хватает (потому и не работает).
  • Как собрать систему мониторинга на Raspberry Pi?

    Что за медиаплеер? Какова цена?
    В малине тоже есть hdmi и wifi
  • Как пропускать трафик через сайт МТС, чтобы он не тратился?

    Согласен ) то есть если кто-то играет в такие игры, то у него жрётся не трафик соц сетей, а обычный )
    Ладно, а если я напишу флеш приложение, в котором будет строка запроса и который будет отрисовывать страницу сайта, тогда норм? )
  • Как пропускать трафик через сайт МТС, чтобы он не тратился?

    да? а если я в вк сделаю iframe приложение, где будет строка запроса и отображение сайта, то будет идти бесплатный трафик?
  • Как правильно писать код под node js?

    что-то тут не сходится
    const content = await fs.readFile("config.json");
    const obj = JSON.parse(data);

    читаете в переменную content, а парсите несуществующую data