.NET (Dot-NET) #1 (Bevezetés)



Hasonló dokumentumok
OOP. #6 (VMT és DMT) v :33:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

OOP #1 (Bevezetés) v :39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

OOP #14 (referencia-elv)

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System

Vizuális, eseményvezérelt programozás XI.

.NET Microsoft.Net Framework

Vizuális, eseményvezérelt programozás X. V 1.0

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Objektumorientált programozás. Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Programzás I gyakorlat

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

OOP #7 (init, done) v :45:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

RIEL Elektronikai Kft v1.0

Vizuális és eseményvezérelt programozás BMF NIK

Programozás 2., I. kötet Az objektumorientált paradigma alapjai

Hardver és szoftver követelmények

Adatstruktúrák Algoritmusok Objektumok

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

Iman 3.0 szoftverdokumentáció

Konstantinusz Kft 2009

Bevezetés. Dr. Iványi Péter

Könyvtári címkéző munkahely

BMD Rendszerkövetelmények

.NET LINUX ALATT. OpenDEVEL Kft

Adatbázis és szoftverfejlesztés elmélet

Személyügyi nyilvántartás szoftver

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

A legfontosabb DOS parancsok

A.NET keretrendszer (.NET Framework) három alapvetõ összetevõbõl áll:

Android alapok. Android játékfejlesztés

Végfelhasználói Applet kézikönyv

PPT 4. Komponensek. Dr. Sipos Marianna. PPT 4. Komponensek. A felügyelt kód NET

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

A szerzõrõl... xi Bevezetés... xiii

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Flex: csak rugalmasan!

Egy PIC-BASIC program fordítása, betöltése

E-Freight beállítási segédlet

A NetBeans IDE Ubuntu Linux operációs rendszeren

Bevezetés, platformok. Léczfalvy Ádám

E-per ÁNYK és KAÜ használati útmutató és tájékoztató ügyvédek részére 2018

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

Informatika A versenyzők a feladatlapot mindkét kategóriában a II. kategória első fordulójának kivételével csak elektronikus formában kapják meg

I. Bevezetés. 1. ábra A Java "logója"

Programozás I. gyakorlat

Operációs rendszerek. Az NT folyamatok kezelése

ALKALMAZÁSOK ISMERTETÉSE

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

Informatika Informatika

A Microsoft terminálszolgáltatás ügyfél oldali hardverigényének meghatározása

Köszönjük, hogy a Conceptronic DVB-T USB-adaptert választotta.

Programozás alapjai Bevezetés

Gyorskalauz SUSE Linux Enterprise Server 11 SP1. Gyorskalauz. Köszönti az SUSE Linux Enterprise Server! Minimális rendszerkövetelmények

Hogyan kell 3D tartalmat megtekinteni egy BenQ kivetítőn? Minimális rendszerkövetelmények 3D tartalom lejátszásához BenQ kivetítőn:

KIRA. KIRA rendszer. Telepítési útmutató v1

Alkalmazás technológiai frissítés migrációs és üzemeltetési tapasztalatok

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

A NYELV NEVE. Kezdetben: Oak. James Gosling. Java: Sun Mycrosystems védjegyev

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Történet. Számítógépes vírusok. Mik a vírusok? A vírusok felépítése

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

C# tanfolyam I. A.Net keretrendszer, programozási technikák és alapismeretek. Kis Balázs

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Tartalom jegyzék 1 BEVEZETŐ SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5

Kiadványszerkesztő Kiadványszerkesztő

FELHASZNÁLÓI ÚTMUTATÓ A. NOKIA PC SUITE 4.51a FOR NOKIA 6510 PROGRAMCSOMAGHOZ. Copyright Nokia Corporation Minden jog fenntartva.

C++ programozási nyelv

Java I. A Java programozási nyelv

TESZ INTERNET ÉS KOMMUNIKÁCIÓ M7

Útmutató az OKM 2007 FIT-jelentés telepítéséhez

C++ programok fordítása

Gyorskalauz SUSE Linux Enterprise Desktop 11

Assembly Címzési módok. Iványi Péter

Ismerjük meg a Monót!

