среда, 13 июня 2007 г.

Экономим 800$ на Visual Studio

Знаете, сколько стоит Visual Studio 2005 Professional? По официальному прайсу Microsoft 799$. В SoftLine - 825$. Конечно, для студентов, чьи ВУЗы подписаны на MSDNAA, эта проблема неактуальна - можно получить все нахаляву. Ну а что делать простым бедным девелоперам, которые желают жить честно, а денег на такую роскошь нет? Если пойдет глобальная борьба с пиратством, то хрен я им отдам, а не 800 баксов! Уж лучше буду в блокноте код писать или вообще постригусь в монахи, выучу кунг-фу и буду писать на C++ под Линукс в командной строке.
Вот тут FallenGameR откопал бесплатный аналог студии, SharpDevelop, дав надежду всему прогрессивному человечеству.
Чтобы сразу было понятно: SharpDevelop (он же #develop) - это практически полный аналог Visual Studio. В чем-то превосходит, в чем-то недотягивает, но в целом - брат-близнец. Не слишком опытный девелопер вряд ли даже отличит их по внешнему виду: такие же dockable-панели, такие же вкладки редактора, дерево проектов и т.п. Но обо всем по порядку.
Sharp DeveloperРедактор кода сразу порадовал включенными по умолчанию номерами строк и довольно симпатичной, хотя и несколько необычной подсветкой. Вместо боковой полосы, где в VS подсвечивались внесенные в файл изменения, располагаются иконки, отмечающие классы, методы, свойства и прочие сущности; иконки, разумеется, разные. Хотя эта фича, безусловно, удобная, но полоска изменений тоже была бы весьма кстати. Не обошелся редактор кода и без таких привычных уже возможностей, как сворачивание блоков кода (folding) и местный аналог IntelliSense. Последний на мой взгляд даже превосходит оригинал, отображая, например, в описании метода при наведении курсора еще и описания выбрасываемых исключений (не просто имена классов исключений, а именно описания). Еще не могу не отметить работу с парными скобками а-ля Eclipse, что меня очень порадовало; при вводе открывающей скобки автоматически ставится закрывающая, и автоматически ставится отступ.
Поддерживаются как шаблоны кода (аналог snippets), так и шаблоны файлов. С их помощью можно определить содержимое только что созданного cs-файла, в который можно включить, например, какие-то определенные комментарии или сразу добавлять к классу конструктор.
Неплохо сделано редактирование XML: как в виде текста, так и в виде дерева. И даже XPath работают.
Присутствует также и визуальный редактор форм, правда, только для windows-based приложений, aspx-страницы так редактировать не получится. Дебаггер также не подкачал и практически ни в чем не уступает "старшему брату".
Работа с проектами организована просто блестяще: нормально открываются проекты VS 2005 и VS 2003, также поддерживается собственный формат проектов. Проекты можно конвертировать из одного формата в другой. Специально для любителей модерновых технологий: поддерживаются проекты .NET 2.0, WPF из .NET 3.0, оконные приложения Compact Framework и Mono. Все это для C# и VB.NET. Страдающие от избытка времени, а также дзенствующие гуру могут даже создать проект ILAsm и писать на MSIL'е.
Ко всему этому SharpDeveloper имеет интеграцию с NUnit и NCover (наконец-то!), то есть поддерживает юнит-тесты и анализ покрытия этих тестов. Есть также встроенная поддержка Subversion, NAnt и Windows Installer (да-да!).
Итого. При разработке Windows-приложений, библиотек классов, web-сервисов и всякой мелочевки SharpDeveloper является достойной заменой Visual Studio, особенно учитывая разницу в цене. На первый взгляд SharpDeveloper даже кажется предпочтительнее, поскольку работает намного (!) быстрее. Но вот для разработки Web-приложений я бы категорически не рекомендовал его использовать: отсутствие встроенного web-сервера, невозможность отладки из IDE, отсутствие визуального редактора страниц... Короче, лучше взять что-нибудь другое.
Скачать дистрибутив смешного (8 Мб) размера можно здесь. Не забудьте, что для работы интегрированных инструментов вроде NCover и Subversion надо эти инструменты поставить отдельно.

13 коммент.:

Анонимный комментирует...

Порадовала строчка про бедных девелоперов :) Шурик, ты где таких нашел?

