Örebro universitet
Institutionen för teknik
Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se)






Tentamen i

PDA-applikationer med .NET

(distanskurs)

torsdag 11 januari 2007 kl 8:00 - 13:00 i T143







Hjälpmedel: Vilket tryckt eller skrivet material som helst, bara det är på papper: böcker, utskrifter, egna anteckningar. Inga datorer. Som alternativ till ordbok, om man behöver en sån, kan man dock använda en så kallad "C-pen", som är ett elektroniskt lexikon i form av en penna.
 
Poängkrav: Maximal poäng är 40.
För betyget G krävs 20 poäng.
 
Resultat och lösningar: Meddelas på kursens hemsida senast torsdag 1 februari 2007.
Visning och frågestund: Tisdag 6 februari 2007 kl 15:00-15:30 i mitt rum (T2220).
Efter visningen kan tentorna hämtas på expeditionen.
 
Examinator och jourhavande: Thomas Padron-McCarthy, telefon 070-7347013.




LYCKA TILL!

Uppgift 1 (5 p)

Det finns flera skillnader mellan en "vanlig" dator (med vilket vi menar en skrivbordsdator, en bärbar dator eller en serverdator) och en handdator, som man måste tänka på, både som användare och programmerare.

Vilka är viktigast att tänka på för en programmerare? Hur påverkar de hur handdatorprogram bör fungera?

Uppgift 2 (5 p)

En författare skriver att .NET från Microsoft är en kopia av Java från Sun, "as close as legally possible", dvs en så exakt kopia som det går att göra utan att bli stämd. Men även om det finns tydliga likheter mellan .NET-plattformen och Java-plattformen, så finns det också skillnader.

Vilka är de viktigaste likheterna och de viktigaste skillnaderna mellan Java-plattformen och .NET-plattformen?

Uppgift 3 (5 p)

a)

För att kunna köra ett .NET Compact Framework-program på sin handdator, måste man ha .NET Compact Framework-biblioteken installerade. Varför måste man det?

b)

Hur kan den installationen vara gjord?

c)

Designern i Visual Studio har två visningslägen eller vyer: designvyn (Design View) och kodvyn (Code View). Vad är det för något, och hur hänger de ihop?

d)

Vad innebär händelsestyrd programmering ("event-driven programming")?

e)

Vad är en händelse ("event")?

Uppgift 4 (5 p)

Visa med ett exempel hur mekanismen i C# för egenskaper ("properties") fungerar. Skrv dels en klass med sådana egenskaper, och visa dels hur kod i en annan klass kan använda dem.

Förklara också vad det är bra för, dvs varför man har infört den mekanismen.

Uppgift 5 (10 p)

Här är en Pocket PC-applikation skriven i C# för .NET Compact Framework. Den har två kryssrutor och två knappar.

En ganska meningslös applikation, i Pocket PC-emulatorn

Om man kryssar ur en av rutorna försvinner den motsvarande knappen, och om man kryssar i rutan igen kommer knappen tillbaka:

Emulatorn igen   Emulatorn igen

Dessutom kan man klicka på knapparna. Om man klickar på en knapp, försvinner den motsvarande kryssrutan. Nästa gång man klickar på den knappen, kommer kryssrutan tillbaka:

Emulatorn igen   Emulatorn igen

Dessutom ska det sammanlagda antalet operationer (ikryssningar, urkryssningar och knappklick) anges på skärmen.

Skriv de callback-funktioner som behövs i applikationen. Om callback-funktionerna anropar funktioner, eller använder variabler, som inte genereras av Designern, utan som man måste skapa själv, så skriv även dessa.

Uppgift 6 (10 p)

Vi ska skapa en Pocket PC-applikation som hanterar planeter. Man kan skriva in data om nya planeter, spara dem i en databas, och bläddra bland existerande planeter. Varje planet har ett nummer, ett namn och en folkmängd.

Planeterna lagras i en tabell som heter planeter, i en databas som hanteras av SQL Server CE:

nummer namn befolkning
1 Merkurius 0
2 Venus 0
5 Jupiter 0

Databasen finns på en fil som heter \My Documents\Planeter.sdf

Så här ser applikationen ut:

En annan applikation, i Pocket PC-emulatorn

Uppgiften går ut på att skriva callback-funktionen för Spara-knappen. Den ska hämta data från textfälten, och skicka dem till databasen med ett SQL-kommando av typen insert into. Det finns inte någon öppen koppling till databasen när funktionen anropas.

Ledning: Så här ser insert into-kommandot ut med värdena i exemplet:
insert into planeter (nummer, namn, befolkning) values (1, 'Saturnus', 0)