Ajánlom ezt a könyvet feleségemnek, Melissának.
Bevezetés Üdvözöljük C# tanfolyamunkon! Amint a címbõl is kikövetkeztethetjük, itt egy 21 napos kurzusról van szó, melyben elsajátíthatjuk a C# programozásának alapjait. Könyvünk ennek megfelelõen 21 fejezetre („napra”) oszlik, melyek mindegyike pár órás vagy egy estés figyelmet kíván. Így, ha van 21 napunk, melyek mindegyikén 2-3 órát tudunk foglalkozni a könyvvel, könnyedén elsajátíthatjuk a benne foglaltakat. Természetesen nem kell, hogy egymást követõ estéken haladjunk napról napra, sõt, még az estéhez sem kell ragaszkodnunk. Az egyes fejezetek általában egy-két óra alatt végigolvashatók, bár vannak köztük hosszabbak és rövidebbek is. Ha azonban azt hisszük, hogy csak olvasással elsajátíthatjuk a C# programozás módszereit, csalódnunk kell. Ha valódi tudás birtokába szeretnénk jutni, legalább ennyi idõt kell szentelnünk a példaprogramok beírására és kipróbálására, a kérdések megválaszolására és a feladatok megoldására. Ez soknak tûnik ugyan, de higgyük el, ha akarjuk, belefér egy estébe. A tesztek és gyakorlatok szerves részét képezik a tananyagnak. Ha egy fejezet végére jutottunk, elvileg a teszt minden kérdésére tudnunk kell a választ – ha valami nem világos, lapozzunk vissza, és vegyük át újra a megfelelõ részeket. A gyakorlatok lehetõséget adnak arra, hogy kipróbáljuk addig megszerzett tudásunkat. Itt általában a kód megértésére, a gyakran elõforduló hibalehetõségekre és az aznapi anyag feldolgozására összpontosítunk. A tesztek megoldásai, valamint a legtöbb gyakorlat kidolgozása megtalálható a mellékelt lemezen. Ne „csaljunk” – csak akkor nézzük meg a helyes válaszokat, ha már magunk is átgondoltuk és megválaszoltuk a kérdést.
xvi
C# mesteri szinten 21 nap alatt
A könyv olvasása során találkozhatunk néhány különleges kiegészítéssel – tippekkel, megjegyzésekkel és figyelmeztetésekkel. A tippek hasznos javaslatokkal szolgálnak, a megjegyzések kiegészítõ információkat osztanak meg velünk, a figyelmeztetések pedig olyan helyzetekre, hibalehetõségekre mutatnak rá, melyekkel gyakran találkozhatunk. A könyvsorozat különlegessége a fejezetek végén található Kérdések rész, melyben olyan kérdéseket teszünk fel és válaszolunk meg, melyek nagy valószínûséggel felmerülnek a fejezet olvasóiban. Ezekben a kérdésekben esetleg a fejezethez csak áttételesen kapcsolódó témakörök is elõfordulhatnak. A könyv másik különlegességét az Ujjgyakorlatok adják, melyekben érdekes és sokszor hasznos programokat mutatunk be. E fejezetekben feladatunk elsõ lépésben mindössze annyi, hogy a kapott kódot beírjuk, lefordítsuk, majd futtassuk – és élvezzük az eredményt. E programok azonban tanulmányainkat is elõrelendíthetik, ha kísérletezünk kódjuk módosításával, és tanulunk a változásokból, hibajelenségekbõl.
Feltételezéseink A könyvben kénytelenek vagyunk néhány alapvetõ feltételezéssel élni. Így, feltételezzük, hogy az Olvasó rendelkezik C# fordítóval és .NET futásidejû környezettel. A könyv persze nélkülük is végigolvasható, de így meglehetõsen nehéz lesz a leírtak megértése. Azért, hogy e feltételeknek bárki megfelelhessen, a mellékelt lemezen közreadunk egy C# szerkesztõt és futásidejû környezetet. Azt is feltételeztük, hogy az Olvasó kezdõ a programozásban. Félreértés ne essék, a tapasztaltabbak számára is akad újdonság a könyvben, csak számukra a tempó kissé lassúnak bizonyulhat. Könyvünkben nem tesszük fel, hogy az Olvasó a Microsoft Visual C# .NET vagy a Microsoft Visual Studio .NET fejlesztõkörnyezetet használja – sõt, még azt sem tételezzük fel, hogy Windows rendszeren dolgozik, hiszen léteznek C# fordítók másutt, így Linux vagy FreeBSD rendszeren is.
Hálózati frissítés Senki sem tökéletes – és ezt szerzõként magamról sem mondhatom el. Hozzávéve ehhez azt, hogy a C# viszonylag új programnyelv, amely jövõbeni változások elé néz, bizton elmondhatjuk, hogy elõfordulhatnak apróbb-nagyobb gondok a tanulás közben. Könyvünk az elõzõ kiadásra épül, melyet ezrek olvastak, és az ott nyert tapasztalatokat természetesen beépítettük az új kiadásba mind tartalmi, mind formai téren. Minden körültekintés mellett adódhatnak azonban hibák. Ha bármi gondunk lenne, szá-
C# mesteri szinten 21 nap alatt
mos webhelyen utánajárhatunk javításuknak – elsõsorban is keressük fel a kiadó webhelyét a www.sampublishing.com/ címen. Emellett készítettem egy webhelyet a www.TeachYourselfCSharp.com címen kifejezetten az e könyvvel kapcsolatban felmerülõ témáknak, így itt hibajegyzéket is találhatunk.
Forráskód Hitem szerint egy programozási nyelvet legjobban úgy sajátíthatunk el, ha magunk gépeljük be a példák kódrészleteit, majd megfigyeljük futási eredményüket. Természetesen azt is elismerem, hogy nem mindenki osztja ezt a hitet – ezért helyeztem el a mellékelt lemezen a könyvhöz tartozó forráskódokat. Ez a könyv a tanulás célját szolgálja, a forráskódok pedig arra vannak, hogy használjuk. Bõvítsük õket, osszuk meg barátainkkal, használjuk fel kedvünk szerint. A könyv megvételével jogot nyerünk e kódrészletek szabad felhasználására – egyetlen kivétellel: nem alkalmazhatjuk õket C# oktatóprogramban.
A mellékelt lemezrõl Amint a korábbiakban említettük, a könyvhöz tartozik egy CD, amely tartalmazza a fejezetekben fellelhetõ programrészletek forráskódját, valamint más programozási segédeszközöket. A lemez vezérlõprogramja bõvebb adatokkal szolgál a tartalomról.
Vágjunk bele! Értékelem az Olvasó kitartását, hogy eddig eljutott a bevezetõben – most azonban, gondolom, legszívesebben már a programozásról olvasna. Az elsõ hét Elõzetesében áttekintjük az elõttünk álló hét feladatait. Mire várunk hát? Vágjunk bele!
xvii
xviii
C# mesteri szinten 21 nap alatt
A szerzõrõl Bradley L. Jones (
[email protected]) több elismert fejlesztõi oldal – a CodeGuru.com, a Developer.com és a VBForums.com – fenntartója, emellett vezetõ szerkesztõje a Jupitermedia EarthWeb csatornájának, amely az Internet.com része. Bradley régebb óta dolgozik a C#-tel, mint a legtöbb fejlesztõ, ugyanis a Microsoft még a hivatalos béta változat megjelenése elõtt beavatta a fejlesztésbe. Szerzõnk jelentõs fejlesztõi háttérrel rendelkezik a C, C++, PowerBuilder, SQL Server és más eszközök terén, mindemellett õ a nagy sikerû elõd, a Teach Yourself C in 21 Days szerzõje is. Ha ellátogatunk a Developer.com vagy a CodeGuru.com webhelyre, számos cikket találhatunk Bradleytõl a .NET-tõl a mobilkommunikációs fejlesztéseken át az általános fejlesztési kérdésekig.
Köszönetnyilvánítás Egy könyv kiadásához nem elég egy jó szerzõ, aki megírja a tartalmát – sokak áldozatos munkája szükségeltetik ahhoz, hogy az ötlettõl végül eljussunk a kézbe fogható, lapozgatható példányokig. Mindenekelõtt szeretném megköszönni feleségemnek és családomnak, hogy türelemmel és megértéssel viselték, hogy a könyv írása során sokszor elhanyagoltam az élet más, hasonlóan fontos területeit. Szeretnék továbbá köszönetet mondani Mattias Sjögrennek és Anand Narayanaswamynak. Mattias az egyik legjobb mûszaki szerkesztõ, akivel eddigi könyveim kiadása során megismerkedtem. Tanácsai és éles szeme sokat segítettek abban, hogy az elsõ kiadás egy után valóban jobb második lásson napvilágot. Anand, a Microsoft munkatársa a második kiadás lektoraként került a képbe. Javaslatainak megvalósítása sok munkámba került, de végeredményben úgy érzem, valóban jobb könyv született. A szerkesztõ mellett ezrek olvasták e könyv anyagát a kiadást megelõzõen. Szeretném megköszönni ezeknek az olvasóknak is, hogy javaslataikkal segítettek egyes részek megváltoztatásában, bõvítésében, vagy éppen tisztázásában. Ezeket a visszajelzéseket mindig komolyan veszem, és sokukat alkalmazom az újabb kiadásokban és a hibajegyzékben.
C# mesteri szinten 21 nap alatt
Szeretnék köszönetet mondani a Sams Publishing kiadó munkatársainak is azért az áldozatos munkáért, amit e könyv megszületéséért végeztek. Candy Hall, Mark Renfrow, Krista Hansing, Matt Purcell, Brad Shannon, Nancy Albright és számos kollégájuk rengeteget tett azért, hogy e könyv a lehetõ legtöbbet nyújtsa az olvasóknak. Köszönet illeti õket mindezért. Nem szabad elfeledkeznünk emellett arról sem, hogy e könyv nem születhetett volna meg a Microsoft munkatársainak segítsége nélkül. Az utóbbi években oly sokan járultak hozzá munkám sikeréhez, hogy nevük felsorolására itt nincs is elegendõ hely. Külön ki kell emelnem a C# fejlesztõcsoportot – közülük is Nick Hodapp, Tony Goodhew és Eric Gunnerson nevét említeném – akikre mindig számíthattam a C#-tel kapcsolatos kérdések megválaszolásában. Élve a köszönetnyilvánítás itt adódó ritka lehetõségével, szeretném kifejezni hálámat a Microsoft más munkatársainak is, akik már több éve segítenek munkáimban. Eric Ewing, Stacey Girard, Brad Goldberg, Tony Goodhew, Rob Howard, Jeff Ressler, Scott Guthrie, Connie Sullivan, Dee Dee Walsh, Dennis Bye, Bob Gaines, Robert Green, David Lazar, Greg Leake, Lizzie Parker, Charles Sterling, Susan Warren, és kollégáik nagyon sokat tettek annak érdekében, hogy munkám sikeres legyen. Szeretném megköszönni Önnek is, kedves olvasó, hogy ezt a könyvet választotta. Léteznek a piacon más könyvek is e programnyelvrõl – örömmel tölt el, hogy nekem adatott meg a lehetõség, hogy bevezessem a C# világába. Végezetül, köszönet Bobnak is, aki valahogy mindig olyan egykedvû.
xix