Grafikus C# – Windows Forms tanfolyam › 4.8 lecke Windows Forms · 4.8 · bemutatás és dokumentálás Egy program akkor igazán kész, ha más is használni tudja, és te is megérted két hónap múlva. Ebben a leckében a kész projektedet „csomagolod ki a világnak”: kommenteled a kódot, megírod a README fájlt és a felhasználói útmutatót, összeállítod a kiadási csomagot, megtanulod a verziószámozást, és megtervezel egy meggyőző, 5 perces bemutatót. A végén egy rövid reflexió is szerepel: mit tanultál, és mit csinálnál másképp. Ez egy tanári pályára készülőnek különösen hasznos gyakorlat.Mini projekt bemutatása és dokumentálása

A lecke végére
- jó kommenteket és XML-dokumentációs kommenteket (
///) írsz a kódodhoz; - README fájlt készítesz Markdown formátumban;
- feladatalapú felhasználói útmutatót írsz;
- rövid fejlesztői dokumentációt (szerkezet, adatok, bővítés) állítasz össze;
- kiadási csomagot készítesz, és verziószámot adsz neki (változásnapló);
- 5 perces bemutatót tervezel élő demóval, és reflexiót írsz.
Mielőtt elkezded
A leckéhez kell egy működő projekt: a 4.4–4.6 önálló feladatok egyike, vagy a 4.7 leckében megtervezett saját programod. A 2.10 lecke „Csomagolás” szakasza a kiadási csomagot már érinti, itt továbbvisszük.
A kód dokumentálása: kommentek és XML-leírások
A dokumentáció három közönségnek szól: a felhasználónak (hogyan használja), a fejlesztőnek vagy értékelőnek (hogyan épül fel), és a jövőbeli önmagadnak (miért döntöttél így). A kód maga a legpontosabb leírás, de nem mond el mindent. A jó komment a miért kérdésre válaszol, nem arra, mit csinál a sor (azt a kód is megmutatja).
| Rossz komment | Jó komment |
|---|---|
// növeli az i-t eggyel | (nincs rá szükség: a kód magától érthető) |
// ide jön a mentés | // a Mentés csak akkor engedélyezett, ha a név nem üres (K2 követelmény) |
// ciklus | // a kijelölt sorok azonosítóit gyűjtjük, mert a törlés után a sorszámok eltolódnak |
// régi kód: SELECT * FROM adatok (kikommentezett kód) | (töröld ki; a korábbi változatok megvannak a mentésekben) |
Az XML-dokumentációs komment (///) a metódusok, osztályok és tulajdonságok leírása, amelyet a Visual Studio az IntelliSense ablakban is megjelenít, amikor a metódus nevére állsz. Ha a metódus fölé három törtvonalat (///) írsz, a Visual Studio magától kiegészíti a vázat:
/// <summary>
/// Elmenti a teendőt: új teendőnél (Id == 0) beszúrja, egyébként módosítja.
/// </summary>
/// <param name="t">A mentendő teendő. A <c>Hiba()</c> ellenőrzésen át kell mennie.</param>
/// <returns>A teendő azonosítója (új teendőnél az újonnan kapott).</returns>
/// <exception cref="ArgumentException">Ha az adatok hibásak.</exception>
/// <exception cref="InvalidOperationException">Ha a módosítandó teendő már nem létezik.</exception>
public static int Mentes(Teendo t)
{
// ...
}Gondold végig!
Mikor nem kell kommentet írni egy kódsorhoz, és mi lehet a jobb megoldás a komment helyett?
Egy lehetséges válasz
Ha a komment csak azt ismétli, amit a kód is mond (// i növelése), felesleges. Ha egy bonyolult kódrészt kell megmagyarázni, gyakran jobb a kódot átírni: beszédes változó- és metódusnevek (nyitottTeendokSzama a szam2 helyett), kisebb metódusok. A komment azt pótolja, amit a kód nem tud kifejezni: a miért-et, a döntések okát, a külső szabályokat és a buktatókat.
A README: a projekt névjegye
A README az első fájl, amelyet valaki a projektedben megnyit. Néhány perc alatt meg kell válaszolnia: mi ez, mire jó, hogyan indítom el, és mi van benne? Általában README.md a neve: az .md a Markdown formátumot jelzi, egy egyszerű jelölőnyelvet, amelyet sima szövegként is lehet olvasni, de sok program formázva jelenít meg. A leggyakoribb jelölések:
| Jelölés | Eredmény |
|---|---|
# Cím, ## Alcím | Címsorok (a # darabszáma a szint). |
**félkövér**, *dőlt* | Kiemelés. |
- elem | Felsorolás. |
1. elem | Számozott lista. |
`kód` | Kódrészlet a szövegben. |
 | Kép beszúrása. |
# Teendőlista
Egyszerű Windows Forms program teendők kezelésére: felvétel, módosítás,
törlés, szűrés, keresés és a lejárt határidők kiemelése.

## Funkciók
- Teendők felvétele címmel, leírással, határidővel és fontos jelöléssel
- Kész/nyitott állapot jelölése
- Szűrés állapot szerint, keresés a címben és a leírásban
- A lejárt, nyitott teendők pirossal látszanak
## Futtatás
1. Csomagold ki a `Teendolista_1.0.0.zip` fájlt egy tetszőleges mappába.
2. Indítsd a `Teendolista.exe` fájlt.
3. Szükséges: Windows 10 vagy újabb, .NET Framework 4.7.2 (a Windows 10 már tartalmazza).
## Az adatok
Az adatok a `teendok.db` SQLite fájlban vannak, a program mappájában.
Biztonsági mentéshez másold a fájlt másik helyre.
## Ismert hibák és korlátok
- Egyszerre egy felhasználó használja (nincs hálózati mód).
- Az ékezetek nélküli keresés nem támogatott.
## Készítő és verzió
Készítette: Minta Anna, 2026. Verzió: 1.0.0 (lásd: CHANGELOG.md)
A program a System.Data.SQLite csomagot használja.A jó README mérőszáma
Adj egy kezdőnek egy üres gépet és a README fájlt. Ha magyarázat nélkül el tudja indítani és ki tudja próbálni a programot, jó a README. Ha rákérdez valamire, azt a választ írd bele a fájlba.
A felhasználói útmutató
A felhasználó nem a programozásra kíváncsi, hanem arra, hogyan érje el a célját. Ezért az útmutató feladatok szerint épül fel („Hogyan veszek fel új teendőt?”), nem a gombok és menük listája szerint. Minden feladat: címsor, 3–7 számozott lépés, és ahol kell, egy képernyőkép. A lépések felszólító módban, rövid mondatokban szólnak: Kattints az Új gombra.
Felépítés
- Mire való a program? (2 mondat)
- Az első indítás.
- A leggyakoribb feladatok (egyenként).
- Hibaelhárítás (gyakori kérdések).
- Kapcsolat, verzió.
Egy jó lépéssor
Új teendő felvétele
1. Kattints az Új gombra.
2. Írd be a teendő címét (kötelező).
3. Ha van határidő, jelöld be a Van határidő négyzetet, és válaszd ki a napot.
4. Kattints az Új teendő felvétele gombra.
5. A teendő megjelenik a listában.
| Hibaelhárítás: tünet | Ok | Teendő |
|---|---|---|
| „Nem található az adatbázis” üzenet. | A teendok.db fájl nincs a program mellett. | Másold a fájlt a Teendolista.exe mellé, vagy csomagold ki újra a zip fájlt. |
| A program nem indul, hiányzó DLL-t jelez. | Hiányzik a kísérő fájl. | A teljes mappát másold át, ne csak az .exe fájlt. |
| A módosításaim nincsenek meg újraindítás után. | A program csak írásvédett helyről fut (például zip tartalmából). | Csomagold ki a zip fájlt egy normál mappába, és onnan indítsd. |
Fejlesztői leírás: egy oldalon a lényeg
A fejlesztői dokumentáció annak szól, aki át akarja venni a programot (egy társ, vagy te, fél év múlva). Nem kell hosszú, de legyen benne az, amit a kódból nehéz kiolvasni:
| Rész | Tartalma |
|---|---|
| Áttekintés | Egy ábra vagy lista a rétegekről: ablakok, adat-osztályok, adatkezelők, adatbázis. |
| Adatbázis | A táblák és oszlopok (CREATE TABLE vagy táblázat), a kapcsolatok, a példaadatok. |
| Osztályok | Táblázat: osztály, felelőssége, a fontosabb metódusai. |
| Fordítás és futtatás | Szükséges eszközök, NuGet csomagok, a .db fájl másolási beállítása (Copy if newer). |
| Döntések | Miért így? (például: miért ISO szöveg a dátum, miért NULL a hiányzó határidő). |
| Tesztek | A tesztterv és az eredmények (4.7 lecke); az ismert hibák. |
| Bővítési ötletek | Mit lehetne még megcsinálni, és hol kezdenéd. |
Ne a kódot másold a dokumentációba
A dokumentációba kerülő kódrészletek elavulnak, amint a kód változik. Inkább írd le a szerkezetet és a döntéseket, és hivatkozz az osztályokra a nevükkel. Ami a kódban van, azt a kód mutassa; a dokumentáció a kód mögötti gondolatot rögzítse.
Kiadás és verziószám
A kiadási csomag az, amit átadsz valakinek. A tapasztalat szerint a leggyakoribb hiba, hogy a program a te gépeden működik, de másén nem, mert elfelejtettél valamit mellékelni. A lépések:
- Állítsd a fordítási módot Release-re (a Visual Studio eszköztárában Debug helyett Release), és építsd újra a projektet (
Ctrl+Shift+B). - Nyisd meg a projekt
bin/Releasemappáját (a Fájlkezelőben, a 0.5 lecke szerint). - Másold egy új mappába a teljes tartalmat: az
.exefájlt, a.dllfájlokat (például aSystem.Data.SQLite.dllés a hozzá tartozóx86/x64mappák), a.dbadatbázist és a.configfájlt. - Tedd mellé a
README.md, a felhasználói útmutató és aCHANGELOG.mdfájlt. A.pdbfájlokat nem kell mellékelni (hibakeresési adatok). - Tömörítsd zip fájlba, és a nevébe írd a verziót:
Teendolista_1.0.0.zip. - Próbáld ki egy tiszta környezetben: csomagold ki egy másik mappába (vagy másik gépen), és indítsd el. Ez az utolsó, legfontosabb lépés.
Gondold végig!
Miért nem elég tesztelni a programot a Visual Studióból indítva (F5), ha át akarod adni? Mi lehet, ami a te gépeden működik, a másikén nem?
Egy lehetséges válasz
A Visual Studio a fejlesztői környezetedben futtatja a programot: ott megvannak a keretrendszerek, a csomagok, a fájlok elérési útjai és a jogosultságok. Másik gépen hiányozhat egy .dll vagy az adatbázisfájl, más lehet a Windows verziója, a felhasználó nyelvi beállítása (tizedesjel, dátumformátum), vagy az adott mappa írásvédett. Csak a kicsomagolt csomag kipróbálása mutatja meg, hogy minden szükséges fájl benne van-e.
Verziószám és változásnapló
A verziószám három részből áll: FŐ.ALSÓ.JAVÍTÁS (például 1.2.3). A számokat így növeld:
| Változás | Melyik szám nő? | Példa |
|---|---|---|
| Csak hibajavítás. | JAVÍTÁS | 1.0.0 → 1.0.1 |
| Új funkció, a régi működés megmarad. | ALSÓ | 1.0.1 → 1.1.0 |
| Nagy változás, amely a régi adatokat vagy használatot is érinti. | FŐ | 1.1.0 → 2.0.0 |
# Változásnapló
## 1.1.0 – 2026-11-15
- Új: határidő nélküli teendők kezelése
- Új: a lejárt teendők pirossal látszanak
- Javítva: a kész teendők törlése nem kért megerősítést
## 1.0.0 – 2026-10-30
- Első kiadás: felvétel, módosítás, törlés, szűrés, keresésA verziószámot a Visual Studióban a projekt tulajdonságainál (Properties → Application → Assembly Information) is megadhatod, így a program .exe fájljának tulajdonságai között is látszik. Verziókezelésre a nagyobb projekteknél a Git való: ez a tanfolyam nem tanítja, de ha eljutsz odáig, érdemes megtanulni. Addig a rendszeres, dátumozott zip-mentés (projekt_20261026.zip) is megteszi.
Az 5 perces bemutató
Egy jó bemutató nem a program minden gombját mutatja meg, hanem egy történetet mesél: milyen problémát old meg, hogyan működik, és mit tanultál közben. Öt perc kevés idő, ezért a szerkezet legyen szigorú:
| Idő | Rész | Mit mondj? |
|---|---|---|
| 0:00–0:30 | A probléma | Kinek és mire kell a program? („Én mindig elfelejtem a határidőket…”) |
| 0:30–1:00 | A megoldás röviden | Egy mondat a programról, és hogy mit tud (három fő funkció). |
| 1:00–3:30 | Élő bemutató | Egy teljes forgatókönyv: új adat felvétele, módosítás, keresés, a lényeges funkció. Legyen benne egy hibakezelési példa is (hibás bevitel, érthető üzenet). |
| 3:30–4:30 | Mögötte: a szerkezet és a nehézség | Az osztályok, az adatbázis egy ábrán; egy nehézség, amelyet megoldottál (és hogyan). |
| 4:30–5:00 | Tanulság és kérdések | Mit tanultál, mit csinálnál másképp, mi lenne a következő lépés. Kérdések. |
Mit érdemes előre elkészíteni?
- Tesztadatok az adatbázisban (ne üres programot mutass).
- Írott forgatókönyv: pontos kattintássor a demóhoz.
- Tartalék: egy rövid képernyőfelvétel vagy képernyőképek arra az esetre, ha a program vagy a gép nem működik.
- Az ablakok mérete és a betűméret legyen jól olvasható a teremből is.
Mit kerülj el?
- Ne olvasd fel a diákat vagy a kódot.
- Ne mutass meg mindent: válassz ki 3 dolgot.
- Ne kezdj el élőben hibát keresni; ha elromlik, válts a tartalékra.
- Ne lépd túl az időt: gyakorold stopperrel legalább kétszer.
A hibakezelés bemutatása meggyőző
Sok bemutató csak azt mutatja, hogy a program működik, ha mindent jól csinálunk. Az igazán meggyőző az, amikor szándékosan hibás adatot írsz be, és a program érthetően reagál. Ez mutatja meg, hogy gondoltál a valódi felhasználóra.
Reflexió: mit tanultál?
A projekt végén írj rövid reflexiót (egy oldal). Ez nemcsak a programozás tanulásában segít, hanem a tanári pályán is hasznos: a saját tanulásod tudatos elemzése az egyik legjobb módszer a fejlődésre és a tanulók tanítására.
| Kérdés | Gondolj arra… |
|---|---|
| Mit sikerült jól megoldanom? | Mire vagy büszke, és miért működött? |
| Mi volt a legnehezebb, és hogyan léptem túl? | Hol akadtál el, mi segített (dokumentáció, kipróbálás, kérdezés)? |
| Mit csinálnék másképp? | Melyik döntést változtatnád meg most, ismerve a végeredményt? |
| Mit tanultam, amit korábban nem tudtam? | Három konkrét dolog: egy fogalom, egy módszer, egy hiba. |
| Hogyan tanítanám ezt másnak? | Melyik rész lenne nehéz egy 10. osztályosnak, és milyen feladattal segítenél? |
A te feladatod: a bemutatócsomag
Állítsd össze a saját (vagy a 4.4–4.6 feladatok egyikéből készült) projektedhez a bemutatócsomagot:
- Kód: XML-dokumentációs kommentek (
///) legalább a fő adatkezelő osztály összes nyilvános metódusán, és a bonyolultabb részeken miért kommentek. Nincs kikommentezett holt kód. - README.md: a minta szerkezete (leírás, funkciók, futtatás, adatok, ismert hibák, készítő és verzió), egy képernyőképpel.
- Felhasználói útmutató: legalább három feladat (számozott lépések), és egy hibaelhárítási táblázat 3 sorral. Egy-két oldal.
- Fejlesztői leírás: egy oldal: szerkezet, adatbázis, osztályok táblázata, fordítás, döntések, ismert hibák.
- Kiadási csomag: a
Releaseváltozatból összeállított, verziószámos zip (példáulProjekt_1.0.0.zip), egy másik mappába kicsomagolva kipróbálva;CHANGELOG.md. - Bemutató: az 5 perces forgatókönyv (időbeosztással és a demó kattintássorával), és egy gyakorlás stopperrel.
- Reflexió: egy oldal az öt kérdés alapján.
| Rész | Szempont | Pont |
|---|---|---|
| Kód dokumentálása | Hasznos kommentek és XML-leírások, nincs holt kód. | 15 |
| README | Teljes, érthető, egy kezdő is elindítja belőle. | 15 |
| Felhasználói útmutató | Feladatalapú, lépésenkénti, hibaelhárítással. | 20 |
| Fejlesztői leírás | Szerkezet, adatok és döntések; nem a kódot másolja. | 15 |
| Kiadási csomag | Teljes, verziózott, tiszta környezetben kipróbált. | 15 |
| Bemutató és reflexió | Szerkezetes forgatókönyv hibakezelési példával; őszinte, konkrét reflexió. | 20 |
Összesen: 100 pont. Mit tegyél ide: a kész kiadási csomag mappája (exe, dll-ek, adatbázis, README, útmutató, változásnapló), vagy a README formázott megjelenítése.Javasolt fájlnév: winforms-4-8-csomag.webp · Alt szöveg: Egy kiadási csomag tartalma
Gyakorlótár: 6 további feladat
Három szinten gyakorolhatsz: alap, közepes és kihívás. Csak a próbálkozás után nyisd le a megoldást.
Alap szint
1. XML-dokumentáció írása
Írj XML-dokumentációs kommentet ( A leírás a mit és mikor kérdésre válaszol, és kimondja a visszatérési érték jelentését:summary, param, returns) ehhez a metódushoz: public static bool Torles(int id), amely a megadott azonosítójú teendőt törli, igazat ad, ha sikerült, hamisat, ha nincs ilyen azonosító.Megoldás megnyitása
/// <summary>
/// Törli a megadott azonosítójú teendőt az adatbázisból.
/// </summary>
/// <param name="id">A törlendő teendő azonosítója.</param>
/// <returns>Igaz, ha a teendőt törölte; hamis, ha nincs ilyen azonosítójú teendő.</returns>
public static bool Torles(int id)
2. Kommentek javítása
Javítsd ezeket a kommenteket: (a) (a) Töröld: a név és a típus magától érthető; ha kell, beszédesebb a név (// változó egy int db = 0; sor fölött; (b) // ha a feltétel igaz egy if (nyitott && lejart) fölött; (c) kikommentezett régi kód három sorban.Megoldás megnyitása
nyitottDb). (b) Mondd el a miért-et: // a lejárt, nyitott teendőket pirossal emeljük ki (K7). (c) Töröld ki a holt kódot: ha kell, a korábbi változat megvan a mentésekben (vagy később a verziókezelőben).
Közepes szint
3. A README hiányosságai
Értékeld ezt a README-t, és sorold fel, mi hiányzik belőle: # Program Hiányzik: a program neve és célja (mire való), a funkciók, a futtatás lépései (hova csomagold ki, mit indíts, mi a követelmény), az adatok helye (adatbázisfájl), egy képernyőkép, az ismert hibák és korlátok, a készítő és a verzió. Az „Ez egy program” semmit nem mond, a „Futtasd” pedig nem árulja el, hogyan.
Ez egy program. Futtasd.Megoldás megnyitása
4. Lépéssor írása
Írd meg a felhasználói útmutató egy szakaszát: Teendő törlése. Legfeljebb 6 lépés, felszólító módban, az esetleges megerősítéssel és a kudarc esetével együtt. Teendő törléseMegoldás megnyitása
1. Kattints a törlendő teendőre a listában.
2. Ellenőrizd a jobb oldali mezőkben, hogy valóban ezt akarod törölni.
3. Kattints a Törlés gombra.
4. A felugró kérdésnél kattints az Igen gombra. (A Nem gomb megszakítja a törlést.)
5. A teendő eltűnik a listából.
Megjegyzés: A törlés nem vonható vissza. Ha nem találod a Törlés gombot, előbb válassz ki egy teendőt.
Kihívás szint
5. Demó forgatókönyv
Írj 2,5 perces demó forgatókönyvet a teendőlistához kattintássorral: mit mutatsz, milyen sorrendben, és melyik ponton mutatsz hibakezelést? Mi a tartalék terv? Tartalék terv: egy 2 perces képernyőfelvétel vagy 6 képernyőkép a fenti lépésekről. Ha a program nem indul, azonnal válts erre, és ne próbálj élőben hibát keresni. Az előre feltöltött tesztadatok és a gyakorlás stopperrel biztosítja az időtartást.Megoldás megnyitása
Idő Lépés Mit mondj? 0:00 Az indulás után a lista látszik (előre feltöltött adatokkal). „Itt vannak a nyitott teendőim, a pirosak lejártak.” 0:25 Új teendő: cím és határidő, mentés. „Felveszek egy új teendőt határidővel.” 0:55 Hiba: üres címmel mentés. „Ha elfelejtem a címet, a program szól, és nem menti.” 1:15 Teendő kész jelölése, a szűrő váltása Kész nézetre. „Ha elkészültem, kipipálom, és a kész lista külön látszik.” 1:45 Keresés egy szóra. „A kereső a címben és a leírásban is keres.” 2:15 Összefoglaló felirat mutatása. „Alul látom, hány nyitott és késésben lévő teendőm van.”
6. Verzióválasztás
A program 1.2.0. Melyik az új verziószám, ha: (a) kijavítasz egy hibás szűrőt; (b) hozzáadsz egy új exportálás funkciót; (c) átalakítod az adatbázist úgy, hogy a régi adatfájlok nem nyithatók meg közvetlenül? Írd meg a változásnapló bejegyzését is az (a) esetre. (a) 1.2.1 (hibajavítás: a JAVÍTÁS szám nő). (b) 1.3.0 (új funkció, a régi működés megmarad: az ALSÓ szám nő, a JAVÍTÁS nullázódik). (c) 2.0.0 (a régi adatokat érintő nagy változás: a FŐ szám nő). A változásnapló:Megoldás megnyitása
## 1.2.1 – 2026-11-20
- Javítva: a „Kész” szűrő a nyitott teendőket is mutatta
Gyors önellenőrzés
Válaszolj fejben, és csak utána nyisd le a választ. A miért kérdésre: a döntések okára, a szabályokra és a buktatókra. Azt, hogy a kód mit csinál, a kód maga is megmutatja. A metódus, osztály vagy tulajdonság leírása ( A projekt névjegye: mire való, funkciók, hogyan futtasd, hol vannak az adatok, ismert hibák, készítő és verzió. Mert a felhasználó a célját akarja elérni („hogyan veszek fel teendőt?”), és nem a gombok listájára kíváncsi. Az Hibajavításnál a JAVÍTÁS, új funkciónál az ALSÓ (a JAVÍTÁS nullázódik), a régit érintő nagy változásnál a FŐ szám nő. Mert megmutatja, hogy a programod a hibás bevitelre is érthetően reagál, vagyis gondoltál a valódi felhasználóra.1. Mire válaszol a jó komment?
2. Mire való az XML-dokumentációs komment?
summary, param, returns, exception), amelyet az IntelliSense is megmutat használatkor.3. Mi a README, és mi kell bele?
4. Miért feladatalapú a felhasználói útmutató?
5. Mit kell a kiadási csomagba tenni, és mit nem?
.exe, a .dll fájlok, az adatbázis és a konfigurációs fájl, valamint a README, az útmutató és a változásnapló kell. A .pdb hibakeresési fájlok és a forráskód nem kellenek.6. Mi a FŐ.ALSÓ.JAVÍTÁS verziószám szabálya?
7. Miért érdemes a bemutatóban hibát is mutatni?
Mit tudsz már? (a 4. fejezet végén)
- Önállóan felépítesz és megterveztetsz egy alkalmazást.
- Teszteled, dokumentálod és verziózod a munkádat.
- Kiadási csomagot készítesz, és tiszta környezetben kipróbálod.
- Meggyőző, szerkesztett bemutatót tartasz, és reflektálsz a saját tanulásodra.
Következő lecke: események és delegáltak
A 4. fejezet kész. Az 5. fejezetben a Windows Forms eseménykezelését vizsgáljuk meg részletesen: hogyan működnek az események a háttérben, és hogyan használd őket bátran.



