ReSharper и Roslyn: Q&A

Как уже все знают, MS предлагает «компилятор как сервис» в виде платформы Roslyn. Может быть некоторые из вас ее уже попробовали и составили какое-то первое мнение. После того, как почитаешь внимательнее возможности Roslyn и рассмотрев примеры работы с ним, возникает закономерный вопрос:

Как это будет работать с ReSharper и будет ли он переписан? Когда будет новый решарпер для новой студии?

В предыдущий раз ReSharper появился только в момент выпуска RC или около того, насколько я помню, т.е. достаточно поздно. Как оно будет в этот раз и как будут вместе жить ReSharper и Roslyn предлагается узнать из перевода интервью с разработчиками из JetBrains.

 

После анонса и выпуска Roslyn платформы на последней конференции BUILD, мы в JetBrains немедленно оказались погребены под вопросами о судьбе ReSharper, в смысле будет ли он использовать Roslyn для анализа кода и как они могут вместе сосуществовать. Поток вопросов не иссякнет, пока не будет использоваться единый шаблон для ответов на них:

resharper

Подробнее

Различные профили Visual Studio и установка расширений к ним

Создание и запуск окружений

В большинстве случаев разработчикам не требуется работа Visual Studio в «песочнице». При этом песочница может быть достаточно большая и стабильная. Обычно все окружение и дополнения к студии находятся в единственном экземпляре. То, что студия запускается в нескольких инстансах не в счет. Окружение и настройки для них применяются одни и те же.

Однако, существует ряд задач, когда требуется получить «студию, которая словно только что установилась». Что это за задачи?

  • Тестирование дополнений для Visual Studio. Вы можете делать обзоры на дополнения, или хотите посмотреть стабильность дополнения не устанавливая его в свой рабочий экземпляр студии.
  • Разработка дополнений для Visual Studio. В этом случае все еще опаснее для разработки, так как дополнение с ошибками может надолго вывести студию из строя. Но в данном случае вы будете подстрахованы, так как для дебага студия будет запущена в «песочнице».
  • Работа с сильно различающимися настройками для нескольких проектов. Это может быть различные плагины, настройки окон, хоткеи и вообще все, что может быть настроено в студии.

Мне это понадобилось в свете тестирования дополнения к студии, которое надо устанавливать на отдельные окружения\профили. Некоторые детали о специфике задачи: Есть фреймворк, который ставится в виде VSIX пакета. Нюанс в том, что фреймворк одновременно развивается\поддерживается для нескольких номерных версий, которые не могут сосуществовать параллельно в рамках одного профиля Visual Studio.

Подробнее

Could not find required file ‘setup.bin’

Да, вот такое странное название для не менее странной проблемы, когда на «чистой» машине не собирается проект для публикации с помощью ClickOnce.

Совсем недавно, при разборе проблемы с применением PostSharp при сборке на билд-сервере, столкнулся с проблемой, что на чистой машине, где стоит только сам билд-сервер TFS, новый фреймворк с SDK не собирается проект. Полностью сообщение об ошибке выглядело следующим образом:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (4486): Could not find required file ‘setup.bin’

После того, как первое недоумение прошло и раскопки файла .targets тоже ничего не дали, решено было обратиться к гуглу и он выдал удивительные вещи. Оказывается установленного ПО недостаточно для сборки ClickOnce.

Ручным решением проблемы может быть следующее:

1. Необходимо скопировать с машины разработчиков всю папку c:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A

2. Далее в регистре прописать\создать ключ HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\GenericBootstrapper\11.0 со значением C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\

После чего все заработает.

Очень странное поведение и решение для линейки последних продуктов Microsoft, но что поделать. В общем и целом я полностью поддерживаю практику того, что билд-сервер должен быть максимально чист от инструментов разработчика, но по всей видимости самым лучшим решением будет поставить на билд-сервер последнюю версию студии с которой вы работаете и не задумываться над описанной проблемой. Возможно может всплыть что-то еще, от того, что студия не установлена на билд-сервере.