Win 8 változatok. 2. sz. melléklet felnottkepzes@gmail.com. Töltse ki az előzetes tudásszint felmérő dolgozatot!

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Utolsó módosítás:

Programozási nyelvek JAVA EA+GY 1. gyakolat

AZ INFORMATIKAI ALAPISMERETEK VIZSGATÁRGY ÍRÁSBELI ÉS SZÓBELI ÉRETTSÉGI VIZSGÁIHOZ

Már megismert fogalmak áttekintése

Telenor Webiroda. Kezdő lépések

*#Discount~ Kaspersky Internet Security - multidevice 2015 best software to buy for mac ]

HunGrid Grid technológiák hozzáférési lehetőségei az intézetben

Dr. Schuster György október 30.

INFORMATIKAI ALAPISMERETEK

Windows Server 2012: a felhő OS

C++ programozási nyelv

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Makrók használata az Excelben - Makróhibák kezelése, biztonságos jelszavak generálása

Operációs rendszer ismeretek

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

1. A Windows Vista munkakörnyezete 1

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 7. óra. Kocsis Gergely, Kelenföldi Szilárd

15. Programok fordítása és végrehajtása

Programok, statikus linkelés

A CCL program használatbavétele

Microsoft SQL Server telepítése

Átírás:

.NET (Dot-NET) #1 (Bevezetés) v0.2a 2004.02.05. 23:49:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan 1

E jegyzet másolata nem használható fel szabadon, az előadás anyagának kivonata. Ezen teljes jegyzetről, vagy annak bármely részéről bármely másolat készítéséhez a szerző előzetes írásbeli hozzájárulására van szükség. A másolatnak tartalmaznia kell a sokszorosításra vonatkozó korlátozó kitételt is. A jegyzet kizárólag főiskolai oktatási vagy tanulmányi célra használható! A szerző hozzájárulását adja ahhoz, hogy az EKF számítástechnika tanári, és programozó matematikus szakján, a tárgyat az EKF TO által elfogadott módon felvett hallgatók bármelyike, kizárólag saját maga részére, tanulmányaihoz egyetlen egy példány másolatot készítsen a jegyzetből. A jegyzet e változata még tartalmazhat mind gépelési, mind helyességi hibákat. Az állítások nem mindegyike lett tesztelve teljes körűen. Minden észrevételt, amely valamilyen hibára vonatkozik, örömmel fogadok. Hernyák Zoltán aroan@ektf.hu 2

3

Alapfogalmak CLR: Common Language Runtime: egy rendszer, amely egy virtuális gépi kódú nyelv -re fordított programokat (.exe) képes futtatni. BCL: Base Class Library: egy osztálygyűjtemény, amely kész, általános célú objektumokat tartalmaz. Ezeket az objektumokat a.net minden támogatott nyelvében el lehet érni. CLS: Common Runtime Specification: A virtuális gépi kódú nyelv, melyre le kell fordítani a.net alatt futtatandó programokat. A.NET programok (bár.exe-k), nem közvetlenül futtatható programok, hanem egy köztes kódra fordított programok, amelyeknek az eleje normális gépi kód, de csak annyit csinál, hogy értesíti az operációs rendszert, hogy töltse be rá a CLR rendszert, amely átveszi a program futtatásának feladatát. 4

A CLR, a BCL szabadon letölthető (free software) a Microsoft honlapról.net Framework címszó alatt. Ezt (többek között) a C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\ alkönyvtárba telepszik fel. Ebben található egy CSC.EXE, amely a C# (C-Sharp, ejtsd szí-sarp) programnyelv parancssori fordítója. A másik mód, hogy a Microsoft Visual Studio v7.0 másik nevén Microsoft Visual Studio.NET fejlesztőrendszert tesszük fel (5 cd). Ezt tartalmazza a Framework-t is. A Framework-nek készül a LINUX-os változata!!!! (http://www.go-mono.org) A C# fordító is készült LINUX-ra. 5

