Mono: A Developer's Notebook
Szerzők:
Edd Dumbill, Niel M. Bornstein
Kiadó:
O'Reilly
Kiadás éve:
2004
ISBN:
0-596-00792-2
Oldalak száma:
304
Értékelés:
8
Linkek
Nagyon vártam, hogy ezt a könyvet a kezembe vehessem, mert mind a témája, mind a formátuma érdekelt, és mondhatom, hogy kisebb problémáktól eltekintve egyikben sem csalódtam. A .NET Novellnél fejlesztett nyílt forrású megvalósításával, a Mono környezettel foglalkozó könyv hű a címéhez: jegyzetfüzet, ami a fontosabb, elindulni segítő részletekkel ismertet meg.
Már a kiadvány borítója is meglepő, két kávéfolt a nyomás során rákerül, és ezek fejezetenként a kezdőoldalakon is visszatérnek. Ezenkívül a könyv minden egyes lapja úgy van nyomtatva, mintha négyzathálós papírra írták volna, a széljegyzetek pedig egy kézírást utánzó betűtípust használnak. Ezzel azt az érzetet kívánják kelteni a sorozat szerkesztői, hogy itt tényleg a fejlesztő jegyzetfüzetét olvashatjuk, ami a munka közben legfontosabb részleteket tárja fel. Eleinte azt gondoltam, hogy a négyzetháló zavarni fog az olvasásban, de hamar meg tudtam szokni.
A könyv elején található hosszas formátum leírás (sorozat bevezető) olvasása alapján a legmeglepőbb tény, hogy állítása szerint:
Nos, ezzel ellentétes a könyv valós tartalma, hiszen majdnem minden olyan ponton megjelenik az "elkerülhetetlen" helló világ példa, ahol új megközelítéseket vezet be: szerkesztés Eclipse segítségével, C# bevezető, Gtk# alapok, webszolgáltatás bevezető, parancssori eszközök ismertetése, stb. Nem tartom alapvetően rossznak a helló világ példákat, amikor egyszerű bevezetőket kell biztosítani, az mindenesetre nem szerencsés, hogy éppen ez ellen beszél a bevezető szakasz.
A könyv tartalmával kapcsolatban azt sem tartottam még helyénvalónak, hogy a biztonságosság szempontjait nem veszik figyelembe a szerzők, bár időnként rámutatnak, hogy egyes példáik komoly biztonsági réseket nyitnak a szerveren, a demonstrálandó kérdések fókuszának elvesztésétől tartva nem foglalkoznak azzal, hogy biztonságos megoldások kialakítására ösztönözzék a fejlesztőket. Igaz ez arra a könyvtár tartalom listázóra is, amelynek biztonsági alkalmatlanságát egy széljegyzetben említik meg, és aztán még számos környezetben felhasználják figyelmeztetés nélkül.
A fenti problémáktól eltekintve azt gondolom nagyon jól sikerült kiadványt kapunk a könyv képében. A szerzők nagyon jó érzékkel fogják meg azokat a témaköröket, amik egy Mono fejlesztő számára alapvetőek. Rendszeresen kitérnek arra, hogy a tárgyalt témakörök milyen formában fedik a Microsoft megvalósítást, és ahol a Mono többet vagy jobbat nyújt, ott ezeket kidomborító példákat kapunk. A könyvben végig a keresztplatformos tárgyalásmódot részesítik előnyben, bár több tipp jut Linux felhasználóknak, a Windows rendszereken fejlesztőkről véletlenül sem feledkeznek meg. A könyv végén egy teljes szakasz foglalkozik a hordozható programok fejlesztésének problémáival.
A szerzők egyértelműen az asztali alkalmazások fejlesztésére koncentráltak, a Mono motort webes környezetben használni szándékozók sokkal kevesebbet kapnak ettől a könyvtől, mint az ablakozós rendszereket építők. Ez egyáltalán nem véletlen, hiszen a Microsoft .NET implementációjat a Windows Forms uralja, ami csak kompatibilitási okok miatt, és csak néhány platformra érhető el a Mono megvalósításában. Helyette a Gtk# használata ajánlott, így itt óriási eltérések lehetnek egy Mono programozó munkaeszközeiben, míg az ASP.NET-et Microsoft környezetben feljlesztő társaikhoz teljesen hasonló módon használhatják.
A könyv másik nagy erőssége az XML támogatás leírása, amelyet használva kétségtelenül sokkal több lehetőséget kapunk, mintha a Microsoft .NET-et használnánk. De a fejezetek olvasása közben nemcsak alkalmazói tippeket kapunk, hanem rendszeresen a közösséghez való csatlakozásra buzdítanak bennünket a szerzők, különösen, ha a legújabb kódokat szeretnénk használni.
A fejezetekben folyamatosan kisebb feladatokat ismertetnek a szerzők, melyeket "How to do it", "How it works", "What about..." és "Where to learn more?" szakaszok követnek, azaz nem egy folyamatosan olvasható ismertetőre kell számítani, hanem sok kisebb feladatra, melyekre jól struktúrált módon kapunk megoldásokat. Így a tematikusan nem kapcsolódó feladatok a korábbiak elolvasását sem igénylik, az egyes példák kipróbálásához szükséges parancsokat, teljes forráskódokat mindig helyben kapjuk meg.
Programozási tudás nélkül a könyv olvasása nem ajánlatos, a legnagyobb részben használt C# nyelv teljes bemutatását sem kapjuk meg, a Java szintakszissal történő összehasonlítások segíthetnek a könnyebb előrehaladásban. A könyv végén ráadásul ízelítőt kapunk a Java illesztési lehetőségekről (IKVM) is, valamint betekintést nyerhetük a Basic Mono környezetben történő használatába is.
■ Már a kiadvány borítója is meglepő, két kávéfolt a nyomás során rákerül, és ezek fejezetenként a kezdőoldalakon is visszatérnek. Ezenkívül a könyv minden egyes lapja úgy van nyomtatva, mintha négyzathálós papírra írták volna, a széljegyzetek pedig egy kézírást utánzó betűtípust használnak. Ezzel azt az érzetet kívánják kelteni a sorozat szerkesztői, hogy itt tényleg a fejlesztő jegyzetfüzetét olvashatjuk, ami a munka közben legfontosabb részleteket tárja fel. Eleinte azt gondoltam, hogy a négyzetháló zavarni fog az olvasásban, de hamar meg tudtam szokni.
A könyv elején található hosszas formátum leírás (sorozat bevezető) olvasása alapján a legmeglepőbb tény, hogy állítása szerint:
A könyv majd minden lapján forráskódot találhat az olvasó, és ezek ténylegesen hasznos kódok, nem "Helló világ" példák, amik nem érnek többet, mint a papír, amire nyomták őket.
A könyv tartalmával kapcsolatban azt sem tartottam még helyénvalónak, hogy a biztonságosság szempontjait nem veszik figyelembe a szerzők, bár időnként rámutatnak, hogy egyes példáik komoly biztonsági réseket nyitnak a szerveren, a demonstrálandó kérdések fókuszának elvesztésétől tartva nem foglalkoznak azzal, hogy biztonságos megoldások kialakítására ösztönözzék a fejlesztőket. Igaz ez arra a könyvtár tartalom listázóra is, amelynek biztonsági alkalmatlanságát egy széljegyzetben említik meg, és aztán még számos környezetben felhasználják figyelmeztetés nélkül.
A fenti problémáktól eltekintve azt gondolom nagyon jól sikerült kiadványt kapunk a könyv képében. A szerzők nagyon jó érzékkel fogják meg azokat a témaköröket, amik egy Mono fejlesztő számára alapvetőek. Rendszeresen kitérnek arra, hogy a tárgyalt témakörök milyen formában fedik a Microsoft megvalósítást, és ahol a Mono többet vagy jobbat nyújt, ott ezeket kidomborító példákat kapunk. A könyvben végig a keresztplatformos tárgyalásmódot részesítik előnyben, bár több tipp jut Linux felhasználóknak, a Windows rendszereken fejlesztőkről véletlenül sem feledkeznek meg. A könyv végén egy teljes szakasz foglalkozik a hordozható programok fejlesztésének problémáival.
A szerzők egyértelműen az asztali alkalmazások fejlesztésére koncentráltak, a Mono motort webes környezetben használni szándékozók sokkal kevesebbet kapnak ettől a könyvtől, mint az ablakozós rendszereket építők. Ez egyáltalán nem véletlen, hiszen a Microsoft .NET implementációjat a Windows Forms uralja, ami csak kompatibilitási okok miatt, és csak néhány platformra érhető el a Mono megvalósításában. Helyette a Gtk# használata ajánlott, így itt óriási eltérések lehetnek egy Mono programozó munkaeszközeiben, míg az ASP.NET-et Microsoft környezetben feljlesztő társaikhoz teljesen hasonló módon használhatják.
A könyv másik nagy erőssége az XML támogatás leírása, amelyet használva kétségtelenül sokkal több lehetőséget kapunk, mintha a Microsoft .NET-et használnánk. De a fejezetek olvasása közben nemcsak alkalmazói tippeket kapunk, hanem rendszeresen a közösséghez való csatlakozásra buzdítanak bennünket a szerzők, különösen, ha a legújabb kódokat szeretnénk használni.
A fejezetekben folyamatosan kisebb feladatokat ismertetnek a szerzők, melyeket "How to do it", "How it works", "What about..." és "Where to learn more?" szakaszok követnek, azaz nem egy folyamatosan olvasható ismertetőre kell számítani, hanem sok kisebb feladatra, melyekre jól struktúrált módon kapunk megoldásokat. Így a tematikusan nem kapcsolódó feladatok a korábbiak elolvasását sem igénylik, az egyes példák kipróbálásához szükséges parancsokat, teljes forráskódokat mindig helyben kapjuk meg.
Programozási tudás nélkül a könyv olvasása nem ajánlatos, a legnagyobb részben használt C# nyelv teljes bemutatását sem kapjuk meg, a Java szintakszissal történő összehasonlítások segíthetnek a könnyebb előrehaladásban. A könyv végén ráadásul ízelítőt kapunk a Java illesztési lehetőségekről (IKVM) is, valamint betekintést nyerhetük a Basic Mono környezetben történő használatába is.