×Закрыть

.NET дайджест #14: что нового в .NET Standard 2.0, советы по Event Sourcing, публичное превью Rider

В выпуске: как устроен .NET Standard, улучшение производительности .NET Core, правильное версионированние API, когда использовать async и await, ключевые отличия Grafana и Kibana.

.NET

Benchmark показывает, что ASP.NET Core крут.

Анонс .NET Core 1.1.

Анонс MSBuild инcтрументов для .NET Core.

Описание того как устроен .NET Standard.

Когда стоит или не стоит использовать async и await.

.NET Standard — What’s new in 2.0.

Roadmap по улучшению производительности .NET Core.

Architecture, Microservices, ES, DDD

Проецирование User Stories на предметную область, чтобы выработать совместное видение и понимание предметной области.

Границы транзакций и микросервисы. Статья уже встречалась в дайджесте, но тема очень актуальна, поэтому повторюсь.

Почему микросервисы стоит делать Event-Driven: автономность против управления.

Моделирование предметной области с помощью REST.

Event Sourcing с передовой от специалистов из LinkedIn.

Запись докладов с µCon 2016.

Почему Reliable messaging не нужно.

Характеристики эволюционной архитектуры.

Как неправильно версионировать API.

Как использовать Event Sourcing чтобы цена изменения оставалась низкой.

Насколько REST уместен для использования с командами.

Docker

Анонс Docker для Windows Server 2016.

Популярно о том, как работает Docker на Windows Server и что-то там про черный пояс.

JavaScript

Angular2 против React.

Как устроены Custom Elements в HTML.

Туториал по Polymer 2.

Tools

Stateless 3.0 — библиотека для реализации State Machine для .NET Core.

Grafana для визуализации метрик.

Grafana vs Kibana.

Gerrit — для ревью кода и не только.

Публичное превью Rider. Там уже и второй билд появился за это время. Очень крутая штука.

Resharper 2016.3 зарелизили с приятными фичами, как созданием свойств или полей для всех параметров класса одновременно.

Other

Azure анонсировала SLA для единичного инстанса.

Что стоит уметь в PowerShell.

Oracle собирается обязать платить за Java.

Как стареть в IT.

Books

Микросервисы для Java разработчиков.

Fun

DDos в примерах и картинках.

Как готовить пирог в духовке при 120°.

Спасибо всем, кто делился ссылками!


← Предыдущий выпуск: .NET Дайджест #13
Следующий выпуск: .NET Дайджест #15

LinkedIn

18 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

А кто-то уже тестил Rider? Как впечатления?

Я. Замечательные. На данный момент из хотелок только community версия. Я задал этот вопрос на хабре. Ответили что будут думать, но после релиза.

За то время как они обещали отладчик для .net core успел привыкнуть к Vscode. достаточно удобен под маком, Не хватало go to definition с декомпиляцией в стиле R , go to declaration как она есть + Гугл в принципе ок, остальное решается благодаря более удобному ux и простым командам.

А у меня VS Code не пошел :(.

Есть много мест, которые можно сделать лучше, но в каждом релизе виден явный прогресс.

Я использую для своего pet-проекта. В первых привантых билдах сильно не хватало фич R#, которые часто использую в студии, в осносном рефакторинга. В текущем билде все очень норм. Нет ощущения что чего-то сильно нехватает. И работает заметно быстрее VS. Очень хотелось бы чтобы NCrunch там тоже был.

А процесс инсталляции ... Ну, не нравиться мне что студия ставит в систему (в случае с Windows конечно): после ее установки список установленных приложений скролить приходиться

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

Я поигрался немного с VS 2017 RC. На мой взгляд прогресс есть (кстати, надо глянуть что там в установленных программах после ее установки). Но и проблемы остались. Наверно, одна из наибольших это ограничения 32-битной архитектуры. + «тесная» интеграция с ОС, что практически ставит крест на ее кроссплатформенности. Т.е. опять MS себя за хвост укусила: .NET кроссплатформенный есть, а основной и наиболее функциональный инструмент разработки «прибит» гвоздями к Windows.

Да, x32 ограничение совсем не радует. Они завязаны на WPF, но для мака делают свою VS на базе Xamarin Studio, и также есть VS Code. Но это не то :). Так что если для задач подходит Rider, видимо, это будет мой выбор по-умолчанию. Будем смотреть :).

Benchmark показывает, что ASP.NET Core крут.
А в чем крутость? Например, первую позицию в cloud занимает java (undertow postgress). Даже nodejs делает asp.net core (аля http & datareaders). Может быть он занял первенство в mvc фреймворках? Но нет, аналог в jvm (play-scala-anorm) его «делает». Из результатов видно, что .net core значительно продвинулся. Но что он крут — это чересчур.

Попробую конструктивно ответить.

А в чем крутость?
Крутость, в первую очередь, в том, что ребятам удалось увеличить производительность в 859 раз по сравнению с предыдущими тестами. Это для plain text ответов. И в этом тесте play2/scala и nodejs далеко позади.

