blog.troelsrichter.dk
alt mellem bits og bytes

www.tomatoday.dk

Thursday, 31 December 2009 14:34 by dommer

Pomodoro-teknikken og Silverlight er to af de mest lærerige bekendtskaber jeg har gjort i 2009. En kombination af disse er blevet til www.tomatoday.dk, hvilket er et værktøj bestående af en timer og en opgaveliste (Activity Inventory i pomodoro-termer) der begge er værktøjer der benyttes i pomodoro.

Selvom teknikken beskriver at papir, pen og et æggeur er den bedste løsning har jeg haft større succes med en online timer kombineret med husk.venligst.dk.

Nu har jeg med hjælp fra et par kollegaer udviklet denne lille applikation, som forhåbentlig kan hjælpe dig der arbejder efter pomodoro-teknikken og gerne vil have lidt hjælp fra din computer.

Både timer og inventory kan med et enkelt klik installeres som applikation således den bliver lettere tilgængelig end gennem browseren.

Applikationen er udviklet gennem mit arbejde hos Trifork, hvor vi hvert år har et par dage i en spejderhytte hvor man har frie muligheder for at dyrke noget af det som hverdagen ikke tillader. Jeg må så indrømme at de to dage ikke var nok, så det er blevet lidt til et fritidsprojekt :)

Jeg har selv brugt systemet i et godt stykke tid og synes det fungerer ganske godt. Alt efter hvordan andre vil bruge det og deres feedback bliver vil nok komme til at afgøre tomatodays fremtid.

Men prøv det sammen med teknikken, det kan anbefales :)

Den gode applikationsstak

Brugergrænsefladen er bygget med Silverlight og det primære look and feel kommer gennem et Theme fra silverlight toolkittet kaldet Expression Dark. Største problemer i Silverlight-delen har helt klart været fokusproblemer og at få styles til at slå igennem når man begynder at ændre på kontrollers indhold, som ellers skulle være en af Silverlights styrker. Tilmed er der gjort en del benarbejde for at lave en rimelig museuafhængig løsning.

Kommunikationslaget er WCF gennem http uden brug af proxyklasser. Fra applikationens side kommunikere man gennem  nogle selvdefinerede beskeder som kan sendes til serveren gennem en tynd hjælpeklasse kaldet MessageClient.

Serveren har en enkelt beskedservice der står for at finde en handler til den enkelte besked. Det vil også sige en 100% custom-løsning, men stadig ret slim i designet synes jeg.

Servicen får hjælp af Castle Windsor som IOC Container til at finde implementeringer af handlers samt repositories, hvilket gør at man som udvikler ikke behøve at binde disse ting sammen når man laver nye handlers og repositories.

Brugen af IOC har nok været den største øjenåbner for mig på tekniksiden i 2009. Det er første gang jeg selv sætter en løsning sammen med IOC fra bunden.

Som persistens-lag benyttes NHibernate, men ikke i dens originale lidt besværlige form. Overbygningen FluentNHibernate er benyttet med den AutoPersistanceMapping, som gør det muligt at lave en meget transperant mapping, da denne mapper danner de kedelige XML-mapping filer uden man benhøver tænke på det. Det man skal forholde sig til er nogle konventioner som den i stedet bruger til at kunne afgøre en mapning. Jeg tror meget på convension over configuration så det er perfekt!

Tilmed har jeg brugt LinqToNHibernate, så jeg ikke går glip af den dejlige syntax-sukker :)

Med LinqToNHibernate og FluentNHibernate synes jeg virkelig HNivernate har fået nyt liv hvilket det har trængt til fra mit synspunkt, så det er jeg glad for. Et framework som man stadig synes er godt efter 4-5 år… hvor tit sker det?

SQLite benyttes til Unit-Tests  for hurtig afvikling og MySQL i produktion

pt., men Postgres har også været benyttet. Unit-test er skrevet med NUnit samt RhinoMocks.

Der logges med Log4Net og det var vist også det. Alt i alt nok det billede jeg har af frameworks og produkter til en god applikationsstak. Det er dog også en meget traditionel arkitektur med en tynd klient og en server – ingen cloud tankegang for mit vedkommende i 2009.

Som i kan høre er det helt klart også et omstændigt setup for så lille en applikation. Men tanken med dette lille projekt var også at tænke på det som en applikationsstak til en forretningsapplikation med Silverlight som UI.

Tomatoday referencer

Nyhed på triforks hjemmeside

Nyoprettet pomodoro-gruppe på version2

Godt nytår allesammen!

Tags:   ,
Categories:  
Actions:   E-mail | del.icio.us | Permalink | Comments (0) | Comment RSSRSS comment feed