Haladó .NET Programozás

Tömegközlekedés-követő rendszer

Rendszerterv (Implementációs fázis)

1. A megvalósítás folyamatának időbeosztása, mérföldkövei

• Október 23: CodePlex oldal létrehozása
• November 14: Adatbázis séma elkészülése, adatbázis létrehozása és feltöltése mintaadatokkal
• November 22: A InfoService WCF Service-ünk működőképes állapotba került (Járatok listázása, új pozíciók beszúrása stb.)
• November 29: A BingMaps térkép bekerült a weboldalra, és JQuery segítségével működött az InfoService hívása. Így ekkorra a felhasználók nyomon tudták követni a forgalom aktuális állapotát a térképen
• November 30: Kialakult a weboldal végleges felépítése, implementálásra került a megállók listázására szolgáló oldal. Elkészült a tesztelésre szolgáló TestInfoService nevű WCF Service.
• December 2: Várakozási idő előrejelzés elkészülése
• December 29: Végleges projectstruktúra kialakulása
• December 25: Felhasználókezelés, új útvonalak feltöltése implementálásra került a weboldalhoz, WP7 alkalmazás elkészülése

2. Implementációs megfeleltetések:

• WP7 alkalmazás tracking üzemmód, és lekérdező üzemmód a követelményleírásnak megfelelően implementálásra került.
• A Weboldal szintén a követelményleírás szerint képes felhasználókat kezelni és új útvonalakat fogadni
• A WCF Service figyeli, ha az adott járat koordinátáinak ellentmondó információkat szeretnénk beszúrni az adatbázisba
• Illetve figyeli azt, hogy azonos járatot két felhasználó egyszerre ne trackeljen.

3. A rendszer tesztelése:

• A PTTWebSite Solutionben, ami megtalálható a CodePlex oldalon a forrásfájlok között van egy TestWCf nevű project. Ez egy egyszerű konzolos alkalmazás, amit a fejlesztés során arra használtunk, hogy a WCF service éppen implementálás alatt lévő metódusait leteszteljük. Ilyen módon próbáltunk minden lehetőségnek megfelelő adatokat bevinni.
• A Weboldal tesztelése 3 böngészővel történt:
o Mozillával Firefox 7-tel minden megimplementált oldal hibátlanul működött
o Internet Explorer 9 alatt szintén minden működött
o Opera 11.60 alatt a BingMaps térkép túl nagyban jelenik meg, hiába fix méretű div tagben van benne.
• A Windows Phone 7 alkalmazást emulátoron teszteltük
• Annak érdekében, hogy a felhasználók is könnyen láthassák, hogy mire is jó ez az alkalmazás létrehoztunk egy TestInfoService nevű WCF Service-t. Ez a szolgáltatás a weboldalon keresztül is elérhető, és arra szolgál, hogy egy szimulációt indítsunk el, amelynek során a 6os villamos vonala mentén adatokat küldünk az InfoService-nek, mintha egy villamoson utaznánk. A küldött adatok bekerülnek az adatbázisba, és minden felhasználó számára elérhetőek. Technikailag ez úgy működik, hogy amikor egy kérést kap a TestInfoService szolgáltatás, akkor több egymástól független szálat indít el a szerveren, amik addig futnak, amíg végig nem ér a beszúrás a statikusan beadott szélességi és hosszúsági koordinátákon.
• Fontosnak tartottuk, hogy ne csak fejleszt[I környezetben teszteljük az alkalmazást, hanem éles rendszerben is kipróbáljuk. Ehhez a somee.com free .net hosting nevű szolgáltatását vettük igénybe. Az weboldal elérhető a http://ptt.somee.com címen, az InfoService pedig a http://ptt.somee.com/InfoService.svc és az http://ptt.somee.com/InfoServiceSOAP.svc címeken (előbbi JSON formátumban adja vissza az adatokat, utóbbi pedig xmlben, de szerveroldalon ugyanaz a kód fut le)

4. WP7 alkalmazás

• A program 3 oldalból áll, mindkét oldal elhagyásakor leáll az adott feladat végrehajtása
• A “szálkezelésről”, hogy a grafika és az adatok elküldése ne akadjon össze, a dispatcherTimer osztály gondoskodik.
• Minden adatbázis hibánál az alkalmazás visszalép a főoldalra és megjeleníti a hibaüzenetet.