A blokk · Bevezetés, környezet, Git · 2. tananyag
Egy nyelvet könnyebb megérteni, ha tudjuk, miért született. A C# mögött konkrét történet áll: lemaradás, egy jogi vita, egy legendás tervező — és két és fél évtized alatt egy zárt, Windows-only rendszerből nyílt forráskódú, minden platformon futó világ lett.
A C# családfája a C nyelvig nyúlik vissza (1972): ebből nőtt ki a C++ (objektumokkal), majd az 1995-ös Java, amely két nagy újítást hozott:
A Microsoft először a Javát próbálta a saját képére formálni (Visual J++), ebből azonban jogi vita lett a Java gazdájával, a Sun Microsystemsszel. A per 2001-ben egyezséggel zárult — addigra viszont a Microsoft eldöntötte: saját, modern platformot épít. Ez lett a .NET, és hozzá egy új nyelv: a C#.
A C# nem „a semmiből” jött: szándékosan úgy tervezték, hogy egy C++- vagy Java-programozó
szinte azonnal olvassa. A kapcsos zárójelek, a for, az
if ugyanúgy néznek ki — a különbség a részletekben és a
következetességben van.
A nyelv fő tervezője Anders Hejlsberg, aki korábban a Turbo Pascalt és a Delphit készítette — a Microsoft kifejezetten emiatt csábította át. A C# nyilvános bemutatása 2000-ben történt, az első kiadás (C# 1.0, a .NET Framework 1.0-val együtt) 2002-ben jelent meg.
A név egy zenei szójáték: a ♯ (kereszt) a zenében fél hanggal magasabb hangot jelöl — a C♯ tehát „a C-nél egy kicsit magasabb”.
A programozók kedvenc második olvasata: a # jel négy +
jelből is összerakható — vagyis a C# nem más, mint C++++. 😉
A táblázat üzenete: a nyelv évente fejlődik, de az alapok stabilak — amit idén megtanulsz, az a 2002-es alapokra épül, és a legfrissebb verzióban is ugyanúgy működik. A jobb oszlop mutatja, hol találkozol majd az adott újítással a tananyagban.
| Verzió (év) | Mit hozott? | Miért fontos nekünk? |
|---|---|---|
| C# 1.0 (2002) | az alapnyelv | minden, amit kezdetben tanulunk, már ebben megvolt |
| C# 2.0 (2005) | generikusok | ebből lesz a List<T> — E blokk |
| C# 3.0 (2007) | LINQ, var | lekérdezések gyűjteményeken — J blokk |
| C# 5.0 (2012) | async/await | aszinkron kód (jövőre lesz téma) |
| C# 8.0 (2019) | nullable referenciatípusok | a null-hibák elleni védelem — H blokk |
| C# 9.0 (2020) | top-level statements, rekordok | ezért indulhat a programunk egyetlen sorral |
| C# 14 (2025) | a mi verziónk | a .NET 10-zel érkezett |
Tedd az eseményeket a helyükre az idővonalon!
A .NET első bő évtizede zárt és Windows-only volt (.NET Framework). Aztán három lépésben minden megváltozott:
| .NET Framework (régi) | .NET (mai) | |
|---|---|---|
| Platform | csak Windows | Windows, Linux, macOS |
| Forráskód | zárt | nyílt (GitHub) |
| Verziók | 1.0 → 4.8, lezárva | 5 → 10 →, évente |
A .NET-kiadások váltakozó ritmusban jönnek: a páros főverziók (6, 8, 10) LTS-ek (Long Term Support — hosszan, 3 évig támogatott kiadások), a páratlanok (7, 9) rövidebb életű STS-ek (Standard Term Support). Iskolában és cégeknél jellemzően LTS-t használnak — mi is ezért dolgozunk a .NET 10-zel.
⭐ alap · ⭐⭐ haladó · ⭐⭐⭐ kihívás
Nézz utána a C# családfájának, miből és miért alakult ki a C# (C → C++ → Java → C#)?. Írd mindegyik mellé egy mondatban, mit adott hozzá a következőhöz.
Mit jelent az LTS, és miért ezt választja egy iskola vagy egy cég?
A .NET 2014–2016-ban nyílt forráskódú és platformfüggetlen lett. Írj 3 érvet: miért érte ez meg a Microsoftnak? (Segítség: fejlesztők bizalma, szerverek világa, Linux.)
Keresd meg a GitHubon a dotnet/runtime tárolót.
Hány közreműködője van? Nézd meg a legutóbbi módosítást — mikor történt?
Mit mond ez a projekt állapotáról?
Minden kérdésnél egy válasz helyes. A végén pontszámot kapsz.
| Fogalom | Jelentés |
|---|---|
| .NET Framework | a .NET első, zárt, csak Windowson futó generációja (1.0–4.8) |
| .NET Core / .NET | a mai, nyílt forráskódú, platformfüggetlen .NET (5, 6, … 10) |
| Roslyn | a C# nyílt forráskódú fordítója |
| nyílt forráskód (open source) | a program forráskódja nyilvános: bárki olvashatja, javíthatja |
| platformfüggetlen | több operációs rendszeren is futó szoftver |
| LTS (Long Term Support) | hosszan (3 évig) támogatott .NET-kiadás — ilyen a .NET 10 |
| NuGet | a .NET csomagkezelője, kész könyvtárak forrása |
| Anders Hejlsberg | a C# fő tervezője (korábban: Turbo Pascal, Delphi) |