Давно пользуюсь таким замечательным продуктом как Resharper-ом. Пользовался бы и дальше, если бы не щедрость Microsoft и странное поведение продавца от JetBrains.
Таким образом есть студия 2013 и заканчивается пробная лицензия от Resharper-8. Решил попробовать, можно ли жить в студии (для начала Ultimate редакции) без решарпера. Кроме того, как не удивительно, некая часть разработчиков пользуются только не большим набором возможностей решарпера. Нельзя ли их перевести на встроенные фичи или бесплатные инструменты, что бы бухгалтерию зря не напрягать.
Исследование вопроса под катом.
Да, я видел, что на хабре уже сравнивали некоторые возможности Reshaper и Studio, а Resharper 8 содержит еще кучу чего-нибудь вкусного и интересного.
Но надеюсь дополнительный опыт сравнение будет не лишним, а полезным.
Итак, можно ли обойтись без Reshaper 7 в студии VS2013 (Ultimate). Начнем с навигации. В качестве кошки выбраны исходные коды nunit.
Допустим надо найти определение типа AddinManager.
ReShaper:
Go to Everything / Type… (Ctrl + N)
чисто Studio
Inline Navigate To… (Ctrl+,)
или Navigate To...
Совсем не плохо! — удивился я сам себе.
Следующий популярный, для меня, сценарий, это нахождение всех наследников интерфейса. Поищем их для интерфейса IService.
ReShaper:
Derived Symbols
Теперь поищем чисто студией:
первый шаг (ищем тип в solution explorer):
далее правый клик и Derived Types:
В запасе есть еще более визуальный, но менее быстрый Code Map:
Т.е. наследников искать можно без особых проблем (хотя судя по всему чуть более медленее).
И самый наверно популярный сценарий «поиск ссылок на метод»: поищем где вызывается метод InitializeService.
Resharper:
Find Usages:
Studio (по клику на «12 references» над самии методом):
Этот способ показывает не только вызов, но и реализации, что конечно же не так прекрасно как в resharper.
Итак, краткий анализ показывает, что базовые (из моего опыта) сценарии навигации могут быть более или может быть менее покрыты студией. Кроме того, я настолько привык к решарперу, что не мог себе представить работы без него (даже на уровне навигации). Данный опыт сломал этот «страх жизни без решарпера». Теперь можно потрогать студию и за более сложные сценарии (рефакторинг, запуск nunit тестов).
Спасибо,
Игорь.
Автор: constructor