Набор полезных утилит и библиотек мира .NET

    Продолжаю серию постов о библиотеках и прогрмаммах этого мира. Крайне советую всем не знакомым посмотреть в сторону языка программирования Nemerle. У него есть все шансы стать таким же мейнстримом, как C#, F#, VB.NET. Тут все зависит от вас, как говорится. Вы задаете мейнстрим, а не корпорации. Итак, приступим.

    SharpDevelop



    Это прекрасная IDE для работы в проектах .NET. Скоро будет добавлена поддержка C\C++. Сейчас она есть, но частичная. IDE полностью бесплатна, поддерживает на данный момент C#/VB.NET/IronRuby/IronPython/F#/Nemerle(надо доустановить плагин)/ Boo. Среди типов проектов — абсолютно любые, включая ASP.NET, WPF, WCF с визуальными редакторами, подсказками. Есть встроенный рефакторинг, имеющий пока что малую часть функционала ReSharper. Вместе с плагином ThemeTool превращается в полноценную Visual Studio 2010 визуально (см. скриншот). Это то, что должен попробовать каждый разработчик .NET и иметь при себе. Ведь в отличии от Visual Studio инсталлятор этой программы занимает всего 20 мегабайт.

    AvalonDock



    Эта библиотека предназначена для создания «докируемых» интерфейсов. Используется в SharpDevelop. Полнофункциональна, бесплатна. Поскольку это WPF, то поддерживает смену визуальных тем автоматически.

    Сайт проекта: avalondock.codeplex.com

    NRefactory



    Библиотека для построения AST дерева по текстовому представлению. Умеет парсить C#, VB.NET. Позволяет с легкостью писать редакторы кода с поддержкой рефакторинга.

    Сайт проекта: github.com/icsharpcode/NRefactory

    SharpSVN



    Позволяет программно манипулировать SVN сервером. Позволяет, как пример, делать аддоны к IDE, или писать системы автосборки.

    Сайт проекта: sharpsvn.open.collab.net

    Nemerle



    Это тот проект, который я НАСТОЯТЕЛЬНО рекомендую скачать на выходных и провозиться до утра понедельника. Это великолепный язык программирования для платформы .NET позволит вам писать как в Объектно-ориентированном стиле, так и в функциональном, меняя при этом AST программы во время компиляции, ввести новые языковые конструкции (async/await был добавлен в язык человеком, который до того Nemerle не знал всего за неделю), писать парсеры быстро и без напряга. В общем, я настоятельно агитирую изучить его:

    Сайт проекта: nemerle.org
    Видео презентация языка: Аннотация со списком видео, Часть 1, Часть 2, Часть 3
    Видео презентация парсера, основанного на языке:
    Nemerle.Peg — .NET генератор парсеров шаговой доступности
    Support the author
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 45

      +1
      Если добавили Nemerle, то почему бы не добавить и Boo?
        0
        Я с ним не работал
        +4
        За Sharpdevelop отдельный плюс! Среда незаслуженно обделенная вниманием, на мой взгляд.
          +1
          И как продолжатель — Monodevelop
            0
            Вниманием — не настолько уж и обделенная. Популярностью — да, но тут как раз вполне заслуженно (если можно так сказать :)
              0
              Мне кажется, что Sharpdevelop обделен вниманием потому, что в коммерческих проектах стоимость VS (которая всё же существенно круче) не имеет значения, а в учебных — есть VS Express. Вот разве что для Opensource-разработки Sharpdevelop удобен и логичен, но не так уж и много Opensource-проектов на С#.
                +2
                Для учебных целей, как правило, учреждение (школа, колледж, университет и др.) обеспечивает лицензионным копиями своих студентов на время обучения.
                  +1
                  MSDN AA рулит в этом плане
              0
              AvalonDock страшная штука. Пришлось основательно допиливать напильником. Автор умудрился нарушить базовую концепцию WPF HeaderTemplate/ContentTemplate… Странная иерархия классов, много мелких шероховатостей, классический макаронный код. В общем, у автора было мало опыта. Так что однозначно стоит подождать версии 2.0.
                0
                Но бесплатных альтернатив пока все же нету
                  0
                  Нету. Но 2.0 автор обещает скоро.
                  0
                  Ха, именно поэтому не стал использовать эту библиотеку 2 года назад. Неужели до сих пор ничего не исправили?
                    0
                    Не знаю что там за 3 минорных версии исправили, но дела там так себе. Судя по моим наблюдениям, дело местами дошло до костылей костылей…
                  +3
                  Nemerle — странная вещь. Вроде, полноценный язык программирования, вроде, какое-никакое сообщество (особенно русскоязычное), вроде, интересные фичи. Однако, на мой взгляд, Немерле похож на швейцарский нож: им можно делать все, что душе угодно, но если вы хотите просто вкрутить шуруп лучше воспользоваться обыкновенной отверткой.

                  Поясню: метапрограммирование конечно хорошо, и замечательно когда можно расширить сам язык, ввести новые конструкции и вообще изменить язык до неузноваемости. Но на практике… пффф… с ужасом представляю себе как мне приходится разобрать сначала нововведенный синтаксический сахар (читай новый ЯП) и только потом приступить непосредственно к выполнению своей задачи.
                    +1
                    Ну никто не заставляет вас вводить новые языковые конструкции :) В поставляемых библиотеках их и так уже много. Один Nemerle.Peg чего стоит.
                      0
                      Ха, прямо в точку. Это как писать фреймворк для каждой мало-мальской задачи. Такое же ощущение. Хотя потенциал у Nemerle есть, причем очень даже, воспринимается он как экспериментальная нанотехнология, для которой «пока не время». На практике, когда нужно решать задачи — берется «обыкновенная отвертка».
                        +1
                        У него та же судьба, что и у лиспа — ектерпрайзу он не нужен.
                        +8
                        SharpDevelop конечно же пробовался как альтернатива VS, причем по одной простой причине — студия очень большая, тяжеловесная и тянет с собой кучу всего не самого необходимого. Однако в итоге, на практике, VS2010 + ReSharper по сравнению с SharpDevelop как космический корабль по сравнению с мопедом по производительности, удобству рефакторинга, дебаггинга и количеству готовых расширений/фич. Так что, тут просто никуда не денешься.
                          0
                          а если добавить Power Tools, то вообще — сказка )
                            0
                            Ну, это, как бы, само собой :) Кстати, не могу теперь работать без продвинутого скроллбара, где текст в уменьшенном виде.
                            • UFO just landed and posted this here
                                0
                                Productivity Power Tools, Enhanced Scrollbar.
                                • UFO just landed and posted this here
                                    0
                                    Или наоборот — не включили :) Он отрублен по-умолчанию вроде.
                              0
                              Power Tools имеет проблемы совместимости с Решарпером, так что либо либо.
                                0
                                хм… у меня стоит ReSharper 6.1 + Power Tools, особых проблем не замечал. хотя IntelliSense я оставил от студии.
                                  0
                                  Речь о Productivity Power Tools? Вроде никаких косяков не было из за Решарпера (начиная с 5.0 и до 6.1). Правда, я не все фичи Power Tools юзаю. А вот ReSharper по полной программе, и нормалек вроде.
                                0
                                Да, только не стоит забывать про стоимость каждого из решений. По соотношению цена/качество #develop офигенен!
                                  0
                                  По соотношению цена/качество любая бесплатная штука будет «офигеннее» платной.

                                  Есть пара «но»:
                                  — Во-первых, если работать профессионально, то VS2010 Pro (как минимум) и ReSharper окупают себя с лихвой. Здесь более важно качество в целом, нежели относительно цены;
                                  — Во-вторых, есть Express-версии. Хотя тут особо не разгуляешься — без поддержки расширений нельзя поставить любимый Решарпер.
                                    0
                                    У меня есть стойкое мнение что люди ругают #develop, не имея никакого мало мальски богатого опыта его использования. Я его использую 50/50. Да, там не все рюшечки работают. Но как правило они не так и важны. Мне автоконвертация в LINQ, типов циклов, и прочие мелочи вообще не нужны. Просто, иногда, приятны.
                                  +3
                                  Чисто субъективно, по удобству работы и функциональностям Visual Studio намного интереснее.

                                  Насчет Nemerle, игрался с ним пару лет назад, когда версия была 0.9.*. Поигрался и бросил, вроде интересный, можно многое, но не нашел применения.

                                  Сейчас разрабатываю под WP7 приложения, я так на немерле нельзя еще писать полноценные приложения?
                                  Кстати, по этому же причине в сторону ШарпДевелоп не смотрю пока.

                                    +3
                                    Вам бы стоило добавить слово «бесплатных» в название статьи.
                                      0
                                      А вот хороший MVP Framework для C#/WinForms никто не знает? Есть несколько проектов на codeproject и подобных, но ни один не соответствует полностью моим требованиям (да и фрэймворками большинство можно назвать лишь с натяжкой).
                                      Нужно следующее:
                                      1. Реализация по схеме слабой связности (сборка View имеет ссылку на Presenter, но Presenter ссылки на View не имеет; взаимодействие в направлении View->Presenter осуществляется только через события/делегаты; в обратном направлении через интерфейс IView, который описан в презентере и который наследует View)
                                      2. Соответствие конкретного View конкретному Pressenter описывается декларативно (атрибуты, файл конфигурации и т.п.)
                                      3. Создание и инициализация View (и соответствующего ему Presenter) осуществляется неким менеджером или фабрикой автоматически на основании информации из п.2
                                      4. Последнее по порядку, но не по значению: View может быть как контролом, так и формой и код инициализации должен уметь работать в обоих случаях.
                                        +1
                                        А почему именно WinForms? Может пора уже перейти на WPF?
                                          0
                                          Мы используем компоненты DevExpress. Возможно, сейчас всё сильно лучше, но раньше их WPF варианты уступали WinForms по возможностям.
                                            0
                                            DevExpress наверное единственное, что ещё держит людей на WinForms-ах.
                                              0
                                              Мне тут предлагали работать в проекте, который до сих пор содержат в VS2005/.Net2.0 (и не планируют миграцию). А Вы говорите WinForms…
                                                0
                                                Нужда в DevExpress и прочих тулкитах в WPF + MVVM на порядки ниже, чем в WinForms
                                          +1
                                          SharpDevelop удобен, когда нужно переводить код между языками — есть функция конвертации. Не идеален, но необходим когда кода много.
                                          • UFO just landed and posted this here
                                              0
                                              Scala тоже вроде под .NET погонять можно: www.scala-lang.org/node/10299
                                                +1
                                                DocPanel — sourceforge.net/projects/dockpanelsuite/ (Weifeng Luo)
                                                Внутри особо не копался, одно точно, легкий, работает нормально

                                                SharpDevelop — согласен, менее наворочен чем VS, но и ресурсов кушает меньше, если надо что-то быстро набросать на WinForms — оптимальный вариант.

                                                m_a_d14 апреля 2012, 14:13
                                                Мне тут предлагали работать в проекте, который до сих пор содержат в VS2005/.Net2.0 (и не планируют миграцию). А Вы говорите WinForms…

                                                ПО должно эффективно решать поставленные задачи, гнаться за новизной нет смысла.
                                                  0
                                                  Насчет последнего согласен. Всегда будет что-то сверх новое, модное, местами не удобное, зато «mainstream». Однако, ПО должно эффективно решать поставленную задачу, а не использовать никому из конечных пользователей не нужные фреймворки.
                                                    0
                                                    Расскажите как обновлять ПО в риск-критикал системах вроде банковских серверов, а мы послушаем…
                                                      0
                                                      Что-то вы немного не в тему ответили ) Если определенные задачи не могут быть решены текущими средствами, значит надо менять средства на более совершенные. Но использовать что-то из ряда вон выходящее для задач, которые этого никогда не требовали и не будут, я не вижу смысла.

                                                Only users with full accounts can post comments. Log in, please.