SharpDevelop jest świetnym zintegrowanym środowiskiem programistycznym, jeśli ktoś nie może używać Visual Studio lub wersja Express Edition tego środowiska narzuca zbyt duże ograniczenia. Tym optymistycznym wstępem chciałbym zacząć recenzowanie programu, którego używam od dłuższego czasu do tworzenia mniejszych i większych projektów w C#.
Chociaż na temat jakości programów open source pisze się różne rzeczy, SharpDevelop wypada pozytywnie. W wielu kategoriach nie ustępuje komercyjnym środowiskom, czyli w zasadzie Visual Studio. Pozwala na tworzenie projektów w wielu dostępnych na platformie .NET językach, kompilować pod wersje od 2.0 do 4.0 frameworka .NET włącznie (wersja 4.0 SharpDevelopa), posiada możliwość testów i profilowania kodu, umożliwia korzystanie z zewnętrznych narzędzi (FxCop, StyleCop, klienta SVN) po ich doinstalowaniu. Rzeczy takie jak zarządzanie projektami, wizualne tworzenie interfejsu, debugowanie, kolorowanie składni, uzupełnianie i podpowiadanie nazw to oczywistość warta tylko krótkiego wspomnienia. Zintegrowana pomoc to w zasadzie wyszukiwanie informacji na stronach MSDN Microsoftu.
I faktycznie, okno tworzenia nowego projektu czy też rozwiązania zawiera wiele opcji. Wiele wspieranych języków programowania w ramach CLI/.NET wygląda świetnie i robi spore wrażenie. Pracując dłużej i wchodząc głębiej w samo środowisko programistyczne znajdą się pewne niedociągnięcia.
Sporym rozczarowaniem jest ASP.NET dla którego wsparcie w SharpDevelopie technicznie rzecz biorąc istnieje, ale daleko mu do Visual Web Developer Express. Główną wadą jest tutaj brak możliwości tworzenia stron w trybie wizualnym (WYSIWYG), obsługa procesu uruchamiania i debugowania kodu wewnątrz IDE. Na szczęście PRACE nad tą częścią środowiska ostatnio przyspieszyły (jesień 2010), po pojawieniu się nowego developera. W każdym razie największe braki SD w obecnej wersji wykazuje w związku z ASP.NET.
A teraz drobne słabostki. Polskie tłumaczenie jest niepełne, ale być może się czepiam. System podpowiadania i uzupełnienia nazw (odpowiednik IntelliSense z VS) lubi gubić kontekst. Pomiędzy uruchomieniami programu czasem wracamy do innego pliku źródłowego niż przed startem. Klikając w oknie projektanta w element wizualny (by przejść do edytora kodu) kursor nie jest ustawiany we właściwym miejscu w kodzie. Podczas debugowania często nie działa podgląd chwilowej wartości obiektów (wtedy trzeba odnaleźć miejsce deklaracji). Debugger umożliwia warunkowe wykonywanie breakpointów (warunki można opisywać w C# lub VB.Net, ale… brak dokumentacji jak to robić:). Środowisko sporadycznie się zawiesza.
Plusem, ale z nieco innej strony, jest możliwość wykorzystania fragmentów środowiska w swoich programach. Najlepszym tego przykładem jest kompletny komponent edytora tekstu – AvalonEdit – z wszystkimi jego funkcjami, dostępnymi w SharpDevelopie. Inne elementy mogą być również wykorzystywane, oczywiście z uwzględnieniem zapisów licencji LGPL w danym przypadku.
Na szczęście środowisko jest płynnie rozwijane a niektórzy z jego programistów „dorobili się” na nim tytułów magisterskich i doktorskich. Dlatego też warto instalować buildy nocne, pojawiające się na http://build.sharpdevelop.net/BuildArtefacts/ (oczywiście te z gałęzi stabilnej, ale decyzję pozostawiam pod rozwagę i odwagę testujących).
Dwa zdania podsumowania. Jeśli założymy, że SharpDevelop jest kopią, naśladuje i stara się dogonić Visual Studio, w którejkolwiek z wersji - jest to program kiepski, mimo paru widocznych plusów. Jeśli popatrzeć na stan faktyczny: niezależnie rozwijane środowisko, dostępny kod i komponenty na zasadach open source, wsparcie dla różnorodnych języków i narzędzi .NET - jest to świetny program, warty polecenia i używania.