Flegmatic комментирует...

Ну я например :) Ни в жисть 800 баксов за IDE не отдам. А ты готов? )

Анонимный комментирует...

Аргумент "экономия 800 баксов" не катит, ибо есть VS2005 Express от мс полностью халявная. Вот с ней надо сравнивать функциональность. Смотреть, что кастрировано в экспресс и есть в стандарт или про, и искать эти фичи в ШарпДев.

Flegmatic комментирует...

Ладно, исправлюсь. Вот список того, чего нет в VS Express, и есть в VS Pro и #developer:
- database design tools;
- полноценный редактор XML;
- использование плагинов;
- интеграция с системой контроля версий;
- интеграция с Windows Installer.
Есть также фичи, не характерные даже для VS Pro (только в TS), но имеющиеся в #dev:
- юнит-тестирование;
- анализ покрытия тестов;
- поддержка проектов Mono и WPF;
- поддержка NAnt.
Кроме того, дистрибутив Sharp Developer весит в 10 раз меньше дистрибутива VS Express Edition. Конечно, есть и фичи, которые есть в VS, но нет в SD:
- визуальное проектирование web-страниц;
- интеграция с ClickOnce.

Анонимный комментирует...

интересна не только экономия, меня например очень раздражает ресурсоемкость студии 2005, а как там
с рефакторингом?

Flegmatic комментирует...

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

Анонимный комментирует...

Осталось описать OpenOfficeOrg
Который весит 300 метров в установке, а не гиг как MSO. При этом спокойно открывает вордовские документы 2k3 (по крайней мере все мои принял) и как водится бесплатен.

Ах да, в нем нет этой гребаной панели 2k7, а нормальное меню.

PS. А OpenID у тебя нету авторизации?

Flegmatic комментирует...

Когда-нибудь опишу и OpenOffice. Просто сейчас я им не пользуюсь, поэтому и рассказать ничего не могу.

Расскажи мне в асе, что такое OpenID, и я че-нить придумаю.

Анонимный комментирует...

Прочитал тут, что Sharp Develop 2.2 поддерживает разработку для Compact Framework 2.0, закачал. Прога запустилась, но после создания нового Smart Device Application выскочил алерт что, мол, нету файла Microsoft.CompactFramework.CSharp.targets . Посмотрел, и правда его там нет. А ведь большой Framework 2.0 стоит, и CF 2.0 стоит тоже. Что я не так сделал, подскажите!

Анонимный комментирует...

Скорее всего вы не поставили SDK.

А что касается #develop, то увы, до удобства студии в т.ч. экспресс.

Разглагольствования flegmatic на тему что есть в нем, но нет в студии, стоит отнести на плохое знание обоих продуктов. Особенно порадовали перлы "полноценный редактор XML" (Вы им пользовались в #develop - попробуйте, будете не очень приятно удивлены), "поддержка WPF" (хоть бы постеснялись писать подобную глупость: в #dev ее обещают только к 3.0, а в студии есть уже сейчас, нужно только небольшое расширение скачать).

Дальше и коментировать не интересно. Советую еще раз пересмотреть оба продукта - узнаете много нового.

P.S. Да, разработку для Compact Framevork #develop не поддерживает, увы, только компиляцию, которая даром никому не нужна.

Flegmatic комментирует...

Хмммм...
1. Редактор XML меня вполне устроил. Да, я им пользовался.
2. WPF поддерживается, есть такой тип проекта (#dev 2.1). Визуального редактора нет, но можно и без него жить.

"Поддержка разработки" для вас = "наличие визуального редактора"?

mult комментирует...

Насколько я знаю, есть бесплатная версия Visual Studio Express - ее вполне хватает для работы

Naruto комментирует...

Согласен с выше написанным, 800$ для IDE много, на данный момент хватает и бесплатных утилит для разработке, в том числе и Express версия.