| 1. A .NET Framework bemutatása |
| A .NET stratégia elemei. A .NET keretrendszer célja, komponensei. A Common Language Runtime szerepe és felépítése. Programozási nyelvek a .NET keretrendszerben. Futtatási mechanizmusok a .NET Frameworkben. A Framework Class Library áttaekintése. A .Net Framework keretrendszer fejlődése. |
| 2. Bevezetés a C# 3.0 nyelv használatába |
| A C# 3.0 áttekintése. A Visual Studio, mint fejlesztői környezet bemutatása. A "Hello világ" programocska megírása C# nyelven. Névterek és referenciák használata, írás és olvasés konzolon keresztül, szövegek formázása. Kód fordítása és visszafejtése: ILDASM és .NET Reflector használata. |
| 3. .NET típusok |
| A .NET keretrendszerben elérhető típusok általános jellemzői, a különböző típusok - érték és referencia - közül a megfelelő választása és használata. Típusok közötti konverzió. A boxing és unboxing fogalma, és hatása a teljesítményre. |
| 4. Osztályok |
| Saját osztályok készítése. Az osztály elemei, láthatósága, beágyazott típusok, mezők, konstruktorok készítése, konstatnsok és readonly mezők használata, property és automatikus property használata, objektumok inicializálása, metódusok, statikus osztályok, extension method írása, parciális típusok és metódusok, a new operátor, paraméterek modifiers, változó paraméterlista, a belépési pont és paraméterei, destruktor. |
| 5. A szemétgyűjtő szerepe és működése (Garbage Collection) |
| A .Net Garbage Colletor működése, használata. Destruktorok, finalizerek. Generációk fogalma, szerepe a "takarításban". |
| 6. XML Dokumentáció |
| XML dokumentumok készítése. Kommentezések. 3rd party eszközök használata dokumentáció készítésére. |
| 7. Tömbök és stringek |
Tömbök fogalma, formátuma. Elemek elérése, határellenőrzés. Tömbök kontra kollekciók. Tömb példányok létrehozása, inicializálása. Többdimenziós tömb típusok. Tömbök létrehozása futásidőben. Tömbök másolása. Főbb jellemzők, metódusok. Sorbarendezés, bináris keresés. Tömbök mint metódus paraméterek és visszatérési értékek. Parancssori paraméterek elérése. String típus. String műveletek. StringBuilder használata, szükségessége. Literálok. |
| 8. Objektum orientált programozás alapok |
| Osztály, objektum fogalmak letisztázása. Identitás, állapot, viselkedés. Osztályok kontra struktúrák. Absztrakció fogalmának megvilágítása. Adatok és műveletek egységbezárása., láthatóság szabályozása. Objektumszintű és osztályszintű adatok. Statikus mezők, metódusok. Osztályok definiálása C# nyelven. Objektumok példányosítása, belső állapot inicializálása. A this kulcsszó, használata method chaining-re. Egymásba ágyazott osztályok készítése, láthatósági kérdések. Objektumorientált rendszerek felépítése: öröklődés, osztályhierarchiák, egyszeres és többszörös öröklődés, polimorfizmus, absztrakt alaposztályok, interfészek, korai és kései kötés. Példa egy design pattern-re. |
| 9. Strúktúrák és felsorolások |
| Saját érték típusok készítése. Mezők inicializálása. Nullable típusok jellemzői, készítése, használata. Felsorolások készítése, használata. |
| 10. Indexerek |
| Indexer készítése, használata. Több paraméteres indexerek használata. String indexer példa. BitArray indexer példa. |
| 11. Kivételkezelés |
| Miért nem jók a hibakódok? Vége a HRESULT-nak? Exception hierarchia. Try és catch blokkok. Több catch blokk használata szelektív kivételkezelésre. Kivételek eldobása, továbbpasszolása. A finally használata. Aritmetikai műveletek túlcsordulás ellenőrzése a checked és az unchecked kulcsszavakkal. |
| 12. Interfészek |
| Intefészek deklarációja és implementálása. Implicit és explitic implementálás."Beépített" interfészek. |
| 13. Operátorok túltöltése |
| Az operátorok szerepe. Operátorok felüldefiniálása. Relációs operátorok megvalósítása. Logikai operátorok megvalósítása. Implicit és explicit konverziós operátorok létrehozása. |
| 14. Delegatek és eventek |
| Delegate-ek szerepe a .NET keretrendszerben. Egy gyakorlati probléma elemzése és a delegate bevezetése. Létrehozás, inicializálás, metódushívás. Események működése, használata. |
| 15. Metaadatok, attribútumok és reflekció |
| Metaadat táblák.Bevezetés az attribútumokba. Attribútumok alkalmazása, előre definiált attribútumok. A Conditional attribútum. A Transaction attribútum. Saját attribútumok létrehozása. Hogyan tárolódnak és hajtódnak végre az attribútumok? Metaadatok elérése Reflectionnel. |
| 16. Generics |
| Generics ismertetése. Generikus interfészek, metódusok, delegatek készítése, használata, működése. Generikus kollekciók. |
| 17. Telepítés, verziózás, konfiguráció |
| .Net alkalmazás telepítése. Verzió beállítása. GAC. |
| 18. Unsafe kód, és interop alapok |
| .Net interop lehetőségek. Platfrom invoke. unsafe kód. |
| 19. c# 3.0 alapok, LINQ 2 Objects |
| A c# 3.0 nyelvi újdonságai. Auto property. Object initializer. Collection initializer. Local varible type. Extensions methods. Lamda kifejezések. LINQ kifejezések. LINQ 2 objects. |