simplexpense-prezi
TRANSCRIPT
Költségnyilvántartó keretrendszer
.NET alaponKonzulens: Asztalos Márk
Traj
ber B
arna
2
Tartalom• Specifikáció
Funkciók Architektúra
• Felhasznált technológiák• Megvalósítás
Adatbázis Szolgáltatás Kliens alkalmazások
Mobil kliens Web kliens
• Összefoglalás Továbbfejlesztési lehetőségek 20
14.0
6.16
.
Traj
ber B
arna
3
Specifikáció• Felhasználók kezelése
Egyszerű felhasználó Adminisztrátor
• Tranzakciók Összeg, Valuta, Típus, Dátum, Kategória, [Fizetőeszköz, Megj., Helyszín]
• Fizetési kategóriák Bevétel (jövedelem, …) Kiadás (élelem, ruházat, egészség, …) Semleges (ajándék, …)
• Fizetőeszközök Kp., bankkártya, hitelkártya, egyéb
• Kimutatás Kategóriák szerint Bevétel/kiadás szerint
• Valuta konvertálás
2014
.06.
16.
Traj
ber B
arna
4
Specifikáció - Architektúra
2014
.06.
16.
https://openexchangerates.org/
RESTful szolgáltatás, JSON adatok:
{ "timestamp": 1319730758, "base": "USD", "rates": {
"AED": 3.672626, "AFN": 48.3775, "ALL": 110.223333, "AMD": 409.604993, /* 160 fx rates available
*/ "ZMK": 4954.411262, "ZWL": 322.355011 }
}
Traj
ber B
arna
5
Felhasznált technológiák• Adatbázis
MSSQL
• Szolgáltatás WCF
• Kliens alkalmazások Mobil kliens: Windows Phone 8
Csomagok: PropertyChanged.Fody Windows Phone Toolkit AppBar Utils Coding4Fun Toolkit
Web kliens: ASP.NET MVC 4 Bootstrap Telerik Kendo UI
2014
.06.
16.
Traj
ber B
arna
6
Megvalósítás - Adatbázis
2014
.06.
16.
Traj
ber B
arna
7
Megvalósítás - Szolgáltatás
2014
.06.
16.
• WCF szolgáltatás IIS host-olt BasicHTTPBinding kötés a végpontok között
Mobil klienseknek kedvez (WP8, iOS, Android)
• Megvalósítja az üzleti logikát Adatbázis kontextus
Külön projektben Adatbázis Code First technikával létrehozva Lazy loading kikapcsolva (WCF miatt)
Interfész ServiceContract (ExpenseService.svc van kiajánlva a klienseknek) Parciális interfészek funkciók szerint csoportosítva
Implementáció Interfész megvalósítása parciális fájlokban
OperationContract metódusok Egyedi visszatérési típusokhoz DataContract-ok létrehozása Adatbázis műveletek
LinQ to Entities lekérdezések 1 adatbázis kontextus Dispose minta szerint szabadul fel
Traj
ber B
arna
8
Megvalósítás – Mobil kliens
2014
.06.
16.
• Windows Phone 8 platform• MVVM minta alkalmazása
ViewModel-ek némelyike PropertyChanged.Fody használatával
• Felület METRO elveknek megfelelően• Egyéni grafikus komponens (vezérlő) a kimutatáshoz
Silverlight/WPF kompatibilis
• Felhasználó kezelés Megjegyzi a belépett felhasználót Isolated Storage-ban tárolja a sikeresen bejelentkezett felhasználó adatait
• Egyedi funkciók Új tranzakció felvételekor
Helymeghatározás (opc.) Fotó készítés (opc.)
Lokalizáció (angol/magyar) Valós időben LocalizedStrings osztály
Hozzáférést biztosít a név-érték párokban megadott erőforrásokhoz (fordításokhoz) Kibővítve, hogy implementálja az INotifyPropertyChanged interfészt
Traj
ber B
arna
9
Mobil kliens
2014
.06.
16.
Panoráma főoldal
Bejelentkezés – Jelszó emlékeztető
Traj
ber B
arna
10
2014
.06.
16.
Kimutatás Valuta átváltás Tranzakció részletei Új kategória felvétele (admin)
Traj
ber B
arna
11
Megvalósítás – Web kliens
2014
.06.
16.
• ASP.NET MVC 4 keretrendszer alapokon• Modell (Model)
Szolgáltatás biztosítja
• Felület (View) HTML5
HTML helperek LocalStorage használata
Reszponzív design Bootstrap és Kendo UI támogatással
AJAX-osan betöltődő parciális nézetek
• Vezérlők (Controllers) BaseController a többi Controller őse
Felhasználó adatainak tárolása Jogosultság kezelés
Kérések előtt ellenőrzi, hogy be vagyunk-e lépve OnActionExecuting override (IActionFilter)
Többi vezérlő kommunikál a szolgáltatással és kiszolgálja a nézeteket
• Felhasználó kezelés Típusos Session kezeléssel
Traj
ber B
arna
12
Web kliens
2014
.06.
16.
Főoldal
Traj
ber B
arna
13
2014
.06.
16.
Kimutatások
Traj
ber B
arna
14
2014
.06.
16.
Új tranzakció Tranzakció áttekintő
Valuta konvertálás
Új kategória (admin)Kategóriák
Traj
ber B
arna
15
Összefoglalás
2014
.06.
16.
• Elért eredmények Kapcsolódó .NET technológiák megismerése Adatbázis kialakítása Stabil WCF szolgáltatás
Platform független Kliensek (ASP.NET MVC, WP8)
Letisztult, átlátható felület Újabb kliensekkel bővíthető (pl. Java, iOS, Android)
Valóban használható költségnyilvántartó keretrendszer jött létre
• Továbbfejlesztési lehetőségek Megnövelt biztonság Optimalizáció
Mobil hálózati forgalom csökkentése Új funkciók
Ismétlődő tételek Hatékonyabb vállalati támogatás
Részletesebb szűrési lehetőségek Másfajta kimutatások
Traj
ber B
arna
16
2014
.06.
16.
Köszönöm a figyelmet!
Traj
ber B
arna
17
Kérdések• Biztonság?
Jelenleg BasicHttpBinding WCF kötés a szolgáltatás és kliensek között Windows Phone 8 kliens csak ezt támogatja HTTP és HTTPS felett Text és MTOM kódolás
WsHttpBinding Jobb lenne, mert alapértelmezetten titkosított SOAP üzenetek WS-* támogatás: WS-Addressing, WS-Security and WS-ReliableMessaging WP8 kliens nem támogatja
Megoldás Felhasználók védelme: Jelszó MD5 hash-elten kerül a szerverhez Biztonság növelése
HTTPS végpontok (kliens és szerver is) Biztonságos BasicHttpBinding használat
TransportWithMessageCredentials biztonsági opció bekapcsolása a WCF konfigurációban
Kliens oldali titkosítás (tranzakciók és felhasználói adatok)
2014
.06.
16.
Traj
ber B
arna
18
Kérdések• Hogyan működik kisvállalati környezetben a
költségnyilvántartás? Van lehetőség mondjuk cég szinten összegezni a havi költségeket? Céges felhasználói fiók
Kimutatás szűrési lehetőségek: minden tétel mutatása, évenkénti, havi, heti, napi tételek
Web kliens: kör és oszlopdiagram a kategóriánként csoportosítva Mobil kliens: kördiagram kategóriánként csoportosítva
Hatékonyabb vállalati támogatáshoz Új felhasználói szintek (alkalmazott, főnök) Lekérdezhető és összesíthető legyen az alkalmazottak által bevitt tétel Ügyfelek szerinti csoportosítás
2014
.06.
16.
Traj
ber B
arna
19
Kérdések• Értékesítés?
Főleg technológiai ismerekedés, tanulás céljából készült Mobil kliens Windows Phone Store-ba? Sikeresebb értékesítéshez
Új funkciók: ismétlődő tételek, együttműködő fiókok Megnövelt biztonság Hálózati forgalom optimalizálás (mobil kliensnél fontos)
2014
.06.
16.