C# és .NET a modern szoftvertervezés és -fejlesztés legnépszerűbb technogiái közé tartoznak, amelyeket fejlesztők milliói használnak világszerte. Annak érdekében, hogy mi is hozzájáruljunk szélesebb körű megismerésükhöz, Ruzsinszki Gábor, az Evosoft senior szoftver architectje és Microsoft MVP díjad fejlesztője segítségével tekintettük át fejlődésük történetét, felhasználásuk területeit és nyelvi sajátosságait.
A C# egy erőteljes, objektumorientált programozási nyelv, mely lehetővé teszi az alkalmazások egyszerű és hatékony írását a .NET keretrendszer pedig még hatékonyabbá teszi használatát. Tartalmazza például azokat a funkciókat, amelyekre az alkalmazásoknak szüksége van, mint például adatbázis-kezelés, hálózati kommunikáció és grafikai felhasználói felület-tervezés. A C# és .NET így együttesen biztosítják a fejlesztők számára a modern szoftvertervezési és -fejlesztési eszközöket, amelyekkel hatékony és megbízható alkalmazások hozhatók létre.
Ha kíváncsi vagy a teljes webináriumra, az alábbi videóra kattintva visszanézheted, de néhány bekezdésben mi is összefoglaltuk főbb pontjait.
A C# és a .NET framework korai szakasza
“Ha a ‘90-es években desktop, vagy webes alkalmazásfejlesztésben gondolkozott az ember, akkor a Microsoftnak az MFC technológiája, illetve a Conplus technológiája volt az, ami lehetőséget biztosított a modulásris fejlesztésre. Ennek megvoltak a bajai, C-ben, C++-ban kellett őket programozni és a szoftverek leggyakoribb hibaoka a nem megfelelő pointerkezelés volt és ennek kivédésére igyekeztek egy sokkal biztonságosabb nyelvet létrehozni” – kezdte előadását Gábor, akit a Codersrank C# tekintetében világszinten is a fejlesztők top 1%-a között tart számon.
A C# ugyan az objektumorientált nyelvek közé tartozik, közel sem tekinthető Java klónnak, dizájnjában ugyanis inkább a C++ szolgált alapként. Mégis az egyik legkönnyebben elsajátítható, sokoldalúan használható és jól supportált nyelvről van szó a világon.
“A 3.0-ás framework óta a forráskódja a keretrendszernek publikus. Ez a .NET reference source alatt érhető el, viszont ezt a forráskódot arra nem lehetett használni, hogy valaki copy-paste egy .NET kompatibilis keretrendszert készítsen. Helyette arra szolgál, hogy a fejlesztők jobban megértsék, hogyan is működik a keretrendszernek a lelki világa.” – 2002-es megjelenése után tehát a legnagyobb változást a nyelv életében az open source-szá válása jelentette 2007-ben. – “Végül 2012-ben jött az 5.0-ás változat, ami a taskok kezelését kiegészítette az Async await kulcsszavakkal, tehát párhuzamos programokat írni innentől kezdve piszok egyszerűen lehetett.”
A .NET Core megjelenése
“2012-ben volt egy elnökváltás és 2014-ben be is jelentették, hogy a .NET platformot teljes egészében multiplatformmá teszik. Tehát open source alatt meg fog nyílni és ahol csak lehet, ott C#-ot és .NET-et lehet használni. Ekkor még én is kicsit szkeptikus voltam, hogy fogják megoldani, hogy ezt a nagy infrastruktúrát, amit kialakítottak, multiplatformmá tegyék. Ez persze nem egyik napról a másikra zajlott. Az első visszatartó probléma a C# compilere volt, aminek az átírása 2016-ban fejeződött be.” – Ekkor érkezett a .NET Core 1.0, amit 2017-ben követett a 2.0, 2018-ban a 2.1, 2019-ben a 3.0 és 3.1, 2020-ban a .NET 5 és 2021-ben a .NEt 6, amivel a C# is eljutott a 10. verziójáig.
A C# és .NET felhasználási területei
Ahogy fentebb már volt róla szó, a C# és .NET is multiplatform technológiává vált, ennek köszönhetően széleskörben használható. Többek között:
- webfejlesztésre,
- desktop alkalmazások fejlesztésére,
- mobilfejlesztésre,
- microservice fejlesztésre,
- felhő alapú technológiákhoz,
- videojáték fejlesztésre,
- valamint Machine Learning és IOT területén is.
A C# nyelvi sajátosságai
Nevéből is sejthető, hogy a C# a C-szerű nyelvek közé tartozik és a C++ egyfajta továbbfejlesztése. Habár nem nevezhető Java copy-nak, amire maga a dizájner, Anders Hejlsberg már a nyelv bejelentésekor felhívta a figyelmet, tény, hogy sok funkcióját a Java inspirálta.
“Az újabb változatokban megtalálható pattern matching elég komoly eszköztárat ad a fejlesztők kezébe, hogy objektumorientált környezetben annak minden előnyével és hátrányával olyan programokat tudjunk írni, amelyek tényleg a lényegre fókuszálnak. És nem kell olyan dolgokkal elveszni, hogy egy rendezést hogyan implementálok, mert a keretrendszer fel van rá készítve.
Ami nekem még nagyon nagy segítség volt a kezdetek kezdetén, hogy a dokumentáció nyelvi szinten be van építve. Tehát minden metódus dokumentálható és a Microsoft ezzel erősen is él. Kvázi az eszközöknek hála, ha már elkezdünk írni egy kódot, a dokumentációt is pillanatok alatt meg tudjuk nézni.”
Előadónk azt is megjegyezte, hogy a nyelv elsajátítása ugyan jóval egyszerűbb, mint a C-nek, vagy a C++-nak, de azért ígyis jelent némi kihívást még a tapasztalt fejlesztők számára is. Ha érdekel a C# fejlesztés, de szükséged lenne benne némi segítségre, nézz szét mentorált online képzéseink között!