Most, hogy átálltunk Vistára az egyik laborban, természetesen jelentkeztek alkalmazás kompatibilitási problémák. De mondanom se kell, hogy ezek inkább a fejlesztők hibái voltak, mintsem az operációs rendszeré. Van nekünk egy ImageDistributer nevű .NET-es alkalmazásunk, ami az UFTP nevű kis multicast másoló programot használja a háttérben a nagy méretű virtuális gépek terítésére. Ennek az első változatát én írtam, aztán egy szakdolgozat tervező hallgatóm folytatta és működőképes állapotba hozta, most pedig a hibajavítás megint visszaszállt rám:) Egész szépen meg lett tervezve és írva, valamint a funkcionalitás nagy része le is lett tesztelve. De azért a tesztelés korántsem volt teljes körű, ami egy ilyen átállásnál (új OS, 32->64 bit, új gépek) elő is jön.
- Any platform volt beállítva a projektnek architektúrára, így a 64 bites OS-en a .NET-es alkalmazásunk 64 bites folyamatként futott. Igen ám, de így a 32 bites-es C-ben írt uftp DLL-t nem tudta betölteni. Gyors javításként lehet segíteni a corflags segédprogrammal ezen, de a szép megoldás ugye ha újrafordítjuk az alkalmazást, és bejelöljük szépen a célplatformot.
- Tanulság: gondolni kell a 64 bites környeztre is, és tesztelni azon is.
- Az új laptopoknak 1920×1200-as képernyőfelbontása, de ez csak úgy olvasható, ha a betűméretet megnöveljük (High DPI). Igen ám, de az alkalmazás GUI-jában voltak fixen beállított, pixelre megadott magasságú vezérlők, ott nyilvánvalóan a szöveg egy része kilógott.
- Tanulság: High DPI beállítással is kell tesztelni az alkalmazást.
- A fenti kettő problémát viszonylag gyorsan meg lehetett oldani, az utolsó trükkösebb volt. A Wake-on-LAN funkció nem működött az alkalmazásban. WireSharkkal ránézve látszott, hogy nem is küldi ki a mágikus csomagot (magic packet:) a hálózatra. Tűzfal rendben, hálózati beállítások rendben, a kódon nem változtattunk semmit, ez XP-n még ment. Rákeresve mások is találkoztak már ezzel, hogy bizonyos WOL-on programok nem működtek. Kerestem végül egy működő kódot, és sorról-sorra megnéztem, hogy hol tér el a mi kódunktól. A megoldás az volt, hogy a mi kódunk a 255.255.255.255 címre próbált meg küldeni UDP csomagot, és nem a subnet broadcast címre. A helyes broadcast címre küldve már ment minden simán.
- Tanulság: érdemes megnézni pontosan a technológiát, amit használunk, és nem pongyolán implementálni:)
Ezeket átírva az új verzió már gond nélkül megy Vista alatt is. Ez csak megerősítette azt a gyanúmat, hogy az alkalmazás inkompatibilitás csak egy jó kifogás a lusta fejlesztőknek:-)
Micskei Zoltán