• Asp.net core webapi - sync/async методы контроллера?

    vabka
    @vabka Куратор тега ASP.NET
    Токсичный шарпист
    А если в коде контроллера нет вызова асинхронных методов, будет ли какая-то разница?

    Если асинхронных вызовов нет, то нет смысла делать метод контроллера асинхронным.
    Или может быть имеет смысл этот код без асинхронных вызовов обернуть в таск и авейтить его, сделав метод контроллера асинхронным?

    Нет. Перед и после контроллера есть ещё куча middleware и Action / Result фильтров, которые и так асинхронные, так что вы и так получите все преимущества асинхронного IO при работе с HTTP

    Читайте ASP.NET Core Performance Best Practices
    Самое главное:

    Do not:
    • Block asynchronous execution by calling Task.Wait or Task.Result.
    • Acquire locks in common code paths. ASP.NET Core apps are most performant when architected to run code in parallel.
    • Call Task.Run and immediately await it. ASP.NET Core already runs app code on normal Thread Pool threads, so calling Task.Run only results in extra unnecessary Thread Pool scheduling. Even if the scheduled code would block a thread, Task.Run does not prevent that.

    Ответ написан
    Комментировать
  • Что подразумевается под "опыт работы с многопоточностью" в C#?

    petermzg
    @petermzg
    Самый лучший программист
    - Использование потоков.
    - Использование тасков и особенности работы с ними.
    - Синхронизация доступа к данным.
    - для UI приложений, особенности доступа к контролам из потоков.
    Ответ написан
    5 комментариев
  • Где и как вы храните изображения в веб-проектах?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Облака, S3-compatible object storage, CDN поверх) самое то решение
    Ответ написан
    Комментировать
  • Когда используются хеш-таблицы?

    Exomode
    @Exomode
    Архитектор ПО
    Хэш-таблица это словарь, аналог массива, только вместо числовых индексов у него именованные ключи. Лучше от хэштаблицы отказаться в пользу полноценного дженерик-словаря Dictionary, он работает без приведения типов во внутренней реализации и быстрее чем Hashtable
    Ответ написан
    2 комментария
  • Как вы находите идеи домашних проектов?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Классика для поднятия скилла генерации идей: креативность - это скилл, навык, и его нужно развивать. Каждый день придумывайте 10 идей, абсолютно любых, не думая о возможности реализации. Но обязательно каждый день и минимум 10 идей.
    Через несколько дней можно взглянуть на список за один день и отсортировать по возможности реализации или по нравится/не нравится. Таким образом возникнет обратная связь, и через время идеи станут более реалистичными.
    Если так делать, то через пару месяцев скилл креативности разовьётся хорошо.

    Идеи могут быть разных направлений, не обязательно для программ (и даже хорошо, что разные направления).
    Придумывайте:
    - использование какой-то вещи (как можно использовать карандаш?)
    - способы оптимизировать какую-то вещь (как оптимизировать молоток?)
    - идеи игры (10 вариантов вариаций тетриса)
    - идеи книги (художественной? публицистической? профессиональной?)
    - рецепты (мяса? молока? репы?)
    - даже, какие направления для десяти идей придумывать!
    Ответ написан
    Комментировать
  • Как вы находите идеи домашних проектов?

    search
    @search
    мама говорит что я особенный
    На работе.

    Первым делом ищу готовое решение в репозитории. Если готового решения нет, то пишу код для рабочего проекта. Этот код не идёт в опен соурс. Потом дома пишу либу и выкладываю на гитхаб (и npm). Если либа получилась удачной, то со временем убираю код из рабочего проекта и заменяю его либой.

    Проделывал такой финт несколько раз весьма успешно. Кстати когда начинаешь опенсоурсить то это обычно порождает побочные проекты и так лавинообразно. Именно так появляются люди с сотнями собственных проектов на гихабе.
    Ответ написан
    Комментировать
  • Микросервисы на .net - оптимальный протокол "общения"?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Есть всего 2 базовых принципа сообщения:
    1. Влияние на систему (действие). Это API. Как правило json REST
    2. Реакция системы на действие (так же используется как низкая связанность). Это очереди сообщений.

    В целом все зависит от юзкейса и нет общего универсального протокола. Много разных архитектур и все хороши по-своему. Лично я использую везде REST API и после любого (успешного и нет) вызова отправляю в ESB сообщение. Если мне нужно влиять на другую подсистему (например, после принятия заказа отправить его в отдел продаж для подтверждения) то я использую Consumer для отправки в другое api.
    Ответ написан
    Комментировать
  • "Бесшовная" установка веб-сервиса на C# в продакшн - как?

    Если в двух словах, то ввести дополнительный слой абстракции - шину. Клиент делает запрос к шине, которая в свою очередь опрашивает инстансы доступных WCF-сервисов. Пока инстанс WCF1 обновляется, шина перенаправляет запрос на резервный WCF2. После деплоя обновления на WCF1 - переключаемся уже на обновленный сервис.
    Ответ написан
    1 комментарий
  • Как заставить работодателя своевременно отчитываться о причинах отказа в приеме на работу?

    vicodin
    @vicodin
    Имею некоторый опыт
    поднимите свой скилл и вам не нужно будет искать работу, за вами будут бегать эйчары сами
    Ответ написан
    5 комментариев
  • WPF+MVVM, как организовать архитектуру окна?

    petermzg
    @petermzg
    Самый лучший программист
    Ваши кнопочки могут быть TabControl с кастомным Template.
    И в TabItem добавляется Frame, тогда его Source будут отдельные Page с контролами.

    Можно все Frame сразу задать в ресурсах, а можно возвращать Uri из ValueConverter-а.

    В ViewModel будете просто менять тип страницы и в TabControl -> SelectedItem через конвертер обрабатывать.
    Ответ написан
    Комментировать
  • В чем необходимость TDD?

    @Vampiro
    Тесты начинаешь "понимать" когда количество "проверяемых на глаз" страниц после каждой правки переваливает за 7-10 (+под разными логинами). Тогда действительно становится более лениво "ползать по сайту", чем "написать тест". Для трех-страничной хоумпейдж не актуальны, в остальных случаях "мастхев"
    Ответ написан
    Комментировать
  • Где найти сюжет игры?

    HEm
    @HEm
    Роберт Шекли конечно
    Ответ написан
    Комментировать