< CSharp

A .Net keretrendszer

Kezdetben

Kezdetben a mikró-számítógépes időkben, nem volt még operációs rendszer. A felhasználó maga adott parancsot egy program betöltésére, majd utána az indítására, stb. Ezek a programok még grafikával is gyorsabbak voltak mint a mai gépek, éppen az operációs rendszerek hiánya miatt is. Ezen rendszerek tehát sematikusan így nézhetnek ki:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="200" height="70"> <rect width="100" height="30" style="fill:none; stroke-width:1; stroke:rgb(0,0,88)"/> <text x="10" y="20" style="">Program</text> <rect x="0" y="30" width="100" height="30" style="fill:none; stroke-width:1; stroke:rgb(0,0,88)"/> <text x="10" y="50" style="">Hardver</text> </svg>

A program, közvetlenül a hardveren futott.

Általános

A számítógépek hardvereinek fejlődése lehetővé tette, hogy ma már egy külön operációs rendszernek nevezett programok összessége segíti a hardver használatát. A programjainkat így az operációs rendszer futtatja. Az ilyen programokat hívjuk natív programoknak.

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="140" height="100"> <rect x="0" y="0" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="20" style="">Program</text> <rect x="0" y="30" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="50" style="">Operációs rendszer</text> <rect x="0" y="60" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="80" style="">Hardver</text> </svg>

Java

A Java megalkotói úgy gondolták, hogy olyan programot szeretnének írni, amelyik változtatás nélkül minden operációs rendszeren fut. Az operációs rendszerek különbözősége miatt ez nem lehetséges, ezért az operációs rendszerre tettek egy keretrendszert (Java machine, vagy java gép, vagy Java Runtime Environment, vagy Java futtató környezet, vagy egyszerűen: Framework), amelyen fut a Java program. Az így futó program lassabb mint a natív program, de minden rendszeren változtatás nélkül fut.

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="140" height="120"> <rect x="0" y="0" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="20" style="">Program</text> <rect x="0" y="30" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="50" style="">Keretrendszer</text> <rect x="0" y="60" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="80" style="">Operációs rendszer</text> <rect x="0" y="90" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="110" style="">Hardver</text> </svg>

A sematikus ábrán láthatjuk, hogy a futó program és hardver közzé most két másik rendszer ékelődött.

Előnye a különböző operációs rendszereken bitről-bitre azonos kód futtathatósága:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="450" height="120"> <rect x="0" y="0" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="20" style="">Program</text> <rect x="0" y="30" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="50" style="">Java</text> <rect x="0" y="60" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="80" style="">Linux</text> <rect x="0" y="90" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="110" style="">Hardver</text> <rect x="140" y="0" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="150" y="20" style="">Program</text> <rect x="140" y="30" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="150" y="50" style="">Java</text> <rect x="140" y="60" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="150" y="80" style="">Windows</text> <rect x="140" y="90" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="150" y="110" style="">Hardver</text> <rect x="280" y="0" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="290" y="20" style="">Program</text> <rect x="280" y="30" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="290" y="50" style="">Java</text> <rect x="280" y="60" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="290" y="80" style="">Mac OS X</text> <rect x="280" y="90" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="290" y="110" style="">Hardver</text> </svg>

A .Net

A .Net a Javához hasonlóan egy keretrendszer. A .Net viszont nem létezik csak Windowsra ezért nincs meg azaz előnye, amely a Java programokra jellemző, a platformfüggetlenség.

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="140" height="120"> <rect x="0" y="0" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="20" style="">Program</text> <rect x="0" y="30" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="50" style="">.Net</text> <rect x="0" y="60" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="80" style="">Windows</text> <rect x="0" y="90" width="130" height="30" fill="none" stroke-width="1" stroke="rgb(0,0,88)" /> <text x="10" y="110" style="">Hardver</text> </svg>

A .Net keretrendszer nem része alapból az XP-nek, de része a Windows7-nek. A futtató környezet mellett tartalmazza a fordítót is. A C# fordító neve:

csc.exe

A .Net keretrendszerre programot létrehozhatunk több nyelven is. Az adott nyelven létrehozzuk a forráskódot. A forráskód egy szimpla szöveges állomány, így bármely egyszerű szövegszerkesztővel szerkeszthető, például „Jegyzettömb”.

A forráskódban megmondjuk mit csináljon a programunk, amit fejlesztünk. A forráskódot ezek után lefordítjuk futtatható kóddá. Ez a futtatható kód .exe kiterjesztést kap, de keretrendszer nélkül nem használható. Ha keretrendszer nincs telepítve az ügyfélnél kinek számára készítjük a programot, akkor az nem fog ott működni.

Az sem mindegy, hogy milyen keretrendszerrel lett fordítva a program. Ha például 4.0 -es keretrendszerrel fordítottuk és az ügyfélnek csak 3.5-ös van, akkor az ügyfél gépén nem fog futni a program.

A .Net keretrendszert a Microsoft fejlesztette, és ezzel együtt egy új nyelvet is kifejlesztett, ez lett a C#. A C# nyelv a Java nyelv felépítését utánozza. Ugyanúgy kötelező az osztályban való megvalósítás. A Java csomagjai helyett azonban a C++-hoz hasonló névtereket alkalmaz. A C# nyelvere nyilván több nyelv is hatással lehetett még, de ez két nyelv amelyre azt mondhatjuk ezeken alapszik.

https://msdn.microsoft.com

.Net programozási nyelvei
C#	CPP	F#	VB