Ugyanakkor ezzel megvalósítható a kód futtatásának felügyeletét: - erőforrás-felügyelet: szabályozható, hogy a program milyen erőforrásokhoz férhet hozzá (file-ok, internet, hálózati kapcsolatok, stb ) - a programok ezt az ellenőrzést nem kerülhetik meg - minden erőforrásigénylésüket a CLR-en keresztül kell megvalósítaniuk - minden programhoz beállítható, hogy miket engedélyezünk neki: START menü / Beállítások / Vezérlőpult / Felügyeleti eszközök / Microsoft.NET Framework Configuration - Ezzel megvédhetjük számítógépeinket, hogy pl. az Internet-ről letöltött, és elindított programok ne legyenek képesek illegális tevékenységeket folytatni (vírusok), ne olvashassák a file-okat, ne küldhessenek adatokat ki valamely hálózati kapcsolaton keresztül, 6

- ugyanakkor nem érdekes, hogy melyik programnyelven írtuk az eredeti kódot, a számítógép a generált.exe-t fogja futtatni - ezért tetszőleges programnyelven meg lehet (majd) írni a programokat, csak a lényeges, hogy a fordító és szerkesztő programok ne natív windows-os.exe-t generáljanak, hanem.net-es.exe-t. - a virtuális gépi kód OOP-t támogató kód! - ezért az általunk használt magasszintű programnyelveknek is OOP nyelveknek kell lenniük! - jelenleg is már 10 fölötti a.net-et támogató nyelvek listája - a Microsoft a Visual Basic, C++, C#, Java Script, J# (Java-alapú) nyelvekhez elkészítette a fordítókat - egyéb nyelvekhez külső cégek készítik el a fordítókat (pl. Inprise-Delphi) 7

- az interpretert egy JIT (Just-In-Time) compiler támogatja, amely dönthet úgy, hogy a virtuális gépi kód bizonyos (sűrűn hívott) részeit futtatás közben a memóriában natív kódra fordítja (sebességnövekedés) - ezzel pl. megoldható az, hogy a jövő processzorai új regisztereket is tartalmaznak majd, akkor ugyanaz az.exe kód ezeken ezt máris ki fogják használni - a processzor-specifikus gépi kódú utasításokat használja (AMD, Intel Pentium, ) - az adott operációs rendszer lehetőségeit messzemenőkig kihasználja a program A CLR interpreteres üzemmódban futtatja a.net programokat (ez lassú). Ugyanakkor az NGEN.EXE-vel a lefordított.net programot natív kódra lehet fordítani. Ezzel a kód az adott processzorhoz és operációs rendszerhez lesz optimalizálva, futása ebben a környezetben 2x 3x gyorsabb lesz (lehet)! 8

- ezzel megszűnnek az eredeti magasszintű nyelvek adatábrázolási különbségei: - sztringek tárolása (C és PASCAL stílus, ASCII és UNICODE, stb ) - számtípusú adatok tárolási különbsége (méret, pontosság, stb ) - tömbök indexelése (egységesen 0..n-1 indexelésú (Basic-esek sírnak!!!)) - stb - a CLS-nek megfelelő nyelvek képesek együtt működni: - a kész projekt egyik felét pl. C++-ban is meg lehet írni - a másik felét Visual Basic-ben - mindkét felét először CLS-nek megfelelő virtuális gépi kódra fordítják le - a kettőből a szerkesztő összeállítja a működő kész programot 9

- de a program futtatásához szükséges DLL (Dynamic Link Library = közös (shared) eljárás és fvgyűjtemény) verzióit minden program magának specifikálhatja, azaz nem okoz problémát, hogy ha valamelyik program ugyanazon néven feltesz egy közös DLL-t, azt erre hivatkozó programok vagy megbíznak ebben a DLL-ben, és használják, vagy a saját régebbi verziót használják tovább - ennek kezelését a CLR végzi - A DLL-ek nem csak függvényeket exportálhatnak, hanem típusinformációval ellátott objektumosztályokat!!! - a programok védettek a buffer overflow vírustechnikával szemben 10

- a CLR nyilvántartja a program erőforrás-felhasználását, és hiba esetén terminálja a programot, és korrekt módon felszabadítja az erőforrásokat - ez kiterjed az objektumok destruktorainak automatikus meghívására is (garbage collector funkció) normális programfuttatás közben is. 11