rus | eng
PDF Печать RSS
Идеи для ваших расширений Visual Studio 2010  

Visual Studio 2010Буквально вчера мне спонтанно пришла в голову идея устроить в твиттере настоящий brainstorm на тему того, какие расширения можно сделать для Visual Studio 2010. Простор для фантазии открыт, поскольку расширения для Visual Studio 2010 стало разрабатывать и распространять намного проще, чем это было ранее. Плюс ко всему сейчас появился портал Visual Studio Gallery, где каждый разработчик может поделиться своими разработками с сообществом (бесплатно или за деньги), который, кстати, также можно просматривать из самой среды разработки при помощи Extension Manager.

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

  • Плагин для генерации кода GoF паттернов с подстановкой имен классов от @Pavlin_Co. Насолько я понял, идея плагина заключается в том, чтобы был какой-то интерактивный диалог, позволяющий генерировать диаграммы и код на основе известных GoF-паттернов.
  • Сортировка строк в редакторе Visual Studio от @psg1234. Плагин сортирует методы/поля/свойства в классе по их имени в алфавитном порядке, а также сортирует классы в одном файле. По мнению автора идеи это позволит достичь максимальной красоты кода.
  • Как развитие идеи предыдущего расширения было предложено сортировать методы по смыслу от @Vseslava. Очень интересная идея, но я как-то слабо себе представляю каким образом это реализовать.
  • Очень интересная, правильная и порой нужная идея расширения двухсторонней синхронизации Task List из Visual Stuidio 2010 с Outlook от @AlexandrYZ. По мне этого функционала иногда действительно не хватает,когда работаешь над проектом.
  • Идея интеграции StyleCop с Visual Studio от @arxont. Здесь идея заключается в том, чтобы проверка стиля написания кода осуществлялась “на лету” в момент написания кода. Наверное, кому-то действительно может быть полезно.
  • Идея резервного сохранения файлов проекта от @ZhenO. Возможно плагин может выйти полезным. Все зависит от конкретной реализации, как мне кажется.
  • Идея обфускации кода прямо из Visual Studio от @ZhenO. Зачем только? :-)
  • Идея плагина для отображения статистики написания кода за сутки/месяц/год (строк, классов, интерфейсов и т.д.) от @ZhenO. В качестве fun разве что?
  • Идея плагина, рисующего блок-схему проекта от @ZhenO. Если я правильно понял эту идею, то это уже реализовано в Visual Studio 2010.
  • Идея мастера построения запросов как SQL Server Management Studio от @ZhenO. Опять таки – этого разве уже нет в Visual Studio. По-моему – есть.
  • Идея локального чата от @halkar. Насколько я понял – плагин в режиме adhoc сам находит другие запущенные экземпляры Visual Studio в сети с установленным плагином и позволяет организовать что-то типа чата между разработчиками. Очень понравилась идея.
  • Развитие предыдущей идеи – whiteboard для разработчиков в режиме adhoc от @chaily. Плагин находит в сети другие экземпляры с Visual Studio и позволяет им создать виртуальную доску и рисовать на ней что-либо. Достойная уважения идея! Кто возьмется реализовать? :-)
  • Идея плагина по определению дублирования в коде от @razonrus. Как утверждает автор, это должен быть не просто поиск одинакового текста, а с учетом различных имен переменных, переносов строк и т.д. Интересная, как мне кажется, идея.
  • Идея запуска юнит-тестов в фоне от @chaily. По замыслу, мы продолжаем спокойно писать код, а в это время среда разработки сама запускает модульные тесты. Таким образом, мы сможем оперативно узнавать о неполадках в нашем коде.
  • Идея скрывать ненужные проекты в Solution от @chaily.
  • Идея автоматического приведения исходных кодов к виду в соответствии со StyleCop от @alek_sys.
  • Идея “веселая ферма” (куда без нее?) от @cleg. "девелопер. дает 100 строк кода каждые 2 часа", "2 бриллиантика за расширение офиса"
  • Идея плагина для уменьшения размера .XAP-файла в приложениях Silverlight от @paulousky. Что интересно, этот плагин уже реализован автором идеи. Достаточно интересное решение, заслуживающее внимания.
  • Идея плагина интегрирующего Stack Overflow в Visual Studio 2010 от @cleg. Как считает автор идеи, можно выделить участок кода, выбрать пункт меню “Ask at S.O.”, добавить описание и быстро задать вопрос на всемирно известном ресурсе. Кстати, как продолжение идеи что-то аналогичное можно реализовать и для форумов MSDN.
  • Идея синхронизатора плагинов Visual Studio 2010 от @dimapasko. По замыслу – при установке плагина на одну Visual Studio, информация синхронизируется через облако и плагин устанавливается и на других экземплярах Visual Studio. Как один из вариантов – синхронизация плагинов дома и на работе, а также между членами команды.
  • Идея микро-MSProject внутри Visual Studio 2010 от @frozen_space. Возможность планировать задачи с иерархиями, процентом выполнения, зависимостями и синхронизацией с TFS.
  • Идея плагина Changes History от @alex_sys. Как пишет автор идеи, это плагин на замену Ctrl+Z со сравнением исходных кодов, откатами изменений и т.п.
  • Идея транзакционного обновления исходных кодов от @cleg. Выбираешь кнопку “начать транзакцию”, пишешь код и в конце можешь либо подтвердить транзакцию, либо полностью отменить. Незнаю как вам, а для меня это уже слишком :-).

