Masuuka

From ICO wiki
Jump to navigationJump to search

Meeskond "Masuuka" - ASP.net projekt

Ülevaade

Meeskonna "Masuuka" moodustavad Saul Talve ja Marko Kurm. Projekti teemaks on veebirakendus, mis aitaks masuaja inimestel pidada arvet oma sissetulekute ja väljaminekute üle. Samuti sisaldab rakendus ka CMS-i funktsionaalsust - veebiliidese abil on võimalik muuta lehekülje sisu. Kuna rakendus jaotub loogiliselt kahte ossa - ärirakendus (arvepidamine) ja CMS, siis otsustasimegi, et Saul tegeleb ärirakendusega ja mina (Marko) lisan CMS funktsionaalsuse.

Eesmärgid

Kõigepealt muidugi kõige suurem eesmärk - õppida ASP.net-is veebirakenduste tegemist.
Täpsemalt aga jaotusid eesmärgid järgmiselt:

1. Luua sisuhalduse funktsioonid (CMS) - teeb Marko:

  - lehekülje lisamine
  - lehekülje publitseerimine
  - lehekülje depublitseerimine
  - lehekülje kustutamine
  - lehekülje sisu muutmine

2. Kasutajate haldamine:

  - kasutaja lisamine
  - kasutajale grupi määramine
  - kasutaja kustutamine
  - kasutajagrupi loomine

3. Ärirakendus (Saul):


Andmemudel

Nagu üldkontseptsiooni tasemelgi, jaguneb ka andmemudel kahte sisuliselt erinevasse osasse. Sisuhalduse andmeid hoitakse olemites "content" ja "SiteMap"; arvepidamisega seotud andmeid olemites "balance", "entry", "tag" ja "entrytag".

Asja mõte oleks siis järgmine, et sisuhalduse lehekülje kirjed asuvad "SiteMap" tabelis, ning WYSIWYG-iga muudetav sisu tabelis "content". Arvepidamisel lähevad kõik arvepidamise kirjed (nii sissetulekud kui ka väljaminekud) tabelisse "entry". Iga kirjega saab "tag" siltide sõnastikust siduda sobivaid silte, ja need seosed lähevad kirja olemisse "entrytag". Kuna arvepidamine toimub kuukaupa, siis kuu algsaldo ja summeeritud sissetulekud ning väljaminekud asuvad tabelis "balance".

Rakenduse ülesehitus / struktuur

Otsustasime, et ehitamise ja hilisema integreerimise huvides on mõistlik hoida CMS ja arvepidamine võimalikult eraldiseisvana. Seda nii andmebaasi, funktsionaalsuse kui ka failistruktuuri tasandil.

Andmebaasiks valisime MSSQL-i kuna see toode on Visual Studioga lähedalt seotud toode, ja halduse/arenduse tööriistu andmebaasi jaoks ei pidanud eraldi otsima. Marko kasutas andmebaasina mdf faili, Saul otsustas SQLEXPRESS-i kasuks.

Projekti kataloogistruktuur läks algselt paika nii nagu "Web Application" tüüpi rakendusel Visual Studio seda korraldab. Hiljem tõstsime arvelduse osa eraldi alamkataloogi "accounting", kuhu läksid nii aspx failid, masterid kui ka graafika ja CSS stiilid.

Andmekihi osas kasutasime kahte stiili: mõnel pool harilikku SqlProvideriga andmebaasi külge minemist ja harilike SQL päringute tegemist, mõnel pool aga LINQ-2-SQL klasse.

Kujunduse ja muu staatilise sisu eraldamiseks kasutasime master pagesid, nii sisuhalduse kui ka arvepidamise poolel.

Kasutatud abivahendid / raamistikud

1. TinyMCE - javascript WYSIWYG editor (http://tinymce.moxiecode.com/)

Probleemid

Suurimaks sisuliseks probleemiks osutusid integreerimise faasis mitmesugused tehnilised ebakõlad, mis ilmnesid koodi ühest projektist teise tõstmisega: algselt kirjutas kumbki oma osa erinevate masinate peal ja mingit versioonihaldust polnud. Mis integreerimise faasis siis ennast ka tunda andis.

Kuna Visual Studio ei taha miskipärast Solution Exploreris tehtud renamesid üle kanda nendesse kohtadesse, kuhu faili algse nimetamisega üht-koma-teist kirjutatakse (näiteks klassinimed, page direktiivid jms), siis tuli neid kohti katseeksitus ja debug-meetodil käsitsi üles otsida. Teine suurem häda oli mdf-faili sisse kirjutatud tabelite ümbertõstmise MSSQL EXPRESS andmebaasi. Siinkohal sai palju vett ja vilet näha, ja ühtlasi selge kogemuse, et need asjad omavahel eriti kokku ei sobi.

Üheks mitte-tehniliseks, projektijuhtimise teemaliseks probleemiks oli arvatavasti ka nö. tudengisündroom, et tagumisele hetkele asju lükates võivad ootamatused ilusa plaani segi lüüa.

Kokkuvõte / järeldused