Masuuka: Difference between revisions
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Meeskond "Masuuka" - ASP.net projekt == | == Meeskond "Masuuka" - ASP.net projekt == | ||
[[Image:Masuuka.Avaleht.jpg|thumbnail|Avalehekülg sisselogimata kasutajale]] | |||
=== Ülevaade === | === Ü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. | 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. | ||
[[Image:Masuuka.Login.jpg|thumbnail|Sisselogimise aken]] | |||
=== Eesmärgid === | === Eesmärgid === | ||
Line 23: | Line 27: | ||
3. Ärirakendus (Saul): | 3. Ärirakendus (Saul): | ||
- arvepidamise kirjete lisamine ja kustutamine | |||
- kirjeid selgitavate siltide lisamine ja kustutamine | |||
- arvepidamise koondaruanded kuude kaupa | |||
Ärirakenduse sisuliseks eesmärgiks oli valmistada tööpõhimõttelt lihtne ja hea kasutajaliidesega isikliku eelarve pidamise tarkvara. Kõige olulisemaks featuuriks sealjuures oli ülevaate lehekülg, mis pidi andma selge ja konkreetse pildi valitud kuus tehtud kulutuste kohta. Järgmisel kohal oli kasutamise mugavus. | |||
[[Image:Masuuka.Haldus.jpg|thumbnail|Sisuhaldus]] | |||
=== Andmemudel === | === 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". | |||
[[File:masuuka.andmemudel.jpg]] | |||
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". | |||
[[Image:Masuuka.Acc-overview.jpg|thumbnail|Arvepidamise ülevaade]] | |||
=== Rakenduse ülesehitus / struktuur === | === 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. | |||
[[Image:Masuuka.Acc-tags.jpg|thumbnail|Siltide haldus]] | |||
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. | |||
[[Image:Masuuka.Acc-expense.jpg|thumbnail|Kulude sisestus]] | |||
=== Kasutatud abivahendid / raamistikud === | === Kasutatud abivahendid / raamistikud === | ||
1. TinyMCE - javascript WYSIWYG editor ( | 1. TinyMCE - javascript WYSIWYG editor (http://tinymce.moxiecode.com/) | ||
=== Probleemid === | === 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. | |||
=== Kokkuvõte / järeldused === | === Kokkuvõte / järeldused === |
Latest revision as of 11:39, 19 May 2010
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):
- arvepidamise kirjete lisamine ja kustutamine - kirjeid selgitavate siltide lisamine ja kustutamine - arvepidamise koondaruanded kuude kaupa
Ärirakenduse sisuliseks eesmärgiks oli valmistada tööpõhimõttelt lihtne ja hea kasutajaliidesega isikliku eelarve pidamise tarkvara. Kõige olulisemaks featuuriks sealjuures oli ülevaate lehekülg, mis pidi andma selge ja konkreetse pildi valitud kuus tehtud kulutuste kohta. Järgmisel kohal oli kasutamise mugavus.
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.