Но по прежнему не стоит ставить на билд-сервер инструменты вроде DevExpress, Telerik и так далее, потому что только на машине пользователя вы обнаружите, что не хватает какой либо библиотеки для отображения супер-таблицы или иных красивостей.

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

 

Hard’n’Heavy!

 

 

 

Создание проектов с NuGet и ReSharper

В этом видео я рассказываю как работать с пакетами NuGet, как их комплексно устанавливать. Как пользоваться ReSharper для добавления usings и почему я никогда не указываю используемые неймспейсы. Так же расскажу о некоторых подводных камнях.

 

Hard’n’Heavy!

 

 

Запуск .bat из Visual Studio 2010

Или как навесить произвольное действие к контексту к любому элементу в обозревателе проектов.

Как уже было сказано в заголовке, данное действие мы будем проворачивать для .bat файлов, так как они широко используются в нашей повседневной деятельности и постоянно открывать проводник или FAR не очень удобно. Гораздо лучше сделать свое действие и до кучи повесить на него сочетание клавиш, для достижения полной нирваны.

Итак, дано: проект, в котором используются батники.

Требуется: запускать батники из контекстного меню в обозревателе проектов.

Подробнее

Dll Within

Идея

Достаточно давно я сделал программу которая использовала 2 сторонних библиотеки. Получается, что на выходе у меня было как минимум 3 файла, но я хочу один файл! На тот момент я не особенно озаботился тем, как это сделать и так и осталось там 3 файла.

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

Итак, будем делать так, чтобы можно было внедрить в один файл, любые библиотеки, как свои так и третьих сторон.

Подробнее

Visual Studio Multi-Project Templates

Идея

В одной из прошлых статей я рассказывал уже о том, как создавать шаблоны проектов. Там я рассказывал о нюансах создания шаблонов в VS2008 и VS2010, как настроить данные, файлы и все такое прочее. Это конечно хорошо, но всегда хочется большего.

Если студия может создавать сразу несколько проектов в для одного решения, то значит и мы должны по идее суметь такое же сделать. А уж применений я думаю у нас надется. Можно сразу сделать заготовки для домена, инфраструктуры, сервисов, интерфейса, все это сразу настроить на взаимосвязь и создавать одним щелчком мыши (ну или сколько там надо, чтобы создать один проект).

Итак, будем делать мульти-проектовое (проектное?) решение.

Подробнее

Visual Studio. Заготовки проектов

В последнее время я не просто много, а очень много экспериментирую с кодом, подходами, написаниями каких-то тестовых сценариев и приложений. Результат, конечно, всегда разный, ну да не об этом сегодня пойдет речь. Постепенно начинаешь уставать от настройки стандартных проектов. Для проекта библиотек надо удалить класс, создаваемый там по умолчанию, потому что все равно его будет лень переименовывать. Мне приятно еще перенаправлять весь вывод компиляции в одну папку в корне всего проекта из всех библиотек, а не шариться по папкам ..\bin\Debug\ для каждого составляющего проекта, выгребать оттуда *.dll. Для проектов Test удаление ненужного барахла особенно актуально! Было бы неплохо еще сразу настроить атрибуты для сборки и информацию о ней (Assembly). Ко всему

Хочу, чтобы при создании чего-то нового, выбрал проект – и все у тебя настроено! И общая папка вывода, и нужные значения в AssemblyInfo прописаны, и лишнего ничего не валяется в проекте. Подумал я так и вспомнил, что есть у студии опция «Get online Templates», а раз есть онлайн, то должна быть и оффлайн – для моих собственных шаблонов. Сказано сделано!

В результате я очень доволен, что потратил час времени для настройки всех нужных мне проектов и теперь не отвлекаюсь в процессе, а только радуюсь, как все здорово вышло и что не надо тратить время на тупую работу.

О том, как это сделать в Visual Studio 2008, 2010 и пойдет речь дальше. Так же будет рассмотрено, как удалять, и импортировать готовые шаблоны проектов в студию.

Подробнее