public class Test
{
[NotNull]
public readonly string Name;
public Test([NotNull] string name)
{
Name = name;
}
protected Test() // Здесь пишет: Field 'Name' marked with NotNull attribute is not initialized on all execution paths.
{
throw new InvalidOperationException();
}
}
Это предупреждение не должно появляться, т.к. конструктор не завершается и объект не создаётся.
Одиночное наследование — это всего лишь частный случай множественного наследования.
Здравствуйте, HotDog, Вы писали:
HD>Имеет смысл с последней 8.х переходить на 9.0 при условии, что пишутся только десктопные приложения на VS2013?
Пришлось деинсталировать и поставить обратно 8.2. У 9.0 обнаружились серьёзные проблемы с производительностью. Нагружаются все 12 ядер на 95 процентов и студия умирает на несколько, а порой на несколько десятков секунд. Возврат к 8.2 проблему порешал.
Если нам не помогут, то мы тоже никого не пощадим.
Имеет смысл с последней 8.х переходить на 9.0 при условии, что пишутся только десктопные приложения на VS2013?
В релиз нотах не увидел ничего интересного для моего случая и снова платить за лицензию только ради новой циферки в about box как то не хочется.
Может кто то уже проапдейтился и поделится впечатлениями?
Здравствуйте, HotDog, Вы писали:
HD>Имеет смысл с последней 8.х переходить на 9.0 при условии, что пишутся только десктопные приложения на VS2013?
Вот официальное сравнение, надеюсь это поможет. Делиться своими впечатлениями не буду, ибо я несколько предвзят
Здравствуйте, ZagSer168, Вы писали:
ZS>После перехода на 9.0 ухудшились возможности анализа. ZS>Во многих местах пишет предупреждение, что решарпер не может проанализировать тело метода.
А можно пример?
Здравствуйте, qxWork, Вы писали:
W>Здравствуйте, ZagSer168, Вы писали:
ZS>>После перехода на 9.0 ухудшились возможности анализа. ZS>>Во многих местах пишет предупреждение, что решарпер не может проанализировать тело метода. W>А можно пример?
Не получается создать пример. В простых случаях не пишет предупреждение.
Одиночное наследование — это всего лишь частный случай множественного наследования.
Обнаружилась ещё такая проблема. Есть поле с неверным именем:
Пишет предупреждение: Suggested name is 'Symbol'.
Это правильно.
Resharper 8 сразу предлагал в контекстном меню исправить имя на Symbol.
В Resharper 9.0 нет такого пункта Rename в меню (см. картинку).
Одиночное наследование — это всего лишь частный случай множественного наследования.
Здравствуйте, ZagSer168, Вы писали:
ZS>Не получается создать пример. В простых случаях не пишет предупреждение.
Теперь понимаю. Срабатывает отсечение анализа control flow по слишком большому количеству состояний.
Раньше молча тормозило.
Здравствуйте, IT, Вы писали:
IT>Пришлось деинсталировать и поставить обратно 8.2. У 9.0 обнаружились серьёзные проблемы с производительностью. Нагружаются все 12 ядер на 95 процентов и студия умирает на несколько, а порой на несколько десятков секунд. Возврат к 8.2 проблему порешал.
Не поделитесь проектом для анализа? NDA подпишем.
Здравствуйте, IT, Вы писали:
IT>А пытался я добавить вот этот класс. При вводе 'class' задержка с пол миуты. Замем при вводе имени ещё примерно столько же.
Спасибо! Завел реквест, будем чинить в срочном порядке.
Не можем воспроизвести не могли бы вы прицепиться нашим дотТрейсом и снят перформанс снепшот в момент затыка ? Очень хотелось бы посмотреть что происходит.
В студии еще какие-нибудь плагины стоят ? Спасибо!
Здравствуйте, qxWork, Вы писали:
W>Здравствуйте, IT, Вы писали:
IT>>А пытался я добавить вот этот класс. При вводе 'class' задержка с пол миуты. Замем при вводе имени ещё примерно столько же. W>Спасибо! Завел реквест, будем чинить в срочном порядке.
Есть у меня внезапная идея: а не стоит ли у вас какая-то интеграция с гитом. А то бывают странные артефакты: TFS git, например, просто не дает создать новый файл, если открыть проект не из репозитория.
Здравствуйте, qxWork, Вы писали:
W>Есть у меня внезапная идея: а не стоит ли у вас какая-то интеграция с гитом. А то бывают странные артефакты: TFS git, например, просто не дает создать новый файл, если открыть проект не из репозитория.
Стоит и TFS git для работы с visualstudio.com и другие разширялки имеются. Но все они нормально работают с R# 8.2.
Если нам не помогут, то мы тоже никого не пощадим.
Посмотрим еще раз как мы с TFS git'ом. Но снепшот снятый у вас на машине упростил бы нам процесс изучения втыков. Спасибо!
IT>Стоит и TFS git для работы с visualstudio.com и другие разширялки имеются. Но все они нормально работают с R# 8.2.
Здравствуйте, Cirrus, Вы писали:
C>Посмотрим еще раз как мы с TFS git'ом. Но снепшот снятый у вас на машине упростил бы нам процесс изучения втыков. Спасибо!
Что это такое и как его снять?
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, Cirrus, Вы писали:
C>>Посмотрим еще раз как мы с TFS git'ом. Но снепшот снятый у вас на машине упростил бы нам процесс изучения втыков. Спасибо!
IT>Что это такое и как его снять?
Здравствуйте, qxWork, Вы писали:
W>Сделать то, что тормозит, и нажать кнопку снять снепшот.
Запулил пару снапшотов. Хотя после очередной перестановки 9.0 вроде работает побыстрее, но всё равно заметно подтормаживает. Если я и впредь буду вам при необходимости присылать подобное, это ничего или быстро надоест?
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Запулил пару снапшотов. Хотя после очередной перестановки 9.0 вроде работает побыстрее, но всё равно заметно подтормаживает. Если я и впредь буду вам при необходимости присылать подобное, это ничего или быстро надоест?
Конечно, присылайте, для этого профилятор и встроен в ReSharper.
"linq2db project snapshot" — это ваше? Похоже, посмотреть смогу только в понедельник — я пока в отпуске, и интернет тут работает творчески.
Здравствуйте, IT, Вы писали:
IT>Да, и второй там тоже должен быть.
Они оба про одно и то же. Тормозит наша поддержка unit test-ов. Похоже у вас открыто много сесссий с большим количеством тестов в них. Так ли это?
В качестве workaround могу порекомендовать закрыть неиспользуемые.
Мы пока попробуем разобраться.
Здравствуйте, qxWork, Вы писали:
W>Они оба про одно и то же. Тормозит наша поддержка unit test-ов. Похоже у вас открыто много сесссий с большим количеством тестов в них. Так ли это?
С юнит тестами всё не так однозначно в моём проекте. Их относительно не много, порядка двух тысяч. Но реализованы многие из них как TestCaseSource, что даёт в общем итоге порядка 34,000 тестов. Сам по себе способ формирования test cases тоже весьма задумчивый, но пока до выхода NUnit 3.0 вряд ли что-то можно будет сделать более вменяемое.
W>В качестве workaround могу порекомендовать закрыть неиспользуемые. W>Мы пока попробуем разобраться.
Я подожду. Поставить/переставить 8.2/9.0 для меня теперь вопрос 5-ти минут
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>С юнит тестами всё не так однозначно в моём проекте. Их относительно не много, порядка двух тысяч. Но реализованы многие из них как TestCaseSource, что даёт в общем итоге порядка 34,000 тестов. Сам по себе способ формирования test cases тоже весьма задумчивый, но пока до выхода NUnit 3.0 вряд ли что-то можно будет сделать более вменяемое.
Похоже, были запущены тесты (возможно, довольно много), и сессия осталась открытой. Теперь код редактируется, а сессия пытается пересчитаться, что довольно долго, но что хуже — частично на UI-ном потоке. Поговорю завтра с нашим QA Lead-ом, попробуем воспроизвести.
IT>Я подожду. Поставить/переставить 8.2/9.0 для меня теперь вопрос 5-ти минут
Но как? Виртуалка?
Здравствуйте, qxWork, Вы писали:
W>Похоже, были запущены тесты (возможно, довольно много), и сессия осталась открытой. Теперь код редактируется, а сессия пытается пересчитаться, что довольно долго, но что хуже — частично на UI-ном потоке. Поговорю завтра с нашим QA Lead-ом, попробуем воспроизвести.
Тормоза наблюдались сразу после загрузки проекта. Возможно, как раз начальная ициализация/перебор тестов тормозной. С моими тестами в решарпере довольно много глюков.
IT>>Я подожду. Поставить/переставить 8.2/9.0 для меня теперь вопрос 5-ти минут W>Но как? Виртуалка?
Зачем? Деинсталировал/инсталировал. 9.0 через вашу новую веб загружалку. 8.2 лежит прикопаной в укромном месте. Установки все сохраняются, так что настраивать потом ничего не надо.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, qxWork, Вы писали:
W>>Похоже, были запущены тесты (возможно, довольно много), и сессия осталась открытой. Теперь код редактируется, а сессия пытается пересчитаться, что довольно долго, но что хуже — частично на UI-ном потоке. Поговорю завтра с нашим QA Lead-ом, попробуем воспроизвести.
IT>Тормоза наблюдались сразу после загрузки проекта. Возможно, как раз начальная ициализация/перебор тестов тормозной. С моими тестами в решарпере довольно много глюков.
Спасибо за снепшот! Основную причину тормозов нашёл и пофиксил. Будет в следующем апдейте.
Здравствуйте, HotDog, Вы писали:
HD>Имеет смысл с последней 8.х переходить на 9.0 при условии, что пишутся только десктопные приложения на VS2013? HD>В релиз нотах не увидел ничего интересного для моего случая и снова платить за лицензию только ради новой циферки в about box как то не хочется. HD>Может кто то уже проапдейтился и поделится впечатлениями?
А я почему-то всякий раз умудряюсь сделать апгрейд на новую версию ровно чуть больше месяца до выхода новой версии (и таким образом теряю право на бесплатный апгрейд). Я вот уже боюсь обновляться
Здравствуйте, koandrew, Вы писали:
K>А я почему-то всякий раз умудряюсь сделать апгрейд на новую версию ровно чуть больше месяца до выхода новой версии (и таким образом теряю право на бесплатный апгрейд). Я вот уже боюсь обновляться
Рекомендую лицензии с подпиской — у них нет такой проблемы
А если серьезно, напишите в sales@jetbrains.com, наши сейлзы всегда с пониманием к подобному относятся.
Здравствуйте, qxWork, Вы писали:
W>Рекомендую лицензии с подпиской — у них нет такой проблемы W>А если серьезно, напишите в sales@jetbrains.com, наши сейлзы всегда с пониманием к подобному относятся.
Я вот с надеждой смотрю на R# для C++ — не столько потому, что он чем-то кардинально лучше помидора (который у меня уже есть), сколько из-за того, что мне приходится работать одновременно на C# и C++, и разный experience R# vs VA (хоткеи, принципы навигации и т.п.) сильно выбивает из колеи — дошло до того, что я добавил
#define var auto
в свой плюсовой проект
P.S. Вот если бы вы ещё и HLSL добавили в R# C++ — мне наступило бы вселенское щассьте
Спасибо! Имейте в виду, что он не так прост, как может показаться на первый взгляд. Например, немногие знают, что он умеет полиморфизм (через class linkage), также ещё имеется библиотека Effects11, которая в версии 11 стала распространяться MS в исходниках. Лично я по ряду причин ей не пользуюсь, но знаю, что многие пользуются.
Ну и для completeness я бы добавил GLSL — я его не знаю и не использую, но вдруг кому-то нужно будет
Здравствуйте, ShurikEv, Вы писали:
SE>Установил последнюю версию решарпера 9.0 update 1. И на некоторых сборках наблюдаю вот такую картину? В чем может быть проблема? SE>Image: Скриншот 2015-02-17 14.18.09.png
Сложно сказать. А если создать новый console application и добавить ссылку на проблемную библиотеку, повторится?
Проблема с конкретными библиотеками или случайными?
Здравствуйте, qxWork, Вы писали:
W>Здравствуйте, ShurikEv, Вы писали:
SE>>Установил последнюю версию решарпера 9.0 update 1. И на некоторых сборках наблюдаю вот такую картину? В чем может быть проблема? SE>>Image: Скриншот 2015-02-17 14.18.09.png W>Сложно сказать. А если создать новый console application и добавить ссылку на проблемную библиотеку, повторится? W>Проблема с конкретными библиотеками или случайными?
Скорее с конкретными. В скриншоте библиотека, полученная через nuget. У вас с ней всё нормально? В 8.1 такой проблемы не было
Здравствуйте, ShurikEv, Вы писали:
SE>Скорее с конкретными. В скриншоте библиотека, полученная через nuget. У вас с ней всё нормально? В 8.1 такой проблемы не было
Удалось воспроизвести. Починим
У меня, судя по всему, перестал работать механизм External Annotations.
Есть несколько сторонних DLL'ек, которые используются в нашем проекте. Для них я написал XML-ки с аннотациями, которые положили в Program Files\JetBrains\v8.2\ExternalAnnotations. И всё работало.
После перехода на 9.0 Начались проблемы. Во-первых, R# теперь устанавливается не в Program Files, а в <Папка пользователя>\AppData\Local\Jetbrains. Я скопировал аннотации туда (JetBrains\Installations\ReSharperPlatformVs12\ExternalAnnotations), но решарпер их не видит. Кэши чистил.
Здравствуйте, syomin, Вы писали:
S>Есть несколько сторонних DLL'ек, которые используются в нашем проекте. Для них я написал XML-ки с аннотациями, которые положили в Program Files\JetBrains\v8.2\ExternalAnnotations. И всё работало.
S>После перехода на 9.0 Начались проблемы. Во-первых, R# теперь устанавливается не в Program Files, а в <Папка пользователя>\AppData\Local\Jetbrains. Я скопировал аннотации туда (JetBrains\Installations\ReSharperPlatformVs12\ExternalAnnotations), но решарпер их не видит. Кэши чистил.
В 9.0 с этим всё сложнее: просто положить в папку с дефолтными аннотациями не поможет — надо писать плагин.
В 9.1 опять можно будет класть, но он пока в EAP.
Есть другой стандартный рабочий вариант — класть файл с аннотациями рядом самой dll для которой он написан.
Подробнее — здесь https://www.jetbrains.com/resharper/webhelp80/Code_Analysis__External_Annotations.html
DI>В 9.0 с этим всё сложнее: просто положить в папку с дефолтными аннотациями не поможет — надо писать плагин. DI>В 9.1 опять можно будет класть, но он пока в EAP.
Очень жаль.
DI>Есть другой стандартный рабочий вариант — класть файл с аннотациями рядом самой dll для которой он написан. DI>Подробнее — здесь https://www.jetbrains.com/resharper/webhelp80/Code_Analysis__External_Annotations.html
Пробовал, но почему-то не сработало. В любом случае для нас это не лучший вариант: сторонние библиотеки приходят нам в виде большого архива, содержащего сотни файлов в достаточно развитой структуре из вложенных папок. Этот архив распаковывается в некотором стандартном месте в файловой системе, на которое сделаны ссылки из нашего проекта. Распихивать аннотации по дереву папок при каждом обновлении — несколько трудоемко.
Надо бы написать разработчикам в Jira, но тут проще...
Можно ли заставить ReSharper не анализировать *.cs файлы, которые добавлены в проект, но у которых Build Action выставлен в 'None'? У нас в проекте есть не очень хорошая практика, когда устаревший код исключается из проекта подобным путём и ещё некоторое время хранится в репозитории. Получается, что ReSharper выдает предупреждения по коду, который фактически даже не компилируется.
Здравствуйте, syomin, Вы писали:
S>Надо бы написать разработчикам в Jira, но тут проще...
В Jira писать бесполезно — у нас YouTrack
S>Можно ли заставить ReSharper не анализировать *.cs файлы, которые добавлены в проект, но у которых Build Action выставлен в 'None'? У нас в проекте есть не очень хорошая практика, когда устаревший код исключается из проекта подобным путём и ещё некоторое время хранится в репозитории. Получается, что ReSharper выдает предупреждения по коду, который фактически даже не компилируется.
Вообще-то он их не анализирует, наверное, есть какие-то нюансы в вашем проекте. Очень хотелось бы на него взглянуть. NDA подпишем, если надо.
Или хотя бы через скайп.