Просмотрел остальные тесты и нигде не нашел где scala показывает лучше результат, чем .NET Core. Не говоря уже про nodejs. Мы точно те же тесты смотрим? Я про Round 13, cloud, если что www.techempower.com/...ta-r13&hw=cl&test=fortune. Хотя, вполне допускаю, что в неготорых тестах он может и отставать.

java (undertow postgress)
Я до этого не слышал и не знаю на сколько широкий спектр задач он может решать, но если вам нужен самый бытрый интсрумент — пользуйтесь, никто же не собирается вас переубеждать в обратном. Во, немного посмотрел — это вебсервер. Ну, хз на сколько корректно сравнивать фреймворк с вебсервером. Может и так.

Тем не менее, заметьте, нигде не сказано, что это самы быстрый фреймворк. Он просто крут. Deal with it.

Просмотрел остальные тесты и нигде не нашел где scala показывает лучше результат, чем .NET Core.
Как это нигде не показывает?

Смотрим сюда www.techempower.com/...chmarks/#section=data-r13 (ссылка с www.techempower.com/...ork-benchmarks-round-13/. Что видем? .net core где то в хвосте.

Переходим cloud (www.techempower.com/...ta-r13&hw=cl&test=fortune , как я понял на ажуре тестировалось). Что видем? Производительность .net core значительно выше. Performance:
— aspnetcore-middlewar-raw (как я понял, это не mvc) — 16,058 (54.0%)
— aspnetcore-middlewar-dapper — 14,386 (48.4%)
Смотрим на лидера — undertow-postgresql (как я поимаю, берут за счет асинхронного postgre, могу ошибаться) — 29,727 (100.0%).

Смотрим на asp.net mvc:
— aspnetcore-mvc-raw — 9,367 (31.5%)
— aspnetcore-mvc-dapper — 9,367 (31.5%)
Теперь смотрим на play framework:
— play-scala-anorm — 11,244 (37.8%) — сравним с aspnetcore-mvc-dapper
— play-java-jpa — 9,086 (30.6%) — при этом понимаем, что под asp.net mvc нет тестов с EF или NH

до этого не слышал и не знаю на сколько широкий спектр задач он может решать
По поводу undertow — это что то типа Kestrel, токо написан на джаве, на нем крутится WildFly (бывшик JBoss от Red Hat).

Так что надо бы еще подрасти эдак в 1.5 раза для aspnetcore-middlewar-raw и раз так в 2.5 для aspnetcore-mvc-raw и тода он станет крут. А сейчас где то середничек.

И да, никто не спорит, что они молодцы. Токо как бы поздновато это.

Ну вот вы сами показали, что .NET Core выступает на очень хорошем уровне. При том что ASP.NET много лет сильно отставал.

Поздновато для тех, кто свичнулся? А как на счет тех, кто получает удовольствие от разработки на C#? Теперь помимо отличных инструментов еще и возможность разрабатывать очень быстрые кросплатформенные приложения. Если для вас это не круто — опять же, я не намерен переубеждать, я делюсь своим мнением и наблюдениями.

А как на счет тех, кто получает удовольствие от разработки на C#?
Для тех, кто получает удовольствие в разработке на C# этот «прорыв» далеко не крут, т.к. на Physical дотнет где то в хвосте. А вот для тех, кто зарабатывает денюжку на ажуре, навреное крут. Но ажур далеко не единственный.
Поздновато для тех, кто свичнулся?
Поздновато с точки зрения конкуренции. Вот если бы перевели дотнет в опенсоурс в 2005, то он составлял бы сейчас очень большую конкурренцию для jvm. Ну хотя бы в 2010-ом. А так, догнать jvm комьюнити сейчас будет очень тяжко.
на Physical дотнет
обыгрывает scala в JSON сериализации и не сильно отстает от nodejs. Похоже, вы очень потрудились найти тест где .NET сильно проигрывает. Похоже будто вы оправдываете свой переход на Java. JVM — отличная платформа, и позволяет решать задачи. Есть быстрые инструменты. Разрабатывайте с удовольствием.

В свою очередь, я уверен, что у .NET Core очень хорошие перспективы и сейчас они показывают отличный результат. Ждем .NET Core 1.2 и .NET Standard 2.0.

Я одновременно согласен с вами и нет:
— действительно, если бы это случилось 10-12 лет назад, то конкуренция была бы нешуточная;
— но не думаю, что поздновато, хотя да, просто не будет.

С другой стороны, я уверен что и для java сообщества реальная конкуренция пойдет на пользу. Трудно без нее.

И в этом тесте play2/scala и nodejs далеко позади.
Не корректно сравнивать play2-scala и aspnetcore-linux в тесте Plain text. С таким же успехом можно сравнивать Drupal vs Nginx. А вот более корректное сравнение равноправных по функционалу:

— play2-scala — 192,262 (21.6%)
— aspnetcore-mvc-linux — 108,634 (12.2%)

Подписаться на комментарии