Pull to refresh

Comments 121

Использовал все EAP'ы с самого начала для работы над OS проектом в .NET Core, очень удобная IDE, хотя и были баги. История про проблемы с отладкой (неожиданное изменение лицензирования пакета от МС) оставила неравнодушной! Среди альтернатив на macOS по разработке на .NET (Core) — лучшее, по моему субъективному мнению.
А можете немного подробней рассказать, что с отладкой и изменением лицензии не так?
В одном из EAP (17 вроде) сообщили, что МС изменила лицензцию на пакет, который Rider использовал для отладки, пакет стал доступен только для Visual Studio for Mac, Visual Studio Code — ну так видимо МС решили надавить на конкурентов (JetBrains Rider / Visual studio for Mac / Visual Studio Code — прямые конкуренты). Из-за чего в Райдере сломалась отладка вообще. В последующих EAP ребята оперативно вернули отладку (видимо сами что-то писали), для Windows в 18 EAP'е, для Mac/Linux в 23. С тех пор отладка работает, но ее отсутствие заставило попотеть и запускать VS for Mac. В общем, ребята из JetBrains торжественно преодолели эту проблему, за что и спасибо.
UFO just landed and posted this here
скажу точнее: взяли дебаггер для большого дотнета, адаптировали его под .net core, т.к. api одинаковое, и поколдовали, чтобы оно работало под моно
А с какими IDE сравнивали?
Сравнивал JetBrains Rider, Visual studio for Mac, Visual Studio Code под macOS. При том, что это для OS проекта. Для повседневной работы использую VS 2017 (Windows).
Среди альтернатив на macOS по разработке на .NET (Core) — лучшее, по моему субъективному мнению.

Когда-то пробовал райдер EAP. Потом когда причесали баги vscode с sln, csproj тестами, отладкой и выпустили удобный dotnet cli для работы солюшином перестал следить за обновлениями райдера, хотя под виндой пользуюсь с студей решарпером и являсь сторонником продукта. Под маком vs code крайне удобен — ux мне нравиться больше чем R# студии и то, что было на тот момент, когда пробовал в райдере.
Есть места конечно где приходиться больше времени терять на набор текста, подключение референсов, нугетов, сборку.
Но это компенсируеться огромным количеством готовых рабочих плагинок опен сорсных под различные технологии с подсветкой code snippets — go, ts, js, jsx, tsx и т.д. Не уверен есть ли это все в райдере или для работы над фронт ендом надо ставить web storm например.
Реально в vscode не хватает декомпиляции в реальном времени — вот тут уже очень ощутимый
недостаток, что приходиться тянуть с гитхаба код и работать со сторонним кодом только так.
В целом можно сказать, что Rider содержит WebStorm. Пока есть ряд ограничений (например, не открыть папку, можно только solution или project), но это будет устранено в ближайшие месяцы.
История про проблемы с отладкой (неожиданное изменение лицензирования пакета от МС) оставила неравнодушной!

А что не так? МС поступила как-то несправедливо и постыдно по отношению к Jet Brains, которые собирались использовать открытый дебагер МС в своем коммерческом продукте?
Например, мне хочется видеть .NET (если отбросить детали, продукт МС) в мире Linux, видеть как платформа займет свою нишу, где успешно крутится та же JVM. Мне кажется C# имеет все шансы занять Enterprise тему и потеснить Java, когда .NET Core будет достаточно стабилен. Хочу делать кроссплатформенные продукты на C#. Вы и все интересующиеся .NET Core комьюнити таким образом двигаете платформу в этом направлении.
Мне удобно писать в Rider'е, так производительнее для меня, т.к. Rider это не только редактор и плагины для подсветки, это куча классных инспекций из ReSharper, которые я использую каждый день и не собираюсь отказываться. Вам удобно делать свои .NET Core продукты в Visual Studio Code — Ваше право. Почему в итоге мы с Вами не можем двигать продукт (не важно коммерческий он для них или нет, они его двигают всеми силами) МС .NET Core удобным для нас с Вами способом?
.net core бесплатен как и платформа. инструменты разработки — это то, что продает мс, логично, что они не хотят отдавать за бесплатно свою работу другим, которые будут продавать ее потом за деньги.
Вы правы, между собой коммерческие вопросы они могут решать как хотят. Я не утверждал, что кто-то здесь неправ. Просто столкнулся с проблемой, нужна была отладка, а другие инструменты для меня крайне неудобны и их пришлось использовать.
UFO just landed and posted this here
Если вы про настольные приложения (WinForms, WPF), то можно и сейчас, но не очень удобно. Не обещаем добавить полноценные UI designers, но возможность предпросмотра изменений во время редактирования UI в одном из следующих релизов сделаем.
UFO just landed and posted this here

