Grafikus C# – Windows Forms tanfolyam › 4.8 lecke

Windows Forms · 4.8 · bemutatás és dokumentálás

Mini projekt bemutatása és dokumentálása

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.

  • kb. 120 perc
  • dokumentálás és bemutatás
  • kiadási csomag
Diák C# programozást gyakorol egy tanulósarokban

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.

4.7 Projekt tervezése és tesztelése →

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 kommentJó 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:

TeendoTar.csC#
/// <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)
{
// ...
}
<summary>Egy-két mondatos leírás: mit csinál a metódus.
<param name="...">A paraméter jelentése, és az elvárás vele kapcsolatban.
<returns>Mit ad vissza a metódus.
<exception>Milyen kivételt dobhat, és mikor. Így a hívó tudja, mit kell kezelnie.

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ésEredmény
# Cím, ## AlcímCímsorok (a # darabszáma a szint).
**félkövér**, *dőlt*Kiemelés.
- elemFelsorolás.
1. elemSzámozott lista.
`kód`Kódrészlet a szövegben.
![leírás](kep.png)Kép beszúrása.
README.md (minta)Markdown
# 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.

![Főablak](kepek/fo-ablak.png)

## 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

  1. Mire való a program? (2 mondat)
  2. Az első indítás.
  3. A leggyakoribb feladatok (egyenként).
  4. Hibaelhárítás (gyakori kérdések).
  5. 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ünetOkTeendő
„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észTartalma
ÁttekintésEgy ábra vagy lista a rétegekről: ablakok, adat-osztályok, adatkezelők, adatbázis.
AdatbázisA táblák és oszlopok (CREATE TABLE vagy táblázat), a kapcsolatok, a példaadatok.
OsztályokTáblázat: osztály, felelőssége, a fontosabb metódusai.
Fordítás és futtatásSzükséges eszközök, NuGet csomagok, a .db fájl másolási beállítása (Copy if newer).
DöntésekMiért így? (például: miért ISO szöveg a dátum, miért NULL a hiányzó határidő).
TesztekA tesztterv és az eredmények (4.7 lecke); az ismert hibák.
Bővítési ötletekMit 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:

  1. Á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).
  2. Nyisd meg a projekt bin/Release mappáját (a Fájlkezelőben, a 0.5 lecke szerint).
  3. Másold egy új mappába a teljes tartalmat: az .exe fájlt, a .dll fájlokat (például a System.Data.SQLite.dll és a hozzá tartozó x86/x64 mappák), a .db adatbázist és a .config fájlt.
  4. Tedd mellé a README.md, a felhasználói útmutató és a CHANGELOG.md fájlt. A .pdb fájlokat nem kell mellékelni (hibakeresési adatok).
  5. Tömörítsd zip fájlba, és a nevébe írd a verziót: Teendolista_1.0.0.zip.
  6. 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ásMelyik szám nő?Példa
Csak hibajavítás.JAVÍTÁS1.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
CHANGELOG.mdMarkdown
# 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és

A 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észMit mondj?
0:00–0:30A problémaKinek és mire kell a program? („Én mindig elfelejtem a határidőket…”)
0:30–1:00A megoldás rövidenEgy 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:30Mögötte: a szerkezet és a nehézségAz osztályok, az adatbázis egy ábrán; egy nehézség, amelyet megoldottál (és hogyan).
4:30–5:00Tanulság és kérdésekMit 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ésGondolj 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:

  1. 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.
  2. 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.
  3. 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.
  4. Fejlesztői leírás: egy oldal: szerkezet, adatbázis, osztályok táblázata, fordítás, döntések, ismert hibák.
  5. Kiadási csomag: a Release változatból összeállított, verziószámos zip (például Projekt_1.0.0.zip), egy másik mappába kicsomagolva kipróbálva; CHANGELOG.md.
  6. Bemutató: az 5 perces forgatókönyv (időbeosztással és a demó kattintássorával), és egy gyakorlás stopperrel.
  7. Reflexió: egy oldal az öt kérdés alapján.
RészSzempontPont
Kód dokumentálásaHasznos kommentek és XML-leírások, nincs holt kód.15
READMETeljes, é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ásSzerkezet, adatok és döntések; nem a kódot másolja.15
Kiadási csomagTeljes, 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.

📷 Képernyőkép helye

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 (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

A leírás a mit és mikor kérdésre válaszol, és kimondja a visszatérési érték jelentését:

C#C#
/// <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) // 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

(a) Töröld: a név és a típus magától érthető; ha kell, beszédesebb a név (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
Ez egy program. Futtasd.

Megoldás megnyitása

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.

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.

Megoldás megnyitása

Teendő törlése
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?

Megoldás megnyitása
IdőLépésMit mondj?
0:00Az 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:55Hiba: üres címmel mentés.„Ha elfelejtem a címet, a program szól, és nem menti.”
1:15Teendő 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:45Keresé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.”

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.

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.

Megoldás megnyitása

(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ó:

CHANGELOG.mdMarkdown
## 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.

1. Mire válaszol a jó komment?

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.

2. Mire való az XML-dokumentációs komment?

A metódus, osztály vagy tulajdonság leírása (summary, param, returns, exception), amelyet az IntelliSense is megmutat használatkor.

3. Mi a README, és mi kell bele?

A projekt névjegye: mire való, funkciók, hogyan futtasd, hol vannak az adatok, ismert hibák, készítő és verzió.

4. Miért feladatalapú a felhasználói útmutató?

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.

5. Mit kell a kiadási csomagba tenni, és mit nem?

Az .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?

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ő.

7. Miért érdemes a bemutatóban hibát is mutatni?

Mert megmutatja, hogy a programod a hibás bevitelre is érthetően reagál, vagyis gondoltál a valódi felhasználóra.

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.