7. Megvalósítás - Szolgáltatás
2014.06.16.TrajberBarna
7
• 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
8. Megvalósítás – Mobil kliens
2014.06.16.TrajberBarna
8
• 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
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.TrajberBarna
17
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.TrajberBarna
18
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.TrajberBarna
19
Notes de l'éditeur
Célszerűen a szolgáltatást futtató szerveren fut
Code First technikával készült
Kiinduló entitás: User
A felhasználókhoz kapcsolódó legfontosabb entitások a tranzakciók és az ehhez kapcsolódó kiegészítő táblák
Kategóriák 2 szinten (szülő – gyerek viszonyban)
A felhasználók beállításait (nyelv, alapvaluta, valuta konvertálás) szintén adatbázisban tároljuk
Ismétlődő tételek kezelése a jövőben
Lazy loading helyett Eagerly és Explicitly loading
Kimutatás: WP8Charting egyedi class library: Canvas-on jeleníti meg a kördiagramot
Kategória felvétel és törlés csak admin-oknak
Tranzakciók: kiadás/bevétel, opcionális fotó/helyszín/megjegyzés
Helyszínválasztás: Bing térkép
Valuták: openexchangerates forrásból
Nem használtam az MVC authentikációs szolgáltatását
Kliens oldali szkriptek nagy hangsúlyban
Elsősorban otthoni felhasználóknak
Kisebb vállalatoknak is hasznos lehet
MTOM is a mechanism for transmitting large binary attachments with SOAP messages as raw bytes, allowing for smaller messages.