Под линуксом сейчас особо ничего кроме GTK# и нет. Ну и работающего поверх него eto.Forms. Поддержка GTK# в Xamarin.Forms пока в процессе изготовления. Авалония в альфе. На макоси Cocoa, но для неё всё равно надо запускать Xcode, емнип. Так что в условиях отсутствия имеющихся средств на райдер в этом плане рассчитывать несколько странно. Мы у себя в авалонии для райдера плагин, конечно, сделаем, но когда этот светлый момент настанет, предсказывать не берусь.

Rider очень приятный. Пробовал несколько ЕАПов, они были сыроватыми. Но релиз весьма хорош. Как поставил, так пока больше студию и не запускал. Для ASP.NET Core проектов всего хватает. Разве что дебаггер немного глючит на асинхронном коде.
Спасибо!

Проблему с отладкой в асинхронном коде мы уже тестируем, опубликуем, видимо, в составе в 2017.1.1.

Да, собственно, из-за проблем с отладкой асинхронного кода я вернулся обратно на студию.
Rider/Resharper — изумительное средство для написания и рефакторинга кода, но вот отладка кода не является его сильной стороной. В частности:


  1. Невозможна полноценная отладка асинхронного кода, как уже замечено выше. Будет исправлено — хорошо.


  2. Expression Evaluation очень неудобен. Вместо настраиваемого отображения и кастомных визуализаторов показывает кишки объектов.


  3. Нет возможности остановки при выбросе исключения, а не при его перехвате.

Ну и до кучи тормоза Rider-а на больших файлах, на которых голая студия летает плюс невозможность одновременной работы с C# и C++.

3. постараемся починить скоро
насчет 2 — пока что есть более критичные баги. Не хочется обещать на ближайшее время. Да и UI там надо писать
Скорее всего, уже в следующем году. Мы их умеем открывать, позволяем редактировать, но не умеем запускать и, соответственно, отлаживать. С этим есть архитектурные проблемы, мы их постепенно решаем, но я бы не стал рассчитывать на окончательную победу в этом году.
Как производительность в сравнении со студией+решарпер?

Субъективно — производительность отличная. В отличие от студии+решарпера, работа с крупным проектом в rider не раздражает. Тормоза изредка случаются, но по сравнению с постоянно зависающей и вылетающей 3 раза за день студией — прекрасно. Это личный опыт, YMMV.

Мне кажется, студия вылетает из-за решарпера.
Сколько ни пользовался ванильной студией — не припомню вылетов в последнее время.

После выхода 2017-ой студии C# разработчики разделились на два лагеря. У одних она каждые 15минут/полчаса/час/день/вставить_нужное зависает/падает/выдаёт_ошибку, а у других такая же нога и не болит.

Ну так давайте искать причину. Я высказал предположение о наличии решарпера или других плагинов
А вдруг это заговор JetBrains и они специально крашат студию, чтобы люди переходили на Rider?

Причина одна. Новый SDK и интеграция оного со студией ну ооочень сырые. Пока пользуешься только классическими проектами — всё в целом нормально. Пока пользуешься только .NET Core + ASP.NET Core — всё в целом нормально. Стоит сделать шаг в сторону, где это хоть как-то перемешивается, и в этот прекрасный момент, как говорил один персонаж, сама собой откапывается зарытая собака и начинает тебя грызть.


