Työaikaseuranta

Näissä tutoriaaleissa luodaan Työaikaraportille graafinen käyttäliittymä (graphical user interface, GUI), jossa voi käynnistää ja lopettaa ajanoton, tallentaa aikadatan kommentteineen tiedostoon ja tulostaa näytöllee raportin (jota varten meillä on jo toimivat aliohjelmat).

1. Vaihtoehdot

1.1 WPF

Microsoftin WPF (Windows Presentation Foundation, alunp. Avalon) on perinteinen Windows-työpöytäohjelma, jonka ulkoasu toteutetaan XAMLilla (Extensible Application Markup Language). Windowsiin rajoittunut WPF on ehkä tämän tutorialin vaihtoehdoista yksinkertaisin.

Työaikaseurannan WPF-tutorial
Työaikaseurannan WPF-tutorial

1.2 UWP

UWP (Universal Windows Platform) on Microsoftin kehittämä arkkitehtuuri, jonka tavoite on luoda ohjelmia, jotka toimivat kaikissa uusissa Windows-alustoissa (Surface, Windows 10, Windows 10 Mobile, Xbox One, Hololens). Koska UWP:n tarkoitus on toimia myös mobiililaitteessa, tiedoston lukeminen on huomattavasti hankalampaa kuin WPF:ssä.

Työaikaseurannan UWP-tutorial
Työaikaseurannan UWP-tutorial

1.3 GTK

GTK on GNOMEn kehittämä alustariippumaton (cross-platform) GUI-työkalusto. Tutorialissa käytettävä versio on GTK# 2.0, jonka .sln-tiedoston voi avata sellaisenaan Xamarinilla joko Macissa tai Windowsissa (joskin uudemmissa versioissa on Windowsissa ongelmia). Xamarinin Designerilla Gtk-GUIn luominen ja muokkaaminen on huomattavasti helpompaa kuin Visual Studiossa .xaml-designerilla.

Työaikaseurannan GTK-tutorial
Työaikaseurannan GTK-tutorial

2. Syntaksierot

Kontrollit
WPF GTK
taulukko Grid Table
teksti TextBlock Label
tekstikenttä TextBox Entry
Kontrollien metodit/ominaisuudet
WPF GTK
käytettävissä .Enabled .Sensitive
lapsiolioiden näkyvyys .Visibility .ChildVisible
ComboBoxin valinta .SelectedItem .Active

3. Toimivuus eri alustoissa

Toimivuus (työn alla)
WPF GTK UWP
Windows desktop x x x
Ubuntu desktop x
Mac desktop x
Windows tablet ? ? x
Windows Mobile 10 x
Android
iOS

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.