Как стать автором
Обновить

Комментарии 22

.NET 9 вышел в релиз, и значит, можно начинать переносить свои проекты на новую версию.

А что микрософт отказался от обратной совместимости? Он может, как раз, за счет мастерства по обратной совместимости и существует до сих пор.

Тут у нас акцент на "вышел в релиз". Ранее не стоило переносить, тк был не в релизе, а значит могли происходить ломающие изменения и баги.

А кроме этого:

  1. Переход на новую версию - это не только бамп версии, но ещё и:

    1. Проверка, что ты не попал на breaking changes

      Между мажорными версиями у Microsoft всегда были какие-то breaking changes.
      Тот же новый логгер вполне может сломать твои CI-инструменты, если они парсили выхлоп от sdk.
      Полная обратная совместимость была только в рамках одной мажорной версии.

    2. Начало использования новых фичей

  2. Никто не отменяет багов в новой версии, которые проскочили через много кругов тестирования => при переходе на новую мажорную версию стоит провести хоть какой-то минимальный регресс

выжимают последние соки из .NET. Похоже конкуренты сильно достали со своими зелёными потоками, нативными компиляциями и т. д.

Появился новый generic тип OrderedDictionary.

Да неужто?! Сколько лет им потребовалось для этого? Кстати, уж здесь-то Keys и Values реализуют уже наконец IList<T> или по-прежнему дело лишь ICollection<T> ограничивается?

реализуют уже наконец IList<T> или по-прежнему дело лишь ICollection<T> ограничивается?

Какой смысл неупорядоченной коллекции было реализовывать интерфейс с индексацией, который предполагает порядок?

Более того, IList предоставляет множество изменяющих методов. Согласитесь, выглядит бессмысленно:

dictionary.Values.Add()

Какой смысл неупорядоченной коллекции

В смысле, неупорядоченной? Ordered в названии коллекции просто так стоит, что ли?

IList предоставляет множество изменяющих методов

Как и ICollection, но вас же это не смущает.

Вы написали таким образом, как будто давно нужно было сделать IList. На это указывают слова "уже наконец" и "или по-прежнему дело лишь ограничивается".
А я вам объясняю почему это было абсолютно бессмысленно реализовывать.

Согласен, ICollection тоже плохой вариант. Но всё-таки предоставляет меньше возможностей редактирования.

На это указывают слова "уже наконец" и "или по-прежнему дело лишь ограничивается".

Всё правильно. Коллекция OrderedDictionary (не типизированная) существует в .Net аж со 2-й его версии. Но свойства Keys и Values почему-то являются лишь ICollection вместо логичного в этом случае IList. C# вполне спокойно позволяет затенить в интерфейсе-наследнике метод интерфейса-родителя посредством ключевого слова new при объявлении свойства. Так же есть возможность одновременно реализовать два интерфеса с пересекающимися методами/свойствами посредством явной реализации интерфейса. Что мешало это сделать, мне решительно непонятно.

Я надеялся, что с внедрением нового класса была всё-таки проведена работа над ошибками и этот косяк в дизайне был поправлен хотя бы в нём. Но воз так и остался на месте.

Тогда извиняюсь, я подумал вы имеете в виду обычный Dictionary .

Да, в новом можно было бы IReadOnlyList реализовать в крайнем случае.

Так ведь реализовали же? Вот Keys, вот Values.

Хоть кто-то проверил)

Опа! Кажется, я не в то свойство посмотрел — на явную реализацию интерфейса IDictionary<TKey, TValue>. Что же, тогда претензия снимается.

Опытные ребята на дотнете, можете пожалуйста дать совет на каком IDE (или на редакторе кода) разрабатывать на Линуксе?

JetBrains Rider

Rider. Он теперь бесплатный для некоммерческого использования.

Rider. Но бесплатная версия не подходит для коммерческого использования.

Как опцию можете попробовать VS Code + C# Dev Kit. У dev kit лицензия как у Visual Studio Community. Позволяет коммерческое использования если небольшая команда или доход компании небольшой. Лично я не пробовал, но вижу некоторые блогеры уже используют.

Но бесплатная версия не подходит для коммерческого использования

Что будет если юзать для коммерции?

Совесть грызть будет

НЛО прилетело и опубликовало эту надпись здесь

Да.

НЛО прилетело и опубликовало эту надпись здесь

Ничего интересного кроме повышения производительности. Возможно это даже и хорошо, с сахаром ради сахара можно переборщить, а тут выглядит как полировка.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий