+ (#5240) Karma
Végül sikerült megoldani RestSharp-pal a dolgot, tényleg elég fáradt voltam már, azért nem ment. További pluszpont neki, hogy async a dolog, ami követelmény az alkalmazásnál.
Tényleg, mielőtt hülyeségeket beszélek: Az async az külön szálon fut? Pl. a RestSharp ExecuteAsync(request, asynccallback) metódus.
A HTTPClient-et NuGet-ről töltöttem le, de ott mindig kihalt maga a httpclient osztály valami hibával. (Most nem vagyok Windows előtt, nem tudom replikálni az esetet, ha érdekel titeket, akkor holnap elvileg lesz a kezem ügyében windows)
------
Másik dolog, MySQL adatbázis kapcsolódással kapcsolatban:
Van egy távoli szerveren egy MySQL adatbázis, illetve van az app saját MSSQL adatbázisa. A két adatbázis felépítése teljesen ugyanaz, ugyanazok a táblák/oszlopok, ezeknek sorrendje, oszlopok típusai, stb. Az összes adat a távoli szerveren van amivel dolgozni kellene, ezeket az adatokat kellene lemásolni egy szinkronizálás folyamán, tehát szinkronizálni kell az adatbázisokat. Azért van egy külön lokális adatbázis, hogy offline is működjenek a funkciók. Ha nincs semmi a lokális adatbázisban, akkor letöltünk mindent, ha vannak benne cuccok, akkor pedig ellenőrizzük a timestampeket (minden sornak van egy timestampje), ha korábbi a lokális adatbázis verziója, akkor letöltjük a szükséges dolgokat a távoli cuccról (tehát hogyha webről vagy másik OS-ről (megvan már droira és iOS-re az app, nekem az iOS forráskódja meg, de így, hogy C#-on és Javascripten nevelkedtem, kb olvasni nem tudom, egyszerűen nem értem meg mi micsoda )), ha pedig újabb a lokális timestamp, akkor pedig feltöltjük az adatokat a távoli szerverre.
Az is fontos, hogy kiderült, hogy nem közvetlenül a MySQL adatbázissal kellene kommunikálni, hanem egy PHP scripttel. Erre kellett a HTTP POST, azzal kell elküldeni a MySQL query-t stringként + további paramétereket és egy JSON stringet ad vissza válaszként.
Na most ez így elég rossz, pár dologgal problémában vagyok, mind megértésileg, mind implementáció kérdésekben:
1. Egy senior kolléga azt mondta nekem, hogy az lenne a legjobb, ha egy web service lenne rákötve a MySQL adatbázisra, amivel közvetlenül tud szintén HTTP kérésekkel kommunikálni az app, de a C# saját LINQ Query szintaktikájával, és az objektumokat tudna visszaadni nem JSON-t.
1/a. Össze kellene állítanom egy ilyen web service demót, hogy tudjuk mutatni a megrendelő cégnek, hogy pontosan mit csináljanak. Na most itt ugye az az egyik kérdés, hogy tényleg azzal érdemes-e dolgozni,
a másik pedig, hogy hogy az istenbe néz ki egy ilyen dolog? Rá lehet-e egyáltalán rakni egy csak PHP és MySQL-t támogató szerverre? Ha igen, hogyan? Csinált már valamelyikőtök ilyet? Hogyan kezdjek egyáltalán neki ennek a dolognak?
2. Hogyan kellene kb. kinéznie ennek a szinkronizációnak? Esetleg, ha valamelyikőtök csinált már ilyet, tudnátok egy nagyon primitív példát mutatni? Sajnos kötve vagyunk a MySQL-hez.
Köszönöm!
https://heureka-kreativ.hu