Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet azt megoldani,...

Hogyan lehet azt megoldani, hogy az új programverziók felhasználói beavatkozás nélkül jussanak el a kliens gépekre?

Figyelt kérdés

Nagyon megköszönném, ha segítenétek, ez egy tétel amit ki kellene dolgoznom, de sajnos a programozási ismereteim még elég gyatrák... Próbáltam rákeresni, de igazán jó találat nem született:S


A tétel szó szerint: "Egy Ön által fejlesztett programot többen is használnak egy helyi

hálózatban. Milyen módon oldaná meg, hogy az új programverziók

felhasználói beavatkozás nélkül jussanak el a kliens gépekre?"

Feltétel még hogy dll-eket is használjunk a megvalósításkor.


Gondolom, akik ebben dolgoznak, azok csípőből vágják a választ:)



2012. máj. 1. 19:56
 1/4 coopper ***** válasza:

Szia.


Leirom én hogyan csinálnám, nem biztos, hogy a legjobb módszer :


1. Mivel "én" fejlesztem a programot teszek bele egy belső változót ami a verziószámot tárolja.

Illetve van hozzá egy ini file vagy registry bejegyzés ami megmodja a proginak, hogy hol a "Frissitési mappa" lásd következő pont.


2. Helyi hálózaton használják, tehát van egy szerver (ha nincs akkor a saját gépemen létre kell hozni egy megosztott könyvtárat) és ide kell pakolni majd az uj verziót a programból. Hivjuk ezt "Frissitési mappának", ezt a mappát be kell rakni vagy az ini filébe vagy a registry bejegyzésbe a teljes eléréssel együtt.


3. Arra, hogy lecsekkold, milyen verziójű a program ami a "Frissitési mappá"-ban van e legegyszerübb megoldás a verzio.dat file bevezetése, amiben (vagy simán szöveges formátumban, vagy akármilyen tipusos formátumban) benne van az uj progi verzió száma. (illetve egy CRC32 ellenőrző összeget is tartalmazzon az uj programról a másolás leellenőrzése céljából)


4. A kliens gépeken elinditott program első lépésként megnézi a verzió.dat file tartalmát és összehasonlitja belső változójában tárolt verzió számmal, ha a filében lévő nagyobb akkor kell frissitést végezni.


5. A frissités első lépése a "Frissitési mappá"-ban lévő prgnev.exe file átmásolása a cliens gépre, valamilyen más néven (pl. Ujprg.exe de ez lehet random név is) (mivel ugyanazon a néven nem tudod másolni, futó process miatt - a windows nem engedi)


6. Ha kész a másolás akkor egy CRC32 ellenőrzés, hogy biztos tökéletes lett-e a másolás és ezen CRC32 összehasonlitása a verzió.dat filében lévővel. Értelemszerű, ha nem egyeznek meg, akkor nem sikerűlt a másolás. Hiba ablak, vagy ujra másolni.


7. A futó program létrehoz egy bat filét amiben a következők szerepelnek nagyjából :

- egy kis varakozas kb 1-sec

- prgnev.exe elmentése prg_verzió.old néven (sima átnevezés)

- ujprogi.exe átnevezése prgnev.exe-re

- prgnév.exe inditása.


8. Ha kész a bat file a progi elinditja a bat filét és kilép.


A bat file elvégzi a dolgát és elinditja a frissitett prgnev.exe progit.


Ezzel elvileg kész vagy.


Tájékoztatod az Usert arról, hogy megtörtént a verzió frissitése (ini filében vagy registryben lévő változó módositásával elérhető, hogy csak egyszer történjen meg a tájékoztatás)


A DLL használatát nem nagyon értem, hogy mire gomdoltak, de :


A másolási rutint, illetve a CRC32 check rutint, a bat file létrehozását bele lehet rakni dll-be.


A bat filét ki lehet hagyni a játékból (de szerintem egyszerübb a dolog vele mint nélküle), mert ugyanazt kell megvalósitani az exe filékben mint a bat filében :


regi prgnev.exe elinditja ujprg.exe-t és kilép, ujprg.exe elmenti regi prognev.exe prg_verzió.exe-ként, illetve lemásolja saját magát prgnev.exe-ként. Majd végűl elinditja prgnev.exe-t és kilép, prgnev.exe kitörli ujprg.exe-t.


Hát szerintem nagyjából ennyi.


Sok sikert.

Üdv.

2012. máj. 1. 22:00
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

ÁÁÁÁ nagyon köszönöm, teljesen érthetően és részletesen írtad le:) Ha nem is a legjobb módszer, az se baj, a lényeg, hogy fogalmam legyen róla, hogyan kell ilyesmit megvalósítani! Köszi mégegyszer!!!!!!


Szép napot!:)

2012. máj. 2. 15:15
 3/4 coopper ***** válasza:

Szia.


Közben gondolkodtam a dolgon.


Talán egyszerűbb módszer, ha irsz egy frissités.exe nevezetű progit.


Frissitéskor a prgnev.exe megnézi, hogy kell-e frissitést végezni, ha igen elinditja a frissites.exe progit és kilép (Ha esetleg kell frissités.exe-t átmásolja a "Frissitési mappá"-ból).


A frissités.exe progi a következőket csinálja.


- Átnevezi prgnev.exe-t vagy törli. (Megvárja mig a windows "elengedi" prgnev.exe és úgy nevezi át vagy törli)

- Átmásolja a "Frissitési mappá"-ból prgnev.exe-t prgnev.exe néven. (mivel az előző verzió már át lett nevezve vagy törölve, és nem is fut, az ugyanolyan néven való másolásnak nincs akadálya)

- Lecsekolja, hogy sikeres-e a másolás (CRC32 check)

- Elinditja (most már frissitett) prgnev.exe-t és kilép


prgnev.exe törli frissités.exe-t illetve tájékoztatja a felhasználót a frissités megvalósulásáról.


Talán ez a legegyszerűbb módszer.


Sok sikert.

Üdv.

2012. máj. 2. 16:17
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Wow így még jobb:) Nagyon köszi!
2012. máj. 4. 13:43

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!