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)
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.