• Пример ASP .NET Core Web Api приложения со сложной аутентификацией?

    @AndromedaStar
    .Net - monkey
    https://github.com/dotnet/AspNetCore.Docs
    Тут есть вся официальная документация.
    В каталоге /security находятся ответы на ваш вопрос.
    Ответ написан
    Комментировать
  • Что лучше выучить, Java или C#?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Язык является инструментом. Важны ваши навыки, как разработчика (алгоритмы, структуры данных, понимание tcp/ip и т.д.)
    Что касается выбора языка, то ориентируйтесь на:
    - что вы собираетесь на нем делать и кем планируете работать. Если например, речь о геймдеве, то конечно же C# (Unity) или C++. И тут Java ну никак... хоть и позволяет писать игры. Если enterprise, то да, тут уже можно выбирать между Java & C#.
    - ориентируйтесь на то, где вы планируете работать. Возможно, что вы в результате вашего исследования поймете, что Java популярнее C# (или наоборот), но на деле окажется, что в вашей стране/городе она вовсе не популярна. Соответственно, посмотрите какие компании есть у вас в городе (если планируете работать офлайн) и изучите их стек.
    Ну и конечно же пробуйте. Я например, пока дошел до Java, успел попробовать PHP & JavaScript. В любом случае, когда вы станете востребованным и опытным специалистом, то уже будете владеть несоклькими языками.
    Ответ написан
    Комментировать
  • Как получить записи из связанной таблицы, если необходимо найти записи, в столбцах которых разные значения?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вариант 1. Работает, если в `goods_property` каждая комбинация (`goods_id`, `type`, `value`) встречается не более одного раза.
    SELECT `g`.*
      FROM (
        SELECT `goods_id`
          FROM `goods_property`
          WHERE (`type` = 'caffeine_capacity' AND `value` = 'small')
            OR (`type` = 'color_type' AND `value` = 'green')
          GROUP BY `goods_id`
          HAVING COUNT(*) = 2
      ) AS `p`
      JOIN `goods` AS `g` ON `g`.`id` = `p`.`goods_id`

    Вариант 2. Если таблица кривая и комбинация может встретиться более одного раза, то
    SELECT `g`.*
      FROM `goods` AS `g`
      JOIN `goods_property` AS `p1` ON `p1`.`goods_id` = `g`.`id`
        AND `p1`.`type` = 'caffeine_capacity' AND `p1`.`value` = 'small'
      JOIN `goods_property` AS `p2` ON `p2`.`goods_id` = `g`.`id`
        AND `p2`.`type` = 'color_type'  AND `p2`.`value` = 'green'

    Вариант 3. Тоже для кривой таблицы.
    SELECT `g`.*
      FROM `goods`
      WHERE `id` IN (
        SELECT `goods_id`
          FROM `goods_property`
          WHERE `type` = 'caffeine_capacity' AND `value` = 'small'
      ) AND `id` IN (
        SELECT `goods_id`
          FROM `goods_property`
          WHERE `type` = 'color_type' AND `value` = 'green'
      )

    В качестве песочницы попробуйте https://www.db-fiddle.com/
    Ответ написан
    3 комментария
  • Что делаю не верно?

    @Voland69
    1. async/await говорят о том, что метод может быть выполнен асинхронно, но не гарантируют этого
    2. new Tread() создает поток, который что-то делает. поток по умолчанию выполняется параллельно с GUI Event Loop, и чтобы вернуть данные коду внутри потока можно передать коллбэк, который будет выполнен после длительной операции
    3. Invoke() ЕМНИП служит для синхронизации бэкграунд потока с GUI (просто так из фона нельзя обновлять данные на форме), в него нужно помещать не весь код, а только тот код, который полученные в фоне данные отправляет форме
    4. если метод не умеет выдавать данные не разом, а по мере загрузки, интерактивное появление новых данных на форме не получится
    5. если Вы полностью контролируете загрузку данных, можно сделать на событиях синхронизацию с GUI - загрузчик кидает событие onDataRecieved а форма на него подписана и обновляет свои данные
    Ответ написан
    Комментировать
  • Как выбрать все и отовсюду?

    DarkRaven
    @DarkRaven
    разработка программного обеспечения
    Вам нужно обратиться к INFORMATION_SCHEMA, в ней есть информация по всем таблицам.
    Но вообще, это не верно. Т.к., в большинстве своем колонки таблиц не совпадают, вам нужно все данные аггрегировать в нужной форме в хранилище - в том же ElasticSearch. И по нему уже делать запрос, чтобы не насиловать базу лишний раз. В процессе агрегации выплывет, что не все таблицы нужны, не все поля нужны и т.п. (а может и нет, кто знает).
    Ответ написан
    Комментировать
  • Новичку учить EF или ADO.NET?

    Antonchik
    @Antonchik
    Программирую на HTML
    Можно, но знания ado.net не помешают
    Ответ написан
    Комментировать
  • Как переименовать имя столбца в SELECT на значение функции?

    zoroda
    @zoroda
    Необычный Fullstack
    Можно сначала сгенерить текст запроса, например:
    select 
    'SELECT '
    || '"' || string_agg(d, '", "') || '"'
    from (
    	select 
    		to_char((now()::date - (extract(dow from now()::date))::integer + 1 + i::integer),'dd.mm.yyyy') d 
    	from 
    		generate_series(0, 6) i
    ) q0

    Затем получившийся текст выполнить.
    Ответ написан
    1 комментарий