Ostatnimi czasy postanowiłem przyjrzeć się bliżej platformie Mono oraz środowisku Mono Develop. Z racji tego, iż będę miał potrzebę wytworzenia kawałka oprogramowanie na Mac OS postanowiłem skorzystać z tych narzędzi w tymże celu, a żeby lepiej mi to poszło trzeba na początku się z nimi zapoznać.
Uwaga: Jeśli chodzi o jakiekolwiek porównania wydajnościowe to testy były robione na wirtualnej maszynie z Windows 7 z 2 GB RAM.
Pobieranie i instalacja
Mono to tylko około 78 MB natomiast Mono Develop to tylko 20 MB. Pestka do przełknięcia na dzisiejszych łączach. Trzeba było jeszcze doinstalować gtk# i można śmigać. Żadnych problemów w tym miejscu.
Wygląd i działanie
Mono Develop po uruchomieniu prawie jak VS 2008:
Projekty jakie możemy przy jego pomocy tworzyć to: konsola, konsola IL (więcej poniżej), Gtk# oraz biblioteka. Do tego dochodzi ASP.NET no i Moonlight (czyli Monowski odpowiednik SLa) Niestety nie ma projektów WPF. Możemy używać VB.NET (bez Moonlight’a) jak i C#.
W działaniu nie zauważyłem żadnych spowolnień, ani problemów. Wszystko uruchamia się i działa jak należy. InteliSense podpowiada co trzeba i bez zbędnego opóźnienia. Dostępne mamy jakieś namiastki funkcjonalności refaktoringu, ale nie jest tego tyle ile w samym gołym VS. A R# niestety dla MonoDevelop nie ma.
Prócz tego mamy oczywiście projekty do testów jednostkowych a także metryki kodu. Jest dość dobrze jeśli popatrzeć, że jest to całkowicie darmowe środowisko.
Ciekawostki
Mono Develop oferuje dość ciekawy projekt. Po stworzeniu Console IL, możemy sobie kodować w ILu bezpośrednio w IDE. Bardzo fajna funkcjonalność. Może nie do końca każdemu przydatna w codziennej pracy, ale ja jako maniak low-level stuff chętnie z takiej możliwości bym skorzystał w Visual Studio.
Plusy ujemne i minusy dodatnie
Co na plus:
- Projekt IL. Możliwość kodowania w IL w IDE i debugowanie. Duży plus ode mnie!
- Informuje o innym modelu programowania w Gtk#. Nie ma pozycjonowania absolutnego tylko pojemniki – WPF-like
- RegEx toolkit – wiadomo co to 🙂
Co na minus:
- Nadal nie wiem jak zmusić breakpoint aby był warunkowy. Niby opcje są, ale zawsze niedostępne.
- Połowiczne spolszczenia. Często widzimy pomieszanie polskiego z angielskim. Jak dla mnie nie musi być polskiego, ale niech to będzie spójne. Da się to oczywiście zmienić na angielski.
- Brak WPF ;(
Podsumowanie
Mono i Mono Develop to ciekawe alternatywy warte rozważenia i przyjrzenia się im z bliższa. Na razie planów na przejście całkowicie na to środowisko, ale z racji, że prawdopodobnie będę musiał stworzyć coś na MacOS będę miał z nim troszkę do czynienia.
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl