Od redakcji: Poniższym artykułem rozpoczynamy zaplanowany na 11 (choć ich liczba może ulec zmianie) odcinków cykl poświęcony Mono i jego wykorzystaniu w praktyce. Mam nadzieję, że przyda się on zarówno wszystkim tym, którzy o Mono jedynie słyszeli i chcą spróbować swoich sił na nowej dla siebie platformie, jak i tym, którzy na nazwę .NET i pochodne reagują alergicznie i nie podchodzą do niczego z nią związanego bez kilku litrów święconej wody. Zapraszam do lektury…

Czym jest Mono?

Wstęp…

Rozpoczynamy cykl artykułów poświęconych technologii Mono. Jako, że jest ona często kojarzona z firmą Microsoft, zdarza się, że zwolennicy otwartych systemów nastawiają się do niej negatywnie. Lecz czy jest to prawidłowe podejście? Na to pytanie powinien odpowiedzieć każdy sobie osobiście, jednakże warto Mono poznać, ponieważ wnosi ono nowe rozwiązania, możliwości i być może przyda się także i Tobie?

No to czym jest to Mono?

Mono jest open sourceową implementacją technologii .NET, która ma pozwolić budować developerom w bardzo szybki sposób aplikacje pracujące pod wieloma systemami operacyjnym. To tak w skrócie…, a zacząć należy od początku.

Początki technologii .NET

Na początku oczywiście była potrzeba i pomysł, który powstał w firmie Microsoft na to, żeby stworzyć nową platformę do rozwijania programów, która będzie remedium na wszystkie problemy związane z pisaniem aplikacji pod Windows (API, które zostało zaprojektowane wiele lat temu, obiekty COM itp.), a także pozwoli walczyć z technologią promowaną przez firmę Sun, czyli z Javą. W ten sposób powstała technologia .NET. Projektanci z firmy Microsoft dokładnie przeanalizowali wszelkie plusy i minusy Javy i stworzyli platformę, która omija wiele błędów swojego konkurenta. Wiele osób dyskutuje na temat tego, czy lepsza jest Java, czy lepszy jest .NET. Nie będziemy się zajmować tym problemem. Myślę, że po przeczytaniu wszystkich artykułów z cyklu każdy sam będzie w stanie sobie na to pytanie odpowiedzieć.

Technologia .NET obejmuje swoim zasięgiem nie tylko platformę programistyczną (tzw framework), lecz także takie elementy jak:

  • Web serwisy

  • Narzędzia, które korzystają z frameworka

  • System Passport

Z założenia .NET firmy Microsoft może pracować pod wieloma systemami operacyjnymi. Jednakże jak do tej pory Microsoft nie zrobił portu swojego dziecka na inne platformy niż Windows. Zrobiono to za to w Mono, które implementuje głównie platformę programistyczną, dołączając także narzędzia i elementy, które nie są dostępne we frameworku Microsoft’u.

Dlaczego powstało Mono?

Liderem projektu Mono jest Miguel de Icaza. Człowiek, który powołał do życia projekt Gnome. Celem tego projektu jest dostarczenie rozwiązań, które pozwolą systemom unixowym na walkę o rynek aplikacji desktopowych. Sercem Gnome jest API dostępne dla wielu języków programowania. Jednakże w trakcie rozwoju, projekt ten napotkał na podobne problemy, które dotykały developerów pracujących z API systemu Windows. Pod Windows były problemy z obiektami COM, pod Gnome z CORBĄ oraz Bonobo. Developerzy związani z Gnome zaczęli szukać nowych rozwiązań, które mogłyby pozwolić zapanować nad API i przyśpieszyć tworzenie oraz pielęgnowanie aplikacji. Po analizie wielu możliwości doszli do wniosku, że warto zainteresować się technologią .NET.

Z pomocą przyszedł sam Microsoft, który zgłosił implementację języka c# (główny język programowania w technologii .NET) oraz technologię CLI (Common Language Infrastructure, która jest podstawą .NET framework) do komisji standaryzacyjnej ECMA, tym samym otworzył furtkę dla implementacji .NET framework opartych o standardy ECMA przez inne firmy. Na tym fakcie bazuje implementacja Mono.

Kto za tym wszystkim stoi?

