DotNET

Pipelines и Channel<T>

dotNET  /  Производительность dotNET  /  Performance

Недавно вышла статья System.IO.Pipelines: High performance IO in .NET. Она про то, как реализовать более наглядную и быструю работу со стримами в .NET Core 2.1.
От слишком краткого пересказа статья многое потеряет — читайте оригинал. Ладно, будем честными — я сегодня подустал, поэтому бегло её прочитал и не очень разбирался :)

Часть кода из статьи:

BindingFlags.DoNotWrapExceptions

dotNET dotNET

В .NET Core 2.1 добавили новый флаг BindingFlags.DoNotWrapExceptions. Странно, что в документации этот флаг не описан. Хотя, чему я удивляюсь, пора бы привыкнуть.

Если вкратце, с этим флагом Reflection не заворачивает исключения в TargetInvocationException. Подробности можно прочитать на GitHub.

CoreRT

dotNET  /  Производительность dotNET  /  Performance  /  Deploy

TL&DR;

CoreRT — поддержка native code для .NET Core. Слишком коротко. Ладно, это проект, который делает из сборок для .NET Core машинный код. И собирает в один файл вместе с рантаймом. Пока альфа.

Если хотите чуть больше подробностей — читайте дальше.

Модификатор in, readonly struct и их производительность

dotNET  /  Производительность dotNET  /  CSharp  /  Performance

В прошлом месяце я писал об улучшениях производительности в .NET Core 2.1, а сегодня расскажу о двух фичах C# 7.2 — модификаторе “in” и readonly-структурах.

Рассказ, как обычно, будет коротким. Но со списком статей для дополнительного изучения :) Пара статей Сергея Теплякова и мотивировала меня написать этот краткий конспект на русском языке.

Оптимизация производительности в .NET Core 2.1

dotNET  /  Производительность dotNET  /  Performance

Скоро в свет выйдет .NET Core 2.1. Осталось сделать меньше 1% задач. Конечно, оставшиеся 5% проекта занимают 95% времени, но будем оптимистами :)

Далее будет краткое резюме статьи Performance Improvements in .NET Core 2.1.

Если вы готовы прочитать эту интересную, но огромную статью — прочитайте. Я всё-таки пристрастен и расскажу о том, что интересно лично мне. А если не хотите читать и короткую…

TL&DR; Значительно (в 1.5-2 раза) улучшена производительность многих вещей, в том числе:

  • Структуры (Value types). Это ключевые изменения, многие оптимизации сделаны за счет Span<T> и Memory<T>.
  • Сравнения. Также оптимизированы сравнения внутри Dictionary .
  • Строки — оптимизированы не только сравнения, но и такие штуки как ToLower, Format и Parse.
  • Потоки, блокировки и async/await.
  • Socket, SslStream и HttpClient.

Далее немного про некоторые оптимизации.

Дружим TeamCity, NUnit и .NET Core

dotNET  /  CI  /  Общее dotNET  /  JetBrains  /  Deploy

Недавно я долго и мучительно переходил с .NET Core 1.x на 2.0. Возможно, расскажу об этом позже. Признаться, об этом лучше рассказывать в удобном кресле психоаналитика :)

Сегодня о более прозаичном. В нашей компании мы привыкли использовать TeamCity и NUnit. Для предыдущей версии .NET Core работал пакет “dotnet-test-nunit-teamcity”, для новой аналога не нашлось…

Новости от Microsoft

dotNET  /  Базы данных  /  Новости CSharp  /  Microsoft

Сегодня несколько новостей из мира Microsoft:

Релизы Visual Studio 2017 и .NET Core

IDE  /  dotNET Microsoft  /  Visual Studio  /  dotNET

Вы наверняка в курсе про релиз Visual Studio 2017. Если хочется читать на русском — на Хабре есть более короткая статья Visual Studio 2017 и новые возможности инструментов от Microsoft.

Давайте сначала расскажу про позитивные вещи, про негатив потом.

.NET Core и Visual Studio

dotNET dotNET  /  Microsoft  /  Visual Studio

Сегодня про опыт (мой и моих коллег) и впечатления о .NET Core.

На всякий (почти невероятный) случай кратко о том, что это такое. Microsoft сделал фреймворк для кросcплатформенной разработки. Построил его на немного других принципах — сделал более гранулированным (говоря попросту — нарезали большие DLL-ки помельче), кое-что ещё поменяли.

В итоге имеем возможность писать более быстрые (в том числе, потому что не тянем лишнего) и компактные кроссплатформенные приложения. Проверяли под Windows и Linux — вполне работает. Маководов не было рядом :)

Интересное в ноябре

Новости  /  dotNET News  /  dotNET

Немного странное название для декабрьской статьи, однако, ссылки я собирал давно :) Сегодня ссылки и краткое описание следующих статей:

  • .NET Portability Analyzer
  • Как дизайнить слова
  • AWS Snowmobile
  • TANK — быстрый распределённый лог