Flaem: aplikacja desktopowa
.NET 6, Avalonia 11 i MVVM, natywny program zamiast Electrona.
C# z Avalonią to nasz wybór na natywne aplikacje desktopowe na Windows, macOS i Linux, a .NET do bibliotek, emulatorów i pluginów do gier na silniku Unity.
Projekty z tej strony na ekranach z portfolio i case studies, każdy z krótkim opisem i drogą do pełnego.
.NET 6, Avalonia 11 i MVVM, natywny program zamiast Electrona.
Natywny klient w Avalonii: serwery, kanały, role, rozmowy głosowe i wiadomości na żywo.
Technologia ma pasować do miejsca, w którym kod będzie działał, i do zespołu, który go przejmie. Ostateczny wybór zapada przy wycenie, razem z Tobą.
Avalonia daje jeden kod na Windows, macOS i Linux, a kontrolki rysuje Skia tą samą ścieżką na każdym systemie. Na tym stoją aplikacje desktopowe Flaem i Plazera.
Administrator ma panel Flaem otwarty obok konsoli i gry. Bez silnika przeglądarki w środku program startuje szybko, ma własną ikonę na pasku, skróty systemowe i dostęp do plików z dysku.
Logika siedzi w bibliotece .NET, która nic nie wie o interfejsie, a widok spina z nią MVVM z CommunityToolkit. Testy xUnit sprawdzają rdzeń bez otwierania okna.
nCatalogue dla SCP: Secret Laboratory zbiera statystyki graczy, łączy konta z Discordem i daje komendy administracyjne na Discordzie. Gra jest napisana w C#, więc plugin z LabAPI i Harmony wchodzi wprost w jej kod.
chip8-sharp sprawdzamy na ROM-ach testowych, a gameboy-sharp ma rdzeń bez interfejsu. Taki rdzeń działa w programie, w teście i w cudzym projekcie, który go wepnie.
vantage steruje Dockerem w homelabie i sprawdza usługi po HTTP i TCP. CancellationToken w .NET odróżnia przekroczony czas sprawdzenia od zamknięcia programu, więc pulpit nie zgłasza fałszywych awarii.
Strony i panele w przeglądarce piszemy w TypeScripcie z prerenderem. Blazor w WebAssembly pobiera przy pierwszym wejściu środowisko .NET, a strona ma pokazać treść od razu.
Flaem i Plazer mają na telefonach osobne aplikacje w Kotlinie i Swifcie. Widżety, powiadomienia i gesty działają wtedy dokładnie tak, jak oczekuje system.
Gdy program ma być tym samym interfejsem co strona, budujemy go w Rust i Tauri z kodu webowego. Tak powstało studio, a Avalonię wybieramy, gdy interfejs ma być natywny.
Samodzielne wydanie .NET zawiera w środku całe środowisko uruchomieniowe. Agenty Flaem w maszynach klientów są w Go, jako małe pojedyncze pliki.
Szyfrowanie Plazera musi działać w przeglądarce, na telefonach i na komputerze jako ten sam kod. Dlatego jest w Ruście, a program w C# go wywołuje, zamiast pisać kryptografię od nowa.
Boty Discord i skrypty diagnostyczne piszemy w Pythonie, bo są gotowe szybciej i poprawia się je bez kompilacji. Bota w C# robimy wtedy, gdy jest częścią pluginu do gry i dzieli z nim kod.
Każda potrzeba w jednym wierszu, a obok siebie to, co w tej sprawie daje każda z dwóch kolumn.
Ile linii napisaliśmy w C# i jaką część wszystkiego, co napisaliśmy, to stanowi. Liczymy linie dodane w commitach naszych repozytoriów, osobno dla każdego języka.
Z plików zależności naszych repozytoriów. Przy każdej jedno zdanie o tym, do czego jej używamy.
Interfejs na Windows, macOS i Linux.
Wzorzec MVVM bez ręcznego kodu.
Testy logiki w osobnym projekcie.
Pluginy do SCP: Secret Laboratory i ich boty.
11 przyjętych zmian w 7 repozytoriach. Opiekunowie tych projektów przejrzeli nasz kod i włączyli go do swojego.
Każda ma swoją stronę z projektami na prawdziwych ekranach i porównaniem z alternatywami.
Odpowiedzi o C# i .NET, naszych projektach i liczbach na tej stronie.
Opisy projektów z tej strony i przegląd wszystkich technologii.
Opisz, co chcesz zbudować. Odpiszemy w godzinę i powiemy wprost, czy ta technologia jest dobrym wyborem.