Плюс они сейчас перешли на новую систему проектов. Которая поддерживает мультитаргетинг, асинхронна и всё такое. Но вот незадача — старое (синхронное) апи, которым пользуются все расширения, теперь начинает тормозить и виснуть. Такая банальная вещь как обход дерева проектов и извлечение списка зависимостей теперь на достаточно большом солюшне занимают вместо 10-20мс 2-3 секунды. Это только то, с чем я столкнулся при разработке расширений.


Далее. Новый нугет. Поддержка транзитивных зависимостей, ссылки на библиотеки прямо в общем кэше. Только вот медленно это всё очень работает. Особенно если где-то вылезла ошибка. У меня рекорд был, когда это чудо 15 минут зависимости разрешить пыталось, притом что все пакеты уже скачаны и в кэше лежат.

Спасибо, теперь после взгляда со стороны разработчика расширений всё понятно.

Я бы к этому еще добавил то, что из-за маленькой особенности студии в виде 32-битности эта конструкция бытро упирается в лимит по памяти. Голая студия в него вполне влезает, а вот решарпер (или другие крупные расширения) уже умещается плохо. Так что в в том, что виноваты плагины (фактом своего наличия), я не сомневаюсь, и на голой студии проблемы с нехваткой ресурсов, я уверен, не будет. Но только голая студия по сравнению с vs + r# или Rider — примерно как блокнот.

Но только голая студия по сравнению с vs + r# или Rider — примерно как блокнот.

Да нет, всё уже не настолько ужасно, особенно в VS2017.

Я пробовал недавно голую vs 2017 пол-дня, больше не хочу. Я знаю, что в студии много всякой фигни, она развивается, есть разные рефакторинги и все такое, но субъективно — "спасибо, нет". Хотя бы за медленный поиск текста по всему солюшену или ущербное средство запуска юнит-тестов. А если сравнивать с rider — так в студии даже текстовый редактор откровенно слабый и чекаут сделать невозможно без боли.

а проясните пожалуйста, вроде же плагины студии в отдельных процессах выполняются?

Кажется, в vs 2017 на эту тему что-то делали, но это актуально не везде. Видимо для этого нужна специальная поддержка в том числе со стороны плагина. Уверен, kekekeks сможет сказать точнее, как это работает и работает ли вообще.

Из известных мне сторонних плагинов к студии из живущих в отдельном процессе могу назвать разве что плагин для поддержки языков на основе Nitra.
У студии нет готового дружелюбного апи для работы в отдельном от неё процессе, отсюда сложности.

Будет ли поддержка Azure Functions?
Я могу сказать одной фразой. Для тех кто привык к продуктам JetBrains, Visual Studio — ад.
А причем тут Azure Functions?
Эм… Пока что работать с Azure Functions можно только в VS 2017 Preview, хотелось бы это делать в Rider.
Сколько людей, столько и мнений. У меня JetBrain'овские продукты постоянно как-то криво работают.

Поддержу реквест. RIder вообще не понимает *.fsx сейчас.
Azure Functions — это сейчас моя основная деятельность, пришлось перейти обратно на VS.

Ну так напишите реквест, где объясните что это такое и почему это так важно =)

В начале это связано с этим — https://youtrack.jetbrains.com/issue/RIDER-8429 (обещали сделать), т.к. без fsx вообще ничего не заработает.


Честно скажу, писать реквест на Azure Functions не буду, т.к. понимаю что это очень нишевая технология, которую даже VS плоховато поддерживает. А у Rider ещё много других проблем. Даже реквест, который Вы линканули, касающийся общей интеграции с Azure, как я понимаю, ещё не выполнен.

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

Написал там, напишу и здесь.
Azure Functions — это "serverless" скрипты, которые могут быть написаны на C#, F#, JS, PHP, Python и пр, поставлены на таймер (через cron expression), или на триггер (по http запросу, на событие в шине, на сообщение в очереди, на новые данные в сторадже и т.д.) и выполняющие какие-то действия.


Они интегрированы со всеми Azure технологиями, пайплайнами, бигдата хранилищами, api и пр.
Оплата за кол-во использований и за время работы, т.е. виртуалку можно не держать 24/7, а платить только за скорость кода :)


Очень хочу поддержку этой технологии в Rider, потому что Rider — хорош, но работать с enterprise технологиями пока не получается.

