Kod

Wieloplatformowa aplikacja GUI w języku C# od

Wieloplatformowa aplikacja GUI w języku C# od Skillbox Media

Podstawy języka Python: bezpłatny kurs dla osób na wszystkich poziomach zaawansowania ➞ Opanuj 4 angażujące projekty portfolio i nawiąż kontakt z ekspertem. Aby zapoznać się z treścią kursu, kliknij tutaj.

Dowiedz się więcej

Firma Microsoft wprowadziła już trzecią iterację wieloplatformowego oprogramowania typu open source .NET Core, ale nadal brakuje narzędzia do tworzenia interfejsów graficznych.

Dziś istnieje platforma Xamarin, przeznaczona wyłącznie do tworzenia aplikacji na system Windows 10 i platformy mobilne. Pojawia się jednak pytanie: co powinni zrobić deweloperzy, którzy chcą tworzyć interfejsy graficzne dla systemów operacyjnych Linux lub Mac OS?

W tym przypadku z pomocą przychodzą frameworki tworzone przez niezależnych deweloperów.

Wybór odpowiedniego frameworka do projektu

Udało mi się znaleźć dwa stosunkowo znane frameworki, oba zbudowane na bazie Skia:

Przetestowałem obie opcje i ta druga okazała się dla mnie wygodniejsza. Zawiera język znaczników, obsługuje wzorzec MVVM, szybką instalację i zapewnia łatwą migrację z WPF. Dlatego zdecydowałem się na tę opcję.

Pierwsze kroki w opanowaniu AvaloniaUI

Planuję rozwijać aplikację na platformie Linux Ubuntu, chociaż ta instrukcja będzie istotna dla wszystkich użytkowników .NET Core. Aplikacje można również tworzyć w programie Visual Studio z zainstalowanym rozszerzeniem, ale ponieważ to środowisko nie jest dostępne w systemie Linux, do pracy będę korzystał z terminala.

Najpierw pobierz to repozytorium na swój komputer:

To archiwum zawiera szablony, które pomogą Ci w opracowaniu aplikacji przy użyciu AvaloniaUI. Jeśli nie znasz Gita, nie martw się: po prostu pobierz pliki i rozpakuj je w dowolnym dogodnym miejscu na komputerze. Następnie otwórz wiersz poleceń i wpisz następujące polecenie:

Spowoduje to skonfigurowanie przykładów do tworzenia aplikacji. Aby sprawdzić, czy przykłady zostały dodane, uruchom następujące polecenie:

Zostanie wyświetlona lista wszystkich zainstalowanych szablonów. Lista powinna zawierać takie elementy, jak Avalonia Window, Avalonia .NET Core MVVM App, Avalonia UserControl i Avalonia .NET Core App. Jeśli wszystkie te elementy są obecne, możesz przejść dalej.

Za pomocą konsoli przejdź do katalogu, w którym planujesz rozpocząć nowy projekt i wpisz:

Planujesz opracować aplikację z wykorzystaniem wzorca MVVM. Większość dokumentacji AvaloniaUI jest prezentowana w tym formacie, co uczyni proces rozwoju wygodniejszym i efektywniejszym.

Teraz możesz rozpocząć tworzenie aplikacji.

Tworzenie kalkulatora za pomocą AvaloniaUI

Zostaniesz zorganizowany w następujących katalogach.

  • Sekcja Assets jest przeznaczona do ładowania różnych elementów programu, takich jak ikony, obrazy, pliki dźwiękowe i inne materiały.
  • Folder Models jest przeznaczony do przechowywania klas, które będą wykonywać funkcje modelu.
  • ViewModels to klasy, które służą jako łącznik między widokiem a modelem.
  • Wszystkie okna zostaną umieszczone w tej sekcji.

Zacznijmy od zbadania pliku Program.cs, który znajduje się w katalogu głównym.

Interesuje nas metoda AppMain(). W ramach tej metody tworzone jest okno główne (MainWindow), w którym ustawiany jest kontekst danych (jest to konieczne do ustanowienia powiązania danych), po czym to okno jest uruchamiane.

To podejście pozwala zdefiniować własną logikę inicjalizacji aplikacji. Na przykład, można utworzyć instancję modelu, a następnie przekazać ją do konstruktora MainWindowViewModel(). Najpierw jednak należy zdefiniować konstruktor, który może przyjąć ten argument.

Nasza aplikacja jest prosta, dlatego postanowiliśmy umieścić całą logikę biznesową bezpośrednio w pliku MainWindowViewModel.cs. Wszystkie niezbędne właściwości i metody zostaną zdefiniowane w tym pliku.

Przede wszystkim należy uwzględnić przestrzeń nazw ReactiveUI, ponieważ stanowi ona podstawę implementacji wzorca MVVM w AvaloniaUI.

Następnie można rozpocząć pisanie samego kodu.

Kod interfejsu dla okna głównego należy utworzyć w pliku MainWindow.xaml.

Warto zauważyć, że prezentowany kod XAML jest bardzo podobny do tego używanego w WPF: zawiera te same elementy i atrybuty, a także wykorzystuje siatki i mechanizmy wiązania danych. W tym przypadku możesz jednak użyć zwykłych metod jako poleceń, co nie jest możliwe w WPF.

Aby skompilować i uruchomić aplikację, wprowadź następujące polecenie w terminalu:

Podaj tekst, który chcesz przerobić.

Teraz aplikację można łatwo skompilować dla różnych systemów operacyjnych i nie są wymagane żadne dodatkowe kroki, aby przenieść ją na nową platformę.

Wniosek

Jeszcze dziesięć lat temu wydawałoby się to dziwne, ale dziś możemy tworzyć programy dla Linuksa, używając języka, który pierwotnie został opracowany do tworzenia aplikacji w systemie Windows.

Przeczytaj również:

  • .NET to platforma opracowana przez firmę Microsoft, służąca do tworzenia różnorodnych aplikacji, od aplikacji desktopowych po usługi sieciowe. Głównym celem .NET jest uproszczenie procesu tworzenia oprogramowania poprzez zapewnienie programistom zaawansowanych narzędzi i bibliotek.

    Platforma zawiera kilka komponentów, w tym .NET Framework, .NET Core i Xamarin. .NET Framework jest przeznaczony do tworzenia aplikacji działających w systemie Windows, natomiast .NET Core i Xamarin umożliwiają tworzenie rozwiązań wieloplatformowych, które mogą działać w różnych systemach operacyjnych, takich jak macOS i Linux.

    Ponadto .NET obsługuje wiele języków programowania, w tym C#, F# i Visual Basic, co pozwala programistom wybrać odpowiednie narzędzie do konkretnego zadania. Innym ważnym elementem .NET jest środowisko uruchomieniowe, zwane CLR (Common Language Runtime), które odpowiada za wykonywanie kodu i zarządzanie jego cyklem życia, w tym za odśmiecanie pamięci i obsługę wyjątków.

    Korzystanie z .NET znacznie przyspiesza proces rozwoju dzięki bogatej bibliotece gotowych rozwiązań i komponentów, oszczędzając czas i zasoby. Platforma zapewnia również wysoką wydajność i bezpieczeństwo aplikacji, co czyni ją popularną wśród programistów na całym świecie.

  • Podcasty, programowanie front-end i networking: sposoby na dołączenie do społeczności IT i uzyskanie bezpłatnych szkoleń.
  • Tworzenie komunikatora w C#. Część 1. Projektowanie interfejsu