Как я и общеал, одному из участников, чья идея мне покажется наиболее интересной, я подарю Visual Studio 2010 Ultimate с подпиской MSDN – следите за обновлениями в моем твиттере. Кроме того, я готов подарить еще одну Visual Studio 2010 Ultimate с подпиской MSDN за самую лучшую реализацию одной из приведенных здесь идей.

Эти и другие идеи вы уже предложили в твиттере. Я буду рад, если в комментариях к этой записи вы будете продолжать оставлять свои идеи расширений для Visual Studio 2010, а также ссылки на расширения, которые вы реализовали.

07.07.2010 05:20 UTC+4
Аватар
07.07.2010 07:17 UTC+4
Идея подсвечивать или выделять куски кода, с указаним хинтом кто именно написал (или кто последний изменил) данный блок. Особенно хорошо будет при совместной работе. При сохранении плагин будет делать дифф с сохраненной копией и вновь появившиеся строки помечать как написанные мной. Похожего результата можно достичь написанием комментария у каждого метода, но здесь будет возможно посмотреть автора каждой строки. Где хранить диффы и логи пока не придумал, возможно как в SVN.
Аватар
07.07.2010 07:24 UTC+4
Как в SVN - это как?
Аватар
07.07.2010 07:34 UTC+4
В скрытых подкаталогах .svn в рабочем каталоге.
Аватар
07.07.2010 07:38 UTC+4
А там разве хранится информация о том, кто изменил ту или иную строчку?
Аватар
07.07.2010 08:24 UTC+4
Мы говорим про идеи? ;) Идея то как раз иметь информацию на уровне строк прямо в окне редактора кто и что менял.
Аватар
07.07.2010 08:31 UTC+4
Идеи, ага. Я просто не совсем представляю как реализовать отслеживание того,кто изменил строчку. Разве что комиты просматривать и понимать последовательность изменений.
Аватар
07.07.2010 10:12 UTC+4
В SVN уже есть Blame :)
Аватар
07.07.2010 10:21 UTC+4
Что это?
Аватар
07.07.2010 11:06 UTC+4
Blame в SVN ? Это как раз то, что предлагает Denisio - показаны изменения файла по коммитам в которых он участвовал, с логином автора. Если непонятно - выберите любой файл в SVN который более-менее изменялся и дайте команду Blame =) - сразу будет понятно PS Визуальная тема неудобная - непонятно где поля ввода текста - такие тонкие у них бордеры. Это у меня одного в Хроме так или это у всех ??
Аватар
07.07.2010 11:14 UTC+4
Уже посмотрел. Спасибо WondeRu
Аватар
07.07.2010 11:44 UTC+4
Вдогонку - если пользоваться новым AnkhSVN ( а новый - чудо как хорош, по сравнению с версией 1.х) - Blame можно делать прямо в студии.
Аватар
07.07.2010 11:45 UTC+4
С VisualSVN тоже работает из под студии.
Аватар
07.07.2010 12:02 UTC+4
AnkhSVN бесплатен =) А далеко не все имеют статусы MVP или желание потратиться на лицензию VisualSVN =). Не сочтите за рекламу AnkhSVN =).
Аватар
07.07.2010 12:26 UTC+4
Такое уже есть в TFS Power Toys... Показывает изменения прямо в студии, прямо в файле кторый редачиш.
Аватар
07.07.2010 12:38 UTC+4
Может поделишся ссылкой, где про это можно почитать?
Аватар
07.07.2010 12:43 UTC+4
AlexandrYZ ответил, я бы так с лету и не нашел ссылку ;)... Я ТФСом уже два года не пользуюсь.
Аватар
07.07.2010 12:51 UTC+4
Где ответил?
Аватар
07.07.2010 13:01 UTC+4
>> в TFS подобная функциональность называется Annotate http://bit.ly/a2A2cA
Аватар
07.07.2010 12:28 UTC+4
в TFS подобная функциональность называется Annotate http://bit.ly/a2A2cA
Аватар
07.07.2010 11:09 UTC+4
"Идея плагина интегрирующего Stack Overflow в Visual Studio 2010 от @cleg. Как считает автор идеи, можно выделить участок кода, выбрать пункт меню “Ask at S.O.”, добавить описание и быстро задать вопрос на всемирно известном ресурсе. Кстати, как продолжение идеи что-то аналогичное можно реализовать и для форумов MSDN." А не проще ли это сделать обычным макросом в студии ? У меня так сделан поиск по MSDN и в Google -выделяется элемент на котором стоит курсор и отправляется в виде запроса к гуглю - по сути MSDN-Online в студии =)
Аватар
07.07.2010 11:18 UTC+4
Может расскажете поподробнее и выложите в публичный доступ?
Аватар
07.07.2010 11:51 UTC+4
Отправил на почту. Если понравится - опубликуйте, авторство макросов - не мое, не претендую, давно надергано по кускам из форумов. Я как-то не особо люблю писать на такие темы.
Аватар
07.07.2010 11:23 UTC+4
Сохранение проектов "где-нибудь" уже реализовано в GbackupSolution http://visualstudiogallery.msdn.microsoft.com/ru-RU/da1a7917-684d-46b1-bb2f-96a42abf84e3 "Идея скрывать ненужные проекты в Solution от @chaily." Есть фолдеры в солюшене -достаточно легко навести порядок разложив все по полочкам. Если не подходит такое решение - где-то уже проскакивал плагин с реализацией такого решения - типа кастом солюшен - чтобы очень большие решения можно было не открывать целиком а законченную логически часть ( т.е. только все необходимое для билда Win-сервиса например, без вебсайтов в проекте). Правда сходу не удалось в галерее найти этот плагинчик.
Аватар
07.07.2010 12:29 UTC+4
Мой твит выложен не полностью, я знаю про кастом солюшены. Реально это плохая идея. Так как например не работает рефакторинг. Папки тоже не работают, так как это видят другие программисты. А чисто визуальная скрывалка проектов, так чтобы настройки билы тока юзерскими.. вполне решала бы проблему в проектах... с четырмя десятками проектов.
Аватар
07.07.2010 12:57 UTC+4
Поищите в Visual Studio gallery - у меня устойчивое ощущение, что я встречал такой Add-in, там еще были восторженные комменты людей работающих с 50-100 проектами в одном солюшене... Если сам найду - обязательно вышлю ссылку.
Аватар
07.07.2010 13:00 UTC+4
Если не сложно, то оставьте ее здесь, в комменатриях.
Аватар
07.07.2010 14:13 UTC+4
Нашел о чем говорил, но после внимательного изучения понял что не совсем то, что запрашивалось http://visualstudiogallery.msdn.microsoft.com/en-us/66350dbe-ed01-4120-bea2-5564eff7b0b2 Сорри, что ввел в заблуждение...
Аватар
07.07.2010 11:40 UTC+4
Хочу от себя добавить идей (может что выиграю ;) ) 1. Плагин для сохранения\восстановления расположения окошек. Решает проблему работы в терминале - если на рабочем месте 2-3 монитора и студия их успешно использует, то при логине терминалом с одномониторной станции - все сваливается на один монитор - и получается каша. Работать нереально - надо сначала все прицепить в основное окно, сделать скрываемыми и docked. Плагин умеет сохранять текущее положение в одну из конфигураций и загружать конфигурацию по выполнению макроса\ нажатию кнопочки на custom тулбаре. Принцип работы с ним следующий - разработчик один раз для каждого набора мониторов ( или можно поставлять некие дефолтные конфигурации для 1-2-3 мониторных режимов) настраивает под себя студию и сохраняет layout в выбранную конфигурацию. Далее при запуске студии он просто нажимает кнопку выбранной конфигурации и все положения окон восстанавливаются из настроек. Или если есть возможность у студии определять количество рабочих мониторов в системе и их разрешение - при запуске студии автоматически загружается одна из настроек. NB Я если честно уже начал немного ковыряться с этим плагином, делаю для себя т.к. часто захожу терминалом на рабочую машину и "получаю" этими "детскими граблями". 2. На тему "Идея синхронизатора плагинов Visual Studio 2010 от @dimapasko." - мне идея синхронизации плагинов не нравится, если честно, потому как набор плагинов у меня на разных машинах - разный. Но сам давно размышляю об идее синхронизации настроек студий. Причем не полной синхронизации, а кастомной, например цветовые темы, Coding Style, настройки сравнения DB или включенные toolbar'ы. Вся инфраструктура для этого существует, а именно - экспорт\импорт конфигурации из студии в файл. Плагин должен уметь мониторить изменения определенных наборов настроек ( диалог настроек - как при экспорте\импорте) и при закрытии студии - экспортировать настройки в отдельный указанный файл. Сам этот файл можно положить в Live Mesh\Live Sync\Dropbox или любой другой синхронизатор с хранилищем в интернете. Соответственно при запуске студии плагин должен подхватывать указанный файл и импортировать (с запросом подтверждения у пользователя?) отличающиеся настройки.
Аватар
07.07.2010 11:43 UTC+4
Да, очень интересно. Не хотите попробовать реализовать плагин с синхронизацией, например?
Аватар
07.07.2010 12:00 UTC+4
Мне если честно более полезен был бы первый =). А сразу несколько вещей пилить - это еще больше демотивирует т.к. куча всего сразу - просто "страшно". Зная себя - лучше буду "пилить последовательно" Хотя синхронизация тоже была бы удобна, она не настолько критична. И третий плагин который пришел в голову только что: Система мониторинга - существует куча систем, мониторящих работоспособность сервисов. Почти у всех этих систем есть уведомления по email\вебморда и API. Вот задумался о плагине который умеет употреблять некий API (через прослойку или as-is через конфигурирование связей методов api с интерфейсом "употребляемым" плагином) и уведомлять разработчика в студии в виде некоторых pop-up окошек или нотификаций об изменении статусов, полученных через API. NB Ранее была идея сделать такой gadget для Win7 - но эта идея ИМХО плоха т.к. несмотря на возможность задания такого режима (он задекларирован у гаджетов) - гаджеты не умеют находиться поверх всех окон или этот режим регулярно глючит - даже стандартные часы из Win7 поставки невозможно держать "поверх всех окон" - при потере фокуса они регулярно прячутся за окнами студии.
Аватар
07.07.2010 12:38 UTC+4
>> 1. Плагин для сохранения\восстановления расположения окошек. Я для этого пользуюсь Import/Export Settings, там есть All Settings/General Settings/Windows Layouts.. Делаеш пару профилей и вуаля, перключалка готова. >> Но сам давно размышляю об идее синхронизации настроек студий. Угу, я тож предлагал это как идею (http://twitter.com/chaliy/statuses/17858866601), но @sverugn чето проигнорировал... У меня сейчас настроено так чтобы все что можно (кастомныей проекты, кастомные айтемы, снипеты, експортированные сеттинги для разных конфигруаций) ложилось в одну папку. А папка уже синхронизируется при помощи Live Sync(до этого Live Mesh). Но если бы это было более удлобно, было бы более удобно ;).
Аватар
07.07.2010 12:52 UTC+4
Ну да, так можно, но только неудобно каждый раз импортировать\экспортировать настройки. Собственно вся синхронизация нужна именно автоматическая. PS а почему перешли на Live Sync - он же ужасен по сравнению с Мешем ?
Аватар
07.07.2010 13:04 UTC+4
Live Mesh больше не сущетсвует, его заменили Live Sync. Вам надо попробовать бету http://explore.live.com/windows-live-essentials-beta. Там Live Sync уже вполне себе ничего. Мне иногда даже больше нравится чем Live Mesh.
Аватар
07.07.2010 13:58 UTC+4
Offtopic: Странно =) а я все им пользуюсь. Команды не существует, вернее перешла в Live Sync - продукт пока работает. Live Sync - для меня ужасен. Я его поставил на второй день после выхода и через 30 минут снес.
Аватар
07.07.2010 14:16 UTC+4
Угу, у меня пока тож на домашнем сервере Live Mesh висит и чето синкает ;). А что тебе в новом Live Sync не понравилось?
Аватар
07.07.2010 15:00 UTC+4
Offtopic это тут (если интересно - в почту) Всё. И это к сожалению не шутка... Для начала - мало места 2Гб против 5 у меша - это вообще ничто для современного интернета у меня почтовый аккаунт в 3.5 раз больше. Нету Live Desktop (то что сделано вместо него - какая-то школьная недоподелка учеников 5 класса, как впрочем и весь дизайн их (spaces).live.com и иже с ним. Хотя на вкус и цвет - все фломастеры разные). Нету Remote Desktop - правда на мсдн мне пояснили что оно где-то там в глубине есть, просто не очевидно где. Но я его не нашел сходу и не найдут его 99% пользователей, особенно не-гиков. И это принципиальный момент - я ставил меш друзьям-чайникам - все понятно с первого раза - где, куда тыкать как добавлять, как синхронизировать и все такое. Было контекстное меню, у лайв синка пока нету. Надо заново добавлять все папки, другое хранилище. Я еще не видел резолвинга конфликтов у Live Sync (не успел =) ), конечно хуже чем у меша там сложно что-то сделать... Хотя в Лайв Синке - очень очень стараются... В общем вместо работающего инструмента "поставил и забыл" предлагают месиво от маркетингового отдела с рюшечками и "хромом", которое достойно только стоять на reception в красивой коробке за стеклянной витриной, но ни в коем случае не ставится на машины и что-то делать. Точно также я не в жизнь не буду пользоваться текущим Live Storage у офиса - ну скажите, зачем мне 3!!! (с Мешем - 4) разных хранилища под документы ? Хочется одного, общего, на 25 гигов (или даже меньше, но хотя бы 5-7), но чтобы синхронизированный в лайв синке документ можно было открыть в онлайн офисе или экселе, или зашарить через SkyDrive. Это такой простой и очевидный повседневный сценарий что я удивлен почему они до него не додумались. По моим ощущениям текущие сценарии взаимодействия и архитектуру хранилищ придумали и продвигают какие-то умственно отсталые пациенты, с глубокими повреждениями всех отделов головного мозга. И такая волна гнева поднимается каждый раз когда понимаю, что так или иначе лайв меш закроют и поставят перед выбором - пользоваться текущим дибилизмом или искать что-то другое. Я скорей всего уйду полностью с Live платформы - есть много вариантов с вменяемыми разработчиками, которые способны не испортить то, что уже хорошо работало. Например Dropbox, без бреда с запрещенными к синхронизации расширениями файлов ( читали FAQ меша ? =)) ), синхронизацией в виде диффов (вместо полной пересылки файлов) и 30-дневной VCS изменений (а в платной - бесконечно долго). PS Еще момент - меш был бетой и поэтому для него достаточно регулярно выходили обновления. Для Live Essentials - такого вряд ли будет, т.е. с багами синка будем жить долго и продолжительно, до следующего релиза или сервис-пака.
Аватар
07.07.2010 15:23 UTC+4
Там фишка в том что новый Live Sync это реально Live Mesh.. Тоесть Live Mesh припедалили новую морду. В этом можно удостоверится если пойти поглядеть на бинарники. Там все Live Mesh. По поводу ремот десктопа.. Хз.. ИМХО таб Remote на главное страничке полне себе заметна. Хотя да, реально можно было бы и лучше ее выделить. Dropbox - 2GB.. В тоже время Live Sync позволяет синкать любые обьемы данных (у меня синкаеться 4ГБ фоток) между компами. Про то что они не показывают файло в skydrive это конешно гон.. хотя новый интерфейс вполне себе. Мне нравится больше Live Mesh-их закосов под окна. Непонимаю я этого в вебе.
Аватар
07.07.2010 15:54 UTC+4
Что именно гон ? И что подразумевается под "гоном"?
Аватар
07.07.2010 11:49 UTC+4
>Очень интересная, правильная и порой нужная идея расширения двухсторонней синхронизации Task List из Visual Stuidio 2010 с Outlook от @AlexandrYZ. По мне этого функционала иногда действительно не хватает,когда работаешь над проектом. Чисто из спортивного интереса мог бы реализовать данный функционал.
Аватар
07.07.2010 11:53 UTC+4
Отлично! :-) Жду с нетерпением.
Аватар
07.07.2010 14:18 UTC+4
>> Идея запуска юнит-тестов в фоне от @chaily. По замыслу, мы продолжаем спокойно писать код, а в это время среда разработки сама запускает модульные тесты. Таким образом, мы сможем оперативно узнавать о неполадках в нашем коде. @butaji подсказал поглядеть Continuous Testing for Visual Studio 2010 - http://visualstudiogallery.msdn.microsoft.com/en-us/c074d3c6-71e2-4628-9e7c-7690e706aef4?SRC=VSIDE
Идея: заюзать pivot view для визуализации информации о коде проекта - число файлов в проекте, число строк/классов/методов в файле и т.д.
Идея: написать компрессор xaml, что бы он убирал форматирование xaml кода для уменьшения размера сборок
Аватар
08.07.2010 04:27 UTC+4
Форматирование что имеется в виду? Отступы/табуляция?
Да, надо превращать xaml в одну срочку без пробелов и табуляций. Но открытый опрос - на каком этапе? не хотелось бы портить xaml файлы, что бы потом у дизайнеров и программистов возникали проблемы. надо на этапе компиляции. Или после компиляции - но тогда уже это не будет плагином для студии.
Аватар
08.07.2010 11:27 UTC+4
А как это повлияет на размер сборки?
положительно. xaml хранится как ресурс в сборке. javascript уменьшают, html уменьшают, тоже надо делать и с xaml. тем более, что стили тоже храняться как xaml
Аватар
08.07.2010 11:55 UTC+4
Он же компилируется в BAML
ага, недоответил )) baml это для wpf для silverlight сборок все ресурсы храняться в нескомпилированном виде
Аватар
08.07.2010 12:38 UTC+4
А. Тогда понятно.
Я думаю, что надо установить временную планку для написания плагинов, а то через год конкурс всё ещё может продолжаться
Аватар
09.07.2010 16:19 UTC+4
Автор первого реализованного плагина, который мне понравится получит VS2010 Ultimate.
Аватар
19.07.2010 09:57 UTC+4
Хорошо бы еще плагин для сортировки атрибутов XAML. В 2008й студии был такой.
Аватар
19.07.2010 10:00 UTC+4
Хорошая идея, спасибо.
Ну что, у меня готова бета версия адд-она, который визуализирует solution через PivotViewer http://www.maxpaulousky.com/blog/archive/2010/08/04/visual-studio-solution-pivot-viewer-add-on-for-vs2010-to-visualize-code-structure.aspx - описание (английский) установить можно через Extension manager (поиск в online gallery по pivotviewer)
Аватар
11.08.2010 10:15 UTC+4
Насколько я знаю такого плагина еще нет. Общая идея добавить проверку грамматики в студию. Очень неприятно бывает наталкиваться на опечатки.

Сергей Звездин

Сергей Звездин

Сергей Звездин: занимается разработкой программного обеспечения на платформе Microsoft .NET. Является обладателем статусов Microsoft MVP и Microsoft Regional Director.

Читать дальше →

Записи

  • Архив
  • Обсуждаемые

Twitter

Most Valuable Professional (MVP) Microsoft Regional Director