Бесплатная версия есть?
Не триальная, не на 30 дней, а полностью бесплатная (пусть и с урезанным функционалом)?

А то не понятно вот это: «Rider теперь можно не только загрузить, но и купить.»

Если бесплатной версии нет, то получается, что смысл фразы: «Rider теперь можно не только КУПИТЬ, но и КУПИТЬ.» Какая-то маркетинговая лажа.
Если можно скачать бесплатную версию, тогда всё логично. Уточните пожалуйста.
видимо, имеется в виду, что раньше можно было только загрузить EAP, а теперь можно и купить релизную версию
Ясно. Но всё-таки вопрос с бесплатной версией остаётся открытым. Есть ли? PyCharm вроде бесплатный есть.
Бесплатной версии пока нет и в обозримом будущем мы её не планируем. Будем следить за обстановкой, конечно.

Формулировка, которую вы называете маркетинговой лажей, означает, как верно расшифровали ниже, что мы открыли продажи, тогда как в предшествующее предрелизье их по понятным причинам не было, была только возможность загрузить EAP-билд.
Ясно. Выше уже написали почему такая формулировка.
Просто в последнее время очень можно стало повышать цены «по просьбам трудящихся» или «мы отменили безлимит, потому что он больше никому не нужен и вам теперь будет ещё лучше чем прежде» и т.д.
Будем ждать бесплатную версию и продолжать пользоваться МоноДевелоп. Если появится бесплатная версия, обязательно будем пробовать.
Спасибо.

К JB не имею отношения, но вы осознаёте, что кушая кактус монодевелопа за год теряете существенно больше стоимости подписки на райдер?

Если бы так оно и было, я бы это осознавал, а пока нет, ничего не теряю. После тщательной доработки напильником, МоноДевелоп не так уж и плох. Меня вполне устраивает.
Хотя я и не исключаю, что для кого-то монодевелопа недостаточно. Пусть покупают, ничего не имею против.
Если вам хватает моноДевелопа, то зачем ждать когда райдер станет бесплатным? =) Раз вас все и так устраивает.
p.s. всегда можно попользоваться ЕАП билдами. они бесплатные.
Потому что я привык изучать новые предложения, сравнивать плюсы и минусы и делать выбор.
Но в данный момент меня интересуют новые предложения только бесплатных программ.
Я извиняюсь, но мне одному кажется что MS решили закопать свою кроссплатформенную инициативу. Ну точнее не закопать, а просто забить на неё… Лично я себя обманутым ощущаю слегка, ну т.е. я конечно могу есть кактус и он довольно-таки вкусный (C#/.Net Core), но тем не менее кактусом остается (поддержка не оч. ни от Майков ни от сторонних).
Видать одному… А как обстоят дела с Xamarin + Rider под Linux?)
Как там Rider в связке с Unity? Есть очевидцы/пострадавшие?
Очевидцев и пострадавших можно почитать здесь, например.
Пользуюсь Rider в связке с Unity с октября 2016 года, на OS X. В сравнении с MonoDevelop — небо и земля. Конечно ранние билды довольно часто крашились, но последнее время все работает отлично. Для Unity в Rider есть отдельный плагин, с поддержкой Unity-синтаксиса, подсветкой шейдеров, и дебаггером. Довольно большие проекты (100к-200к строк кода) открывает быстро, тормозов не замечено.
Конверт Unity проекта из VS проекта не получился, не подхватывает зависимости и поэтому рисует красным все ссылки на сторонние библиотеки, в том числе и на неймспейс UnityEngine. И судя по предложению VS после этого сменить target платформу с 4.5 на более подходящую, он либо заточен под свежий Unity3d 2017(не пробовала), либо просто не правильно работает. Также хотелось бы дополнительных галочек при установке — установить ли Rider редактором по умолчанию в Unity, т.к. тихое изменение его на свой слегка невежливо.
Скорость загрузки однако весьма порадовала.
А какая у вас версия Unity и студии? Какие версии дотнет фреймворка стоят? Такое может быть, если выбран MSBuild 15, в csproj TargetFramework 4.5 и при этом dotnet 4.5 не установлен, а только 4.6.х. Райдер должен выдавать попап с пожеланием поменять MsBuild или установить дотнетфреймворк 4.5.
Если ваша проблема про это, то прокомментируйте реквест https://youtrack.jetbrains.com/issue/RIDER-6937
VS community 2017 15.2, Unity 5.6.2p3, .Net framework установлены с 4.0 по 4.6.1 «через» VS installer (и поэтому в «все программы» не отображаются). Rider ни предупреждений, ни предложений не выдавал, но вообще обычно в таких ситуациях ожидается, что при refresh проекта в Unity он должен уметь пересобирать проект в нужной ему рабочей конфигурации либо работать как надо с текущей.
Спасибо за помощь.
Могли бы вы попробовать поменять TargetFramework в Project Properties на 4.6.1, чтобы уже точно удостовериться, что проблема в этом. Я не могу на чистой машине воспроизвести эту вариацию проблемы (с ".Net framework с 4.0 по 4.6.1 «через» VS installer").
Кроме того, кажется, что если все таргет-фреймворки установлены, то студия не предлагает мне сменить 4.5 на более подходящую.
Но проблему, которую удалось воспроизвести, про отсутствующий 4.5 будем фиксить конечно.
Дорогие JetBrains, IDE сделали, все супер. Теперь надо для мира .NET Core под Linux / macOS позаботиться о профайлинге. Ну куда же мы без dotTrace и dotMemory? Ниша не занята. А это как никак джентльменский набор.

