Korzystanie z innych projektów

Mój projekt nie jest wielką innowacją. Istnieje już całkiem sporo narzędzi do pisania tekstu, ale dzięki temu mam na czym się wzorować. Jest MS Office, OpenOffice, AbiWord, WPS Office i wiele innych.

Skoro istnieją aplikacje podobne do mojej to czemu nie miałbym trochę z tego skorzystać? Korzystając z dobrodziejstw projektów open-source’owych, mogę zobaczyć jak dana funkcjonalność została zaimplementowana.

Libre Office

Libre Office jest już dość dojrzałym projektem. Zaczął jako fork OpenOffice’a, i mocno się rozwinął. Obecnie OpenOffice jest dalej rozwijany przez Apache i różni się od LibreOffice’a przede wszystkim wyglądem i licencją.

Jest to duży projekt, co ilustruje poniższy graf (kliknij aby zobaczyć całość) (podziękowania dla mrvaldes) LibreOffice module graph

Wiele z tych modułów zapewnia funkcjonalność dostępną już w .NETcie, więc teoretycznie mam trochę mniej pracy. Niemniej jednak czytanie kodu źródłowego LibreOffice’a jest dość ciężkie. Więc będę raczej korzystał z niego jako bazy możliwych feature’ów.

MonoDevelop

MonoDevelop jest oparte o GTK# i jest głównym odpowiednikiem Visual Studio na Linuxie i Macu. Nie jest to ściśle związane z Officem, ale jest napisane w C#. Szczególnie interesuje mnie implementacja edytora tekstu.

RoslynPad

RoslynPad jest dość nowym programem, oparty o Roslyn i AvalonEdit. Nie udało mi się uruchomić go na linuxie, ponieważ korzysta z WPF, ale wygląda ładnie i kompaktowo. Możliwe, że najbardziej przyda mi się poczytanie źródeł AvalonEdit.

Nie można pisać “dobrego” kodu, nigdy żadnego nie przeczytawszy.