Релиз Aspire, типы расширений, новинки Build 2024

Поделиться
HTML-код
  • Опубликовано: 1 авг 2024
  • Подкаст RadioDotNet выпуск №94 от 3 июня 2024 года
    Разговоры на тему .NET во всех его проявлениях, новости, статьи, библиотеки, конференции, личности и прочее интересное из мира IT.
    Аудиоверсия: api.mave.digital/storage/podc...
    Темы:
    [00:00:00] - Приветствие
    • Radio.DotNet.Ru
    [00:01:35] - General Availability of .NET Aspire
    • devblogs.microsoft.com/dotnet...
    [00:20:55] - What's new in C# 13
    • build.microsoft.com/en-US/ses...
    [00:56:05] - .NET Announcements and Updates from Microsoft Build 2024
    • devblogs.microsoft.com/dotnet...
    • devblogs.microsoft.com/dotnet...
    [01:03:50] - .NET 9 Preview 4
    • github.com/dotnet/core/discus...
    • github.com/dotnet/core/blob/m...
    • github.com/dotnet/core/blob/m...
    • github.com/dotnet/core/blob/m...
    • github.com/dotnet/core/blob/m...
    [01:27:00] - Visual Studio 2022 17.10 and Visual Studio 2022 v17.11 Preview 1
    • devblogs.microsoft.com/visual...
    • devblogs.microsoft.com/visual...
    [01:31:30] - Announcing NuGet 6.10
    • devblogs.microsoft.com/nuget/...
    [01:34:40] - Кратко о разном
    • • "Highly Technical Talk...
    • habr.com/ru/companies/pvs-stu...
    • xunit.net/releases/v2/2.8.1
    Голоса выпуска:
    • Анатолий Кулаков
    • Игорь Лабутин ( / ilabutin )
    Звукорежиссёр:
    • Игорь Лабутин ( / ilabutin )
    Фоновая музыка:
    • Максим Аршинов «Pensive yeti.0.1» (hightech.group/ru/about)
    Спасибо за помощь:
    • Александр
    • Сергей
    • Владислав
    • Шевченко Антон
    • Лазарев Илья
    • Гурий Самарин
    • Виктор
    • Руслан Артамонов
    • Александр Ерыгин
    • Сергей Бензенко
    • Александр Лапердин
    • Ольга Бондаренко
    • Дмитрий Сорокин
    • Сергей Краснов
    • Константин Ушаков
    • Андрей Фазлеев
    • Басим Аль-Джевахири
    Почта: Radio@DotNet.Ru
    Сайт подкаста: Radio.DotNet.Ru
    RSS подписка: cloud.mave.digital/37167
    Google Podcasts: podcasts.google.com/feed/aHR0...
    Apple Podcasts: podcasts.apple.com/us/podcast...
    Яндекс Музыка: music.yandex.ru/album/12041961
    RUclips Playlist: • RadioDotNet
    Boosty (₽): boosty.to/RadioDotNet

Комментарии • 18

  • @amwrag
    @amwrag Месяц назад

    За ссылки на обсуждаемый контент и тайм-коды в описание - моё уважение и поклон.

  • @lappovalera
    @lappovalera Месяц назад

    Спасибо за обзор !

  • @user-uu6xz6lk6o
    @user-uu6xz6lk6o 2 месяца назад +5

    implicit/explicit - эти ключевые слова уже есть. for - тоже. Итого только 1 новое ключевое слово

    • @tt0nix
      @tt0nix Месяц назад

      Больно у них применение другое было. Проблема то не в том что есть они или нет. Проблема в том что не было у них такого использования, семантический смысл другой был.
      Новые разработчики видят неконсистентный синтаксис. Когда в языке for используется и для цикла и для расширения. Но для расширения не всегда, а только если не наследование и не реализация. Это очень сильно усложняет язык, не делая его понятными и простым для изучения.

  • @kitsunofflmao9980
    @kitsunofflmao9980 2 месяца назад +2

    к вопросу о for вместо :
    вроде в c# после 13 реализация интерфейсов через экстеншены (может завезут в c# 13, но маловероятно)
    поэтому : заменили на for

    • @tt0nix
      @tt0nix Месяц назад

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

  • @MaksimVolkau
    @MaksimVolkau 2 месяца назад +2

    Про extension types:
    - Я думаю, все уже знают, но implicit и explicit есть в языке
    - Согласен что : вместо for лучше и слово extension должно помочь парсеру однозначно распознать конструкцию... Мне кажется, они просто на коленке до билда эту фичу подлатали. Много вопросов, потому что ее имплементация годами лежала в форках, и была не одна (еще были concepts and roles).
    - Жду расширения UnsafeAccessAttribute для работы поверх экстеншена, чтобы доступаться к non public типам.

    • @zachemny
      @zachemny 2 месяца назад +2

      В обсуждении пропозала на GH очень подробно расписано про то, почему ввели for. Если вкратце, то ради избежания неоднозначности: после расширяемого типа могут указываться реализуемые данным экстеншеном интерфейсы.

    • @MaksimVolkau
      @MaksimVolkau 2 месяца назад

      @@zachemny Ок, тогда нет вопросов.

    • @tt0nix
      @tt0nix Месяц назад

      Да, есть implicit и explicit, но они настолько редко используют обычными людьми, что этим можно пренебречь. Давайте переформулируем так: в большинстве проектов их нет, большенство разработчиков их никогда в жизни не использовало и вряд ли будет. Тоже самое, что и unsafe, fixed, extern, они конечно есть, но в повседневной жизни вы их не встретите.

    • @tt0nix
      @tt0nix Месяц назад

      @@zachemny Да, был такой разговор. Но, опять же, для однозначности достаточно было бы выдумать какой-то один признак, допустим ключевое слово `extension`. Его наличие - достаточный признак для компилятора, чтобы устранить все последующие неоднозначности. Зачем было так сильно извращаться и закапываться, не ясно. Зачем так много признаков, костылей и избыточностей.
      for прекрасно эмулируется двоеточием. Расширение наследования, через множественное наследование от интерфейсов (оно уже есть в языке). implicit и explicit эмулируются синтаксисом явных и неявных реализаций интерфейса (он уже есть в языке). Устранить все эти неоднозначности (в самом ленивом случае) можно добавив едино единственное новые слово extension.
      Сравните с LINQ. Авторы встроили отдельный язык в C#, со своим синтаксисом, ключевыми словами, операторами и не было никакой неоднозначности. Была сложная и продуманная работа над реализацией. А так получается, что сново, проблемы в Roslyn Team спихнули на разработчиков. Вместо того чтобы сделать хорошо (пусть и сложно) в компиляторе, родили уродливый, избыточный, неконсистентный синтаксис с которым теперь придётся жить всем вечно.

    • @zachemny
      @zachemny Месяц назад

      @@tt0nix На все эти сомнения в пропозале отвечено. Если вкратце: extension A: B, C, D. Что такое B, C, D - не ясно. Если при обычном наследовании порядок членов не важен, то здесь получается, что B - это всегда должен быть расширяемый тип, а C и D - реализуемые интерфейсы. То есть порядок следования теперь уже важен, что является нарушением логики языка.

  • @anatoly-k
    @anatoly-k Месяц назад +1

    Да, мы любим короткие выпуски

    • @tt0nix
      @tt0nix Месяц назад

      А короткие, это сколько по времени?