Для них только гуй надо ещё сделать суметь. На Swing/AWT.

GUI — проблема, но не очень большая. Потроха компилятора проблемнее.

Компилятора? В смысле, JITа? Там, емнип, те же самые API наружу выставляются, что и в "большом" CLR. Даже SOS-плагин для отладчиков есть.

Я сказал «компилятора»? Описка, прошу прощения. Профилятора, конечно.
Это набор, как бы сказать, элитного, занесенного в красную книгу джентльмена.

Кросс-платформенный профилятор у нас сейчас не готов, а у команды dotTrace есть дела, которые они хотят сделать до того, как его доготовят. Поэтому каких-то подвижек по части профиляции не под Windows я бы ожидал не ранее, чем через год.
Для запуска случайно не нужно Core CLR билдить в дебаге и перебрасывать либы в исполняемую директорию приложения, как это делается например для просмотра asm дампов jit'a? (Работает конечно, но блин неудобно)
UFO just landed and posted this here
Думали (по мотивам нашей с вами переписки), но пока до конкретных действий не добрались. Вот здесь можно проголосовать, чтобы не забывали.
Нет. Команда Nitra уже больше года работает отдельно от JetBrains.
Что-то Rider отказывается видеть мои тесты в проекте. Использую NUnit + .Net Core, Rider версия 2017.1
в VS2017 тесты видны и запускаются.
Впрочем, как выясняется, NUnit сейчас не поддержан даже в .NET Core 1.1. Будет исправлено в Rider 2017.2 (EAP будет в сентябре или раньше)

Райдер клевый, но дайте скорее нормальное апи для плагинов в том числе гуёвых :-) На студию можно гнать сколько угодно но у нее за спиной огромное апи и огромное количество плагинов. И да, на каком языке надо будет писать плагины? ;-)

Какое-нибудь дадим — наверное, в 2017.2, но мамой не клянусь. Надеемся, оно станет нормальным. Писать логичнее всего на C# и Kotlin. В двух разных IDE, да.
А хоть кто-нибудь эти извращения поддерживает, чтобы оба синтаксиса распознавались и работало всё адекватно? А то обычный pycharm у меня ломается на dotNet части IronPython. Если бы не легаси, фиг бы я это писал =)
Скажите, а у вас не будет како-нибудь акции в знак первого релиза типа подписка на первый год по цене третьего за $107? Пользоваться очень хочется, но вот мне как ИП в России с нынешним курсом $ 179.00 в год это много.
Как быть с переменными типа MSBuildExtensionsPath, которые используются в .csproj?
сходу не подхватило $(MSBuildExtensionsPath)\…
исправил на C:\Program Files (x86)\…

Но проект все равно не собрался по этой причине. Ок, удалил .resx, заменив на embedded resources.