Jak już wcześniej wspomniałem Mono jest implementacją open sourceową. O sile projektu często stanowi to kto w nim bierze udział. W przypadku Mono, na początku była to firma Ximian, z Miguelem na czele, która to zebrała wokół projektu liczne grono developerów. Po przejęciu Ximiana przez firmę Novell, jest ona obecnie główną firmą, która stoi za projektem. Część programistów pracujących nad Mono jest opłacana przez Novella, dzięki czemu prace posuwają się naprawdę szybko i bezboleśnie. Jest to ważna informacja dla osób zainteresowanych Mono z tego względu, że Novell jest dużym graczem na rynku i decyzja o aktywnym włączeniu się w projekt, a co więcej tworzeniu własnych produktów używając tej technologii daje pewność, że projekt będzie aktywnie rozwijany.

Co wchodzi w skład Mono?

Środowisko to rozwija się bardzo szybko, z dnia na dzień dochodzą do niego nowe elementy, biblioteki i tak będzie działo się cały czas. Jednakże rdzeń projektu jest ustabilizowany i w jego skład wchodzi:

  • Kompilator języka c# (napisany oczywiście w języku c# 🙂

  • VES (Virtual Execution System), w skład którego wchodzi kompilator JIT (Just In Time), odśmiecacz (garbage collector), engine wielowątkowania

  • Implementacja bibliotek klas .NET (praktycznie wszystkich najważniejszych)

  • Debugger

  • Wieloplatformowe biblioteki obsługujące najróżniejsze bazy danych(PostgreSQL,MySQL,DB2,Sysbase,TDS,Oracle,ODBC, Gnome GSA)

  • Biblioteka Mono.Posix , dzięki której można korzystać w Mono z dobrodziejstw Unixa.

  • Rodzina bibliotek Gtk#, dzięki której można korzystać z bibliotek środowiska GNOME

  • Implementacja Windows.Forms (jeszcze nie skończona)

  • MonoDevelop – środowisko programistyczne (RAD)

W Mono brakuje niektórych elementów wchodzących w skład .NET framework Microsoftu. Jedną z najbardziej brakujących części jest pełna obsługa biblioteki Windows.Forms, która odpowiada za tworzenie aplikacji desktopowych dla Windows. Obecnie aplikacje desktopowe, które mają pracować zarówno pod Windows jak i systemami unixowymi należy tworzyć za pomocą Gtk#. Nie ma także skończonego kompilatora dla języka Visual Basic.

Czy coś już na tym działa?

Działa, działa i to coraz więcej. Najwięcej aplikacji powstaje poprzez portowanie programów napisanych dla frameworka firmy Microsoft. Jednym z przykładów jest MonoDevelop, który powstał poprzez przeniesienie programu SharpDevelop na systemy Unixowe, program do czytania RSS o nazwie Blam!, program do zarządzania fotografiami F-Spot. Jest wiele portów, które korzystają z dobrodziejstw Asp.Net, należy do nich zaliczyć np. port portalu Rainbow, mojoPortal, galeria nGallery i wiele wiele innych.

Także Novell rozwija coraz więcej aplikacji korzystając z Mono. Należy do nich zaliczyć IFolder, DashBoard czy Beagle. Oczywiście aplikacji jest dużo dużo więcej, a jeszcze więcej powstaje, dlatego wymienianie ich nie ma sensu. Faktem jest to, że Mono zostało zauważone przez osoby tworzące oprogramowanie. Jeszcze większe zainteresowanie spodziewane jest wraz z ukończeniem implementacji Windows.Forms, co pozwoli na bardzo proste przenoszenie aplikacji z Windows na inne systemy, które są wspierane przez Mono.

Beagle pod GNOME Beagle pod Windows 🙂
MonoDevelop pod MacOs X

Co dalej ?

W następnym artykule napiszemy w jaki sposób zainstalować Mono zarówno na Linuksie, jak i pod Windows, oraz zaczniemy poznawać o środowisko poprzez przykłady tworzenia aplikacji. W kolejnych artykułach z serii będziemy zajmować się poszczególnymi składnikami wchodzącymi w skład środowiska Mono.

Przydatne linki:

http://www.mono-project.com – strona projektu Mono

http://www.go-mono.com/monologue – Blog developerów skupionych wokół projektu

http://www.gotmono.net – strona społeczności skupionej wokół projektu Mono

http://www.go-mono.pl – Mono po Polsku 🙂

A autorze:

Tomasz Soroka jest programistą tworzącym aplikacje w najnowszych technologiach, do których zalicza się .NET oraz oczywiście Mono. Można go złapać pisząc na adres tomek@possible.pl
Archiwalny news dodany przez użytkownika: Tomek Soroka.
Kliknij tutaj by zobaczyć archiwalne komentarze.

Oznaczone jako → 
Share →