Теперь не собирается т.к. .resx используется в автосгенеренном файле миграции (code first, DbMigration..)

наверно нужно ждать осенний релиз…
Если MSBuildExtensionsPath не разворачивается, значит что-то отломано в мсбилд-е… Попробуйте поменять мсбилд, может у вас на машине их несколько стоит и райдер подхватил не тот что нужно.
p.s. верный способ диагностировать такие проблемы — попробовать собрать проект из консоли. Если из консоли работает, то и райдер должен =)
Образовательный лицензионный ключ от Stepic для любой среды разработки от JetBrains IDE не активирует Rider IDE.
Первый раз слышу про такой ключ от Stepik. Где его дают?

На stepic.org за решение задач по программированию. Ключи действуют короткое время.

Спасибо, найду команду Stepik и спрошу.
Похоже, в ключе закодированы конкретные продукты, а генерировался он тогда, когда Rider еще не был выпущен и, соответственно, в список продуктов не входил. Они в скором времени перегенерируют ключ. Чтобы получить его, вероятно, стоит написать в поддержку Stepik.
Оперативно. Пару минут назад получил новый ключ, который успешно активирует Rider.
А механизма добавления Service reference/Web reference аналогичного VS не предусмотрено? Или он настолько на виду, что я его уже минут 15 найти не могу? :)
Есть ли возможность делать Publish с WebDeploy?
Пока нет. Всем, что связано с publish и deploy, будем как минимум начинать заниматься в 2017.2 осенью.
Эх, подождем :( А есть возможность bold в текстовм редакторе выключить? Или это где-то в теме надо подкрутить?
Сходите в Settings > Editor > Colors & Fonts > General — скорее всего, нужные настройки будут там.

Глупый вопрос, но интеграции с рослином нет никакой? Все эти анализаторы/кодогенераторы и прочее в райдере не заведутся by design?

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

Спасибо. Кстати, анализаторы — это неплохо, но в будущем необходимость в такой фиче для людей резко возрастет с реализацией этой issue, равно как и необходимость в довольно масштабных изменениях самой IDE.

Честно говоря, ничего не понял из (практически отсутствующего) описания реквеста на гитхабе. Поясните?

Там вот дока залинкована.


Но вкратце это поддержка АОП на уровне языка. Чтобы можно было писать


// user written code
public partial class MyClass
{
     public int Property { get; set; }
}

// tool generated code
public partial class MyClass  : INotifyPropertyChanged
{
     public event PropertyChangedEventHandler PropertyChanged;

     public supersede int Property
     {
          get { return superseded; }
          set
          {
              if (superseded != value)
              {
                    superseded = value;
                    var ev = this.PropertyChanged;
                    if (ev != null) ev(this, new PropertyChangedEventArgs(“Property”));
              }
          }
     } 
}

Там много нюансов по сути работы (они описаны в основном по последней ссылке), но смысл примерно такой.

Спасибо. Насколько я понял, этот механизм актуален на этапе компиляции и не требует какой-то поддержки на этапе редактирования, что сильно облегчает нам задачу. Но лучше призову DragonFire для более компетентной оценки.
Призываюсь.
Кажется именно эта фича у нас заведется без проблем. Нужно только научиться звать компилятор в режиме кодогенерации в момент загрузки проекта и затягивать во все анализы решарпера сгенерированные файлы.
Мы так сейчас делаем, например, для Xamarin — вызываем специальные таски для генерации биндингов для andriod / ios и учитываем в анализах все сгенерированные файлы.

Просто я года 3 или 4 назад на дотнексте или clrium'е были выступления команд CodeRush и решарпера. Первые сказали "мы переписали все на рослин и снизили затраты памяти до 200МБ", а вторые "мы точно не будем переписывать, рослин не ок, в 32процессе нам тесно", из чего я сделал вывод, что поддержки рослина не будет вообще никакой. А тут прям приятные новости, спасибо.

Мы действительно НЕ будем переписывать решарпер на рослин. В ближайшее время по крайней мере.
Но какую-то интеграцию с его анализами нам таки нужно сделать. Хотя это и не просто.
Sign up to leave a comment.