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

Méret: px
Mutatás kezdődik a ... oldaltól:

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

Átírás

1 Vizuális és eseményvezérelt programozás BMF NIK A.NET keretrendszer Definíció Vázlatos felépítés A köztes nyelv és a.net futtatókörnyezet Menet közbeni fordítás és optimalizálás Egységes típusrendszer Automatikus memóriakezelés Szerelvények és verziókezelés Biztonsági modell Osztálykönyvtárak miklos.arpad@nik.bmf.hu

2 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyinek, illetve vizsgának. Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelezőirodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges január 31. miklos.arpad@nik.bmf.hu 1: 2

3 Mi a.net keretrendszer? A.NET keretrendszer(.net Framework ) egy önálló programozási környezet az operációs rendszer szintje felett, amely objektumorientált, bővíthető programozási felületet számos kiegészítőszolgáltatást és a korábbiaknál több szempontból is magasabb fokú biztonságot nyújtó új absztrakciós rétegként ékelődik be a szoftveralkalmazások és az operációs rendszer közé. Ezt az absztrakciós réteget szokás virtuális gép -nek is nevezni, amely saját, nyelvi szinten objektumorientált programozási felületet megvalósító utasításkészlettel rendelkezik. A.NET keretrendszerre írt programok számára ez az utasításkészlet érhetőel, futtatásukat pedig maga a keretrendszer végzi és felügyeli (ebből következően a.net programok futtatásához szükség van a keretrendszerre is). Maga a keretrendszer elvileg bármely operációs rendszerre elkészíthető, ami a megírt programok számára a platformfüggetlenség lehetőségét kínálja fel január 31. miklos.arpad@nik.bmf.hu 1: 3

4 A.NET keretrendszer vázlatos felépítése.net alapú alkalmazások.net keretrendszer ASP.NET osztálykönyvtár Windows Forms osztálykönyvtár Vezérlők Webszolgáltatások Vezérlők Grafikai eszközök Egyéb szolgáltatások ADO.NET.NET osztálykönyvtár (Framework Class Library) IO Management Messaging Net... Reflection Remoting Security Threading XML....NET futtatókörnyezet (Common Language Runtime) JIT fordító Egységes típusrendszer Memóriakezelés Verziókezelés Programkód ellenőrzése Kompatibilitási réteg Operációs rendszer január 31. 1: 4

5 A köztes nyelv és a.net futtatókörnyezet A.NET alapúalkalmazások által használhatóutasításkészletet egy ún. köztes nyelv határozza meg A köztes nyelv elnevezése Intermediate Language vagy IL, emellett szokás CIL ( Common Intermediate Language ) néven is hivatkozni rá. A magasabb szintű.net nyelveken (C#, Visual Basic.NET stb.) írt programokat erre a nyelvre fordítja le a megfelelő fordítóprogram Futtatáskor a köztes nyelven létrejött köztes kódot menet közben ellenőrzi és fordítja le a keretrendszer megfelelőrésze (az ún. futtatókörnyezet ) a tényleges hardverplatformon használt, a processzoron közvetlenül futtatható gépi kódra ( natív kód ) A futtatókörnyezet neve Common Language Runtime Execution Engine, vagy röviden CLR. A keretrendszer által ellenőrzött és kézben tartott köztes kódú programot felügyelt kód -nak ( managed code ) nevezzük. A natív gépi kódra lefordított, immár ellenőrzött és biztonságos programkódot az operációs rendszer futtatja a hardveren január 31. miklos.arpad@nik.bmf.hu 1: 5

6 A köztes nyelv és a.net futtatókörnyezet C# fordítóprogram.net futtatókörnyezet A.NET keretrendszerre C# nyelven megírt forráskód A forráskód lefordítása után előállt köztes (IL) kód Amennyiben az elkészült programot x86 processzoron futtatjuk, az alábbi natív gépi kód készül el, majd fut le január 31. miklos.arpad@nik.bmf.hu 1: 6

7 Menet közbeni fordítás és optimalizálás A köztes kódúprogramok metódusait tehát natív gépi kódra kell fordítani ahhoz, hogy a processzor futtatni tudja őket Ezt a feladatot a menet közbeni fordító( JIT fordító, angolul JIT compiler vagy just-in-time compiler ) végzi el A JIT fordítóminden metódust az elsőhíváskor fordít le natív gépi kódra. A fordítás eredményét eltárolja, így ezt követően a metódus újabb hívásai esetén már nincs szükség fordításra, ilyenkor a már lefordított gépi kód fut. Ebből következően a programok indításánál és az egyes metódusok első végrehajtásánál komoly sebességveszteség lép fel, ami azonban később, a program futása közben eltűnik. Az OOP általános jellemzője a metódushívások igen nagy száma és gyakori ismétlődése, így ez a megoldás teljesítmény szempontjából is jól illeszkedik az OOP paradigmához. A menet közbeni fordítás lehetőséget ad a kód optimalizálására is. Aktuális processzormodell, illetve hardverkonfiguráció észlelése és kihasználása Egyes hardverfüggőfeltételes utasítások eredménye futáskor előre látható, így ezek akár el is távolíthatók a programból (pl. ha a processzorok száma > 1, akkor..., egyébként... ) Számos szoftveres optimalizációis végezhető(határfeltételek ellenőrzésének kihagyása, konstans kifejezések előre kiszámítása, ciklusok kifejtése, metódushívások kifejtése ) január 31. miklos.arpad@nik.bmf.hu 1: 7

8 Menet közbeni fordítás és optimalizálás (1) Metódus hívása első alkalommal [A] Felügyelt program (hello.exe) class Program { static void Main() { string s = "Hello, World"; System.Console.WriteLine(s); System.Console.WriteLine(s); } } System.Console... JITCompiler static void WriteLine(object) JITCompiler static void WriteLine(string) JITCompiler... JITCompiler CLR [a Program.Main() metódusban közvetlenül vagy áttételesen hivatkozott egyéb.net osztályok] MSCOREE.DLL Natív kód (x86) 55 8B EC EC C D 65 F4 90 5B 5E 5F 5D C3 A JITCompiler metódus pszeudokódja: 1. A kért osztályt (itt: System.Console) tartalmazófájlból kikeresi azt a metódust, amelyet a futtatandó program éppen meghívott (itt: static void WriteLine(string)). 2. A kért osztályt tartalmazó fájlból betölti a fenti metódus IL kódját. 3. Lefoglalja a szükséges mennyiségű memóriát. 4. Az IL kódot natív kódra fordítja, és az eredményt eltárolja a 3. pontban lefoglalt memóriaterületen. 5. A kért osztályhoz tartozófenti belsőhasználatútáblázatban kicseréli a metódushoz automatikusan hozzárendelt kezdőcímet a most lefordított kód kezdőcímére. 6. Átadja a vezérlést a 3. pontban lefoglalt memóriaterületen elhelyezett natív kódnak január 31. miklos.arpad@nik.bmf.hu 1: 8

9 Menet közbeni fordítás és optimalizálás (2) Metódus hívása a későbbiekben [A] Felügyelt program (hello.exe) class Program { static void Main() { string s ="Hello, World"; System.Console.WriteLine(s); System.Console.WriteLine(s); } } System.Console... JITCompiler static void WriteLine(object) JITCompiler static void WriteLine(string) WriteLine() natív kód... JITCompiler CLR [a Program.Main() metódusban közvetlenül vagy áttételesen hivatkozott egyéb.net osztályok] MSCOREE.DLL Natív kód (x86) 55 8B EC EC C D 65 F4 90 5B 5E 5F 5D C3 A JITCompiler metódus pszeudokódja: 1. A kért osztályt (itt: System.Console) tartalmazófájlból kikeresi azt a metódust, amelyet a futtatandó program éppen meghívott (itt: static void WriteLine(string)). 2. A kért osztályt tartalmazó fájlból betölti a fenti metódus IL kódját. 3. Lefoglalja a szükséges mennyiségű memóriát. 4. Az IL kódot natív kódra fordítja, és az eredményt eltárolja a 3. pontban lefoglalt memóriaterületen. 5. A kért osztályhoz tartozófenti belsőhasználatútáblázatban kicseréli a metódushoz automatikusan hozzárendelt kezdőcímet a most lefordított kód kezdőcímére. 6. Átadja a vezérlést a 3. pontban lefoglalt memóriaterületen elhelyezett natív kódnak január 31. miklos.arpad@nik.bmf.hu 1: 9

10 Menet közbeni fordítás és optimalizálás (3) Előfordítás Arra is van lehetőség, hogy teljes programokat vagy osztálykönyvtárakat a CLR előre lefordítson és eltároljon Ezzel a megoldással még az első futtatáskor biztosan fellépő sebességveszteség is kiküszöbölhető A.NET keretrendszer része az ngen.exe nevűprogram ( Native Image Generator ), amellyel az előfordítás elvégezhető. Az előfordított.net programok vagy osztálykönyvtárak mindig egy konkrét processzorarchitektúrához kötődnek (pl. x86, x64 vagy Itanium), tehát csak korlátozott mértékben hordozhatók. Ezért a futtatókörnyezet együtt kezeli az előfordított elemeket és a hozzájuk tartozóeredeti IL kódot, és mindig ez utóbbit (tehát az eredeti fájlokat) tekinti mérvadónak. Ha bármilyen kétség merül fel az előfordított kód frisseségét vagy az aktuális architektúrának valómegfelelését illetően, akkor a CLR úgy tekinti, mintha nem is létezne az előfordított kód január 31. miklos.arpad@nik.bmf.hu 1: 10

11 A.NET egységes típusrendszere A.NET keretrendszer egységesen, a köztes nyelv szintjén rögzít bizonyos nyelvi tulajdonságokat és típusokat Ezek a tulajdonságok az IL (tehát a köztes kód) szintjén valósulnak meg, így minden olyan magasabb szintűnyelvre érvényesek, amelyhez létezik a.net keretrendszert támogató, IL kódot készítő fordítóprogram. Az egységes típusrendszer neve angolul Common Type System vagy röviden CTS A típusrendszer legfontosabb jellegzetességei: a) Objektumorientált felépítés, interfészek intenzív alkalmazása b) Nyelvfüggetlenség (a magasabb szintű nyelvek tekintetében) c) Szigorú típuskezelés d) Értéktípusok és referenciatípusok egyértelmű megkülönböztetése e) Átfogó kivételkezelés f) Attribútumok koncepciója január 31. miklos.arpad@nik.bmf.hu 1: 11

12 A.NET egységes típusrendszere A CTS logikai szerkezete [B] Típus Értéktípus Referenciatípus Beépített egyszerű típus Saját értéktípus (struktúra) Felsorolás Mutatótípus Önleíró referenciatípus Interfésztípus sbyte, short, int, long, byte, ushort, uint, ulong, char, float, double, decimal, bool Osztálytípus Tömb Képviselő Saját referenciatípus Dobozolt értéktípus január 31. miklos.arpad@nik.bmf.hu 1: 12

13 A.NET típusrendszerének jellemzői a) Objektumorientált felépítés Az egységes típusrendszer teljes egészében objektumorientált Az IL nyelv az alapvetőutasítások mellett részletesen megvalósítja az OOP legfontosabb alapelveit és bevált alapmegoldásait is: osztályok és objektumok kezelése adatrejtés (láthatósági szintek) öröklés többalakúság absztrakt tagok interfészek A köztes nyelv emellett az univerzális felhasználhatóság érdekében más speciális funkciókat is tartalmaz. Ilyenek például a tail call és a tail callvirt utasításpárok, amelyekre elsősorban a logikai programozási paradigma megvalósításaihoz lehet szükség. A Microsoft által készített.net nyelvek közül csak a (nemhivatalos) F# funkcionális nyelv használja ezeket az utasításokat. A típusrendszer alapja a System.Object ősosztály Minden típus ennek az osztálynak a közvetlen vagy közvetett leszármazottja január 31. miklos.arpad@nik.bmf.hu 1: 13

14 A.NET típusrendszerének jellemzői b) Nyelvfüggetlenség A típusrendszer a következő lehetőségeket kínálja a rá épülő magas szintű programozási nyelvek számára: Adott nyelven írt osztályból származtathatók osztályok más nyelven is Objektumok tartalmazhatnak más nyelven írt objektumokat is Objektumok közvetlenül hívhatják más nyelven írt objektumok metódusait is Metódusok nyelvi korlátozás nélkül adhatnak át egymásnak objektumokat A teljes típusrendszer jóval bővebb annál, mint amit egyetlen magas szintű programozási nyelv egymagában megvalósíthat A minden magas szintű.net programozási nyelv számára kötelezőfunkciók és jellemzők közös részhalmaza a közös nyelvspecifikáció, angolul Common Language Specification vagy röviden CLS. Amennyiben egy program csak CLS-kompatibilis nyelvi jellemzőket használ, garantált, hogy bármely más.net programozási nyelven írt másik program elemeivel is zökkenőmentesen együtt tud működni. Ehhez az is elegendő, ha a program nyilvánosan elérhető tagjaira teljesül a fenti korlátozás január 31. miklos.arpad@nik.bmf.hu 1: 14

15 A.NET típusrendszerének jellemzői A CLS, a CTS és a nyelvek viszonya Egységes típusrendszer (CTS) Visual Basic Felügyelt C++ Közös nyelvspecifikáció (CLS) C# január 31. miklos.arpad@nik.bmf.hu 1: 15

16 A.NET típusrendszerének jellemzői Magas szintű.net programozási nyelvek A kiterjedt egységes típusrendszernek köszönhetően szinte bármilyen létezőprogramozási nyelv adaptálhatóa keretrendszerhez, de akár teljesen új nyelvek is definiálhatók A Microsoft által készített.net nyelvek: C#(teljesen új nyelv a C, a C++ és a Java nyomdokain) Felügyelt C++(.NET funkcionalitással bővített C++) Visual Basic.NET(.NET funkcionalitással bővített Visual Basic) J#(Java hasonmás) JScript(JavaScript hasonmás) F#(a Lisp-hez hasonló, a funkcionális és az OO paradigmát ötvöző nyelv) Más cégek és fejlesztők által készített.net nyelvadaptációk: Smalltalk, Pascal, Oberon, Delphi, Eiffel, Haskell, Lisp, Fortran, Cobol, Perl, PHP, Python, Ruby... A fenti nyelvekhez kifejezetten a.net-re épülő új nyelvváltozatot hoztak létre január 31. miklos.arpad@nik.bmf.hu 1: 16

17 A.NET típusrendszerének jellemzői c) Szigorú típuskezelés Minden változónak kötelezően van típusa Típus nélküli adatok nem deklarálhatók és nem használhatók A.NET programozási nyelveiben (a C++ kivételével) nincsenek mutatók Minden egyes művelet eredménye egyértelműen meghatározott típusú A futtatókörnyezet mindig képes biztonságosan azonosítani az objektumok tényleges típusát Az objektumok tényleges típusa a GetType() metódussal mindig felderíthető, ezt a metódust ugyanis minden típus örökli a System.Object osztálytól. Mivel ez az örökölt metódus az ősosztályban nemvirtuális, lehetetlen, hogy egy objektum hazudjon a saját típusát illetően. A típusok (akár automatikusan, akár a programozóáltal) csak a futtatókörnyezet ellenőrzése alatt alakíthatók át egymásba Minden objektum automatikusan kezelhetőős típusúváltozókon keresztül is. Szándékos programozói típusátalakítás(angolul casting ) is végezhető, de ha a forrás- és a céltípus nem kompatibilis, a futtatókörnyezet hibát jelez január 31. miklos.arpad@nik.bmf.hu 2: 17

18 A.NET típusrendszerének jellemzői A szigorú típuskezelés következményei Bizonyos (kisebb mértékű) sebességveszteség A futtatókörnyezetnek minden műveletvégzés, illetve típusátalakítás során ellenőriznie kell az objektumok tényleges típusát. Nyelvek közötti átjárhatóság Ahhoz, hogy egy adott programozási nyelven megírt osztályból egy másik nyelven lehessen új osztályt származtatni, az új osztálynak ismernie kell az ős által használt összes adattípust. Hasonlóokból egy objektum csak akkor tudja meghívni egy más programozási nyelven írt objektum metódusait, ha ismeri az általa használt típusokat. Ehhez az is szükséges, hogy a típusok leírása szerepeljen a programokban, típuskönyvtárakban. Automatikus memóriakezelés támogatása Az objektumok által használt memóriaterület automatikus felszabadításához a futtatókörnyezetnek fel kell tudnia deríteni az egyes objektumok típusát. Folyamatokon belüli önállóalkalmazástartomány (angolul application domain ) koncepciójának támogatása január 31. miklos.arpad@nik.bmf.hu 2: 18

19 A.NET típusrendszerének jellemzői d) Értéktípusok és referenciatípusok Az értéktípusok és a referenciatípusok elsősorban az adatok kezelésében és a hozzáférés módjában különböznek egymástól A különféle referenciatípusokba tartozóváltozók (az értéktípusoktól eltérően) nem maguk tárolják az adatokat, csak hivatkoznak rájuk, azaz referenciát tartalmaznak a tényleges adatokra. Ez a megoldás elsősorban nagyobb adatmennyiségnél jelent előnyt, mivel így paraméterátadáskor vagy helyi változók használatánál nincs szükség a nagy mennyiségűadat többszöri másolására (elég, ha a hivatkozások másolódnak le), ami sokkal nagyobb teljesítmény elérését teszi lehetővé. A különféle értéktípusokba tartozóváltozók ezzel szemben közvetlenül tartalmazzák adataikat, így kezelésük sokkal egyszerűbb, létrehozásuk és megszüntetésük sokkal gyorsabban végrehajtható. Nagyobb mennyiségű adatot azonban nem célszerűígy kezelni, elkerülendőa programok logikája szempontjából mindenképpen szükséges másolási műveleteket január 31. miklos.arpad@nik.bmf.hu 2: 19

20 A.NET típusrendszerének jellemzői Az érték- és a referenciatípusok viselkedése inti = 17; intj = i; Értéktípus i = 23; a[0] = 15; j = 36; i j i j i j System.Console.WriteLine(i);// 23 System.Console.WriteLine(j);// 36 Referenciatípus int[] a = new int[2]; a (ref) null null int[] b = a; b[0] = 40; (ref) System.Console.WriteLine(a[0]); // 40 (!) System.Console.WriteLine(b[0]); // január 31. miklos.arpad@nik.bmf.hu 2: 20 b a b a b (ref) (ref) (ref) (ref) 15 null 40 null

21 A.NET típusrendszerének jellemzői Érték- és referenciatípusok összehasonlítása Érték- és s referenciatípusok szemantikai összehasonlító táblázata Adatok átadása Összetettség, méret Tárolás Jellemző Adatok kezelése Létrehozás, élettartam Öröklési jellemzők Értéktípusok Az adatok közvetlenül a változókban helyezkednek el Teljes másolással Általában egyszerűfelépítésűek, példányaik kis méretűek (1 16 bájt) A veremben ( stack ) vagy mezőként más érték-vagy referenciatípusba ágyazva Deklarációval jönnek létre, és a változók hatókörének végéig (a befoglaló blokk végéig) léteznek Ősük a System.ValueType típus, leszármazottaik nem lehetnek, interfészeket megvalósíthatnak Referenciatípusok A változók csak hivatkoznak a tényleges adatra Hivatkozás másolásával Általában összetettebb felépítésűek, példányaik nagyobb méretűek (16 bájt 2GB) A keretrendszer által automatikusan felügyelt memóriaterületen ( managed heap ) Saját konstruktorral (newoperátor) hozhatók létre, és addig léteznek, amíg van rájuk élő hivatkozás Ősük megválasztható, leszármazottaik lehetnek, interfészeket megvalósíthatnak január 31. miklos.arpad@nik.bmf.hu 2: 21

22 A.NET típusrendszerének jellemzői Dobozolás és kicsomagolás Az egységes öröklési hierarchia fenntartása érdekében az értéktípusok referenciatípussáalakíthatók, illetve később vissza is alakíthatók értéktípussá Az értéktípusok kezelhetők System.Object típusúváltozókon keresztül is, azaz például egy egész számot ( int típus) kezelhetünk objektumként (vagyis a System.Object típus egy példányaként) is. Ennek megvalósításához az értéktípus megfelelőpéldányát először át kell alakítani referenciatípussá(ez a művelet a dobozolás, angolul boxing ). Amikor a bedobozolt, tehát immár hivatkozáson keresztül kezelt példányt ismét értéktípusként kívánjuk felhasználni, az értékét ki kell csomagolni az őt befoglalóreferenciatípus belsejéből (ez a művelet a kicsomagolás, angolul unboxing ). A.NET programozási nyelveiben (a C++ kivételével) a dobozolás és kicsomagolás mindig automatikusan történik, tehát a programozónak ezzel nincs külön feladata. Fejlesztésnél azonban célszerűúgy átgondolni a megtervezett és használni kívánt típusokat, hogy minél kevesebb dobozolás/kicsomagolás műveletpárra legyen szükség, mert ez komoly teljesítményveszteséget okozhat, amelynek a pontos okát általában igen nehéz felderíteni január 31. miklos.arpad@nik.bmf.hu 2: 22

23 A.NET típusrendszerének jellemzői Példa: dobozolás és kicsomagolás Közvetlen adattárolás megfelelő típusú változóban Dobozolás: egész számot tárolunk objektumként Kicsomagolás: objektumból egész számot veszünk ki január 31. 2: 23

24 A.NET típusrendszerének jellemzői e) Átfogó kivételkezelés A programokon belüli hibakezeléshez a.net típusrendszere egy általános, közösen elérhető, objektumorientált lehetőséget ad Ez a megoldás a kivételkezelés (angolul exception handling ) Kivétel -nek a programon belül bekövetkezőnem várt eseményeket (hibák), illetve a kezelésükre szolgálóosztályokat nevezzük. A kivételkezelés alapelve a következő: minden programrészhez tartozhat egy másik, kivételkezelőnek elnevezett programrész, amely kizárólag az előbbi részben felmerülő bizonyos típusúhibák kezelésére hivatott. A kezelt hibák típusa tetszőlegesen szűkre, illetve bőségesre szabható. A hibakezelés.net keretrendszerben alkalmazott megoldása lehetővéteszi, hogy a kivételeket kezelő programrész kapjon egy példányt a megfelelő kivételosztályból, amely bővebb adatokat szolgáltat a bekövetkezett hibáról. Tartalmazhat például kiírandó üzeneteket, a felmerült hiba pontos helyét és okát stb. A.NET típusrendszere előre beépített kivételosztályok egész hierarchiáját tartalmazza, amely tetszőlegesen bővíthető újabb típusú kivételosztályokkal január 31. miklos.arpad@nik.bmf.hu 2: 24

25 A.NET típusrendszerének jellemzői A.NET előre definiált kivételosztályai System.Object System.Exception IDictionaryData stringhelplink ExceptionInnerException stringmessage stringsource stringstacktrace MethodBaseTargetSite System.SystemException System.ApplicationException január 31. 2: 25

26 A.NET típusrendszerének jellemzői A.NET előre definiált kivételosztályai System.SystemException System.ArgumentException System.ArithmeticException System.DivideByZeroException System.OverflowException... System.FormatException System.NotImplementedException System.NotSupportedException System.IO.IOException System.IO.FileNotFoundException System.IndexOutOfRangeException System.IO.FileLoadException System.IO.DirectoryNotFoundException... System.InvalidCastException System.StackOverflowException System.OutOfMemoryException System.ExecutionEngineException System.Runtime.CompilerServices. RuntimeWrappedException január 31. 2: 26

27 A.NET típusrendszerének jellemzői A kivételkezelés főbb előnyei és hátrányai Előnyök Átlátható hibakezelés Hatékonyabb hibakeresés Hátrányok Teljesítményveszteség A hibakezelőprogramrészek világosan elkülöníthetők a feldolgozás logikáját megvalósító programrészektől, amelyek így az ideális eset feltételezésével írhatók meg. Hiba bekövetkezése esetén a futtatókörnyezet belülről kifeléhaladva megkeresi az elsőalkalmas hibakezelőprogramrészt. A keresés során bejárt út végigkövethető, ami a kivételek által hordozott információkkal kiegészülve jóval könnyebben felderíthetővé teszi a hibát okozó programrészeket. A kivételek bekövetkezésekor a futtatókörnyezetnek példányt kell létrehoznia egy kivételosztályból, majd inicializálnia kell, ezután pedig meg kell keresnie az elsőalkalmas hibakezelőt. Ez ugyan időbe telik, de a teljesítményveszteség általában nem súlyos, mert hibák aránylag ritkán következnek be. (Ezért nem célszerűpéldául kivételek bekövetkezését beépíteni a normál feldolgozás menetébe, vagyis szándékosan növelni a kivételek előfordulásának gyakoriságát.) január 31. miklos.arpad@nik.bmf.hu 2: 27

28 A.NET típusrendszerének jellemzői f) Attribútumok Az attribútumok a.net típusokhoz és tagjaikhoz kapcsolható, futási időben is lekérdezhető kiegészítő információk Az attribútumok segítségével a típusok és tagjaik tetszőleges jelzőkkel, tulajdonságokkal láthatók el, amelyek az adott típus vagy tag viselkedését leírhatják és módosíthatják. Meglétüket, illetve értéküket nemcsak fordításkor elemzi az adott.net nyelv fordítóprogramja, hanem akár futási időben is felderíthetők, és az eredmények alapján a futó, az attribútumokat éppen vizsgálómetódusok döntéseket is hozhatnak. Azt a megoldást, amikor egy program futási időben saját maga felépítését, tulajdonságait elemzi, a.net keretrendszer vonatkozásában reflexiónak (angolul reflection ) nevezzük. Ez a lehetőség tehát azt jelenti, hogy az attribútumok révén a programok viselkedése a forrásnyelv (például C#) elemeitől független, a programozó által definiálható, az egyes típusokat és tagjaikat leíróegyéb információkkal (úgynevezett metaadatokkal) befolyásolható január 31. miklos.arpad@nik.bmf.hu 2: 28

29 A.NET típusrendszerének jellemzői Attribútumok használata [Serializable] [ComVisible(true)] public class SpecialAttribute: Attribute { public SpecialAttribute() { } Attribútumok [WebMethod] public TestMethod1() { System.Console.WriteLine("Webszolgáltatásból elérhető metódus vagyok."); } } [DllImport("kernel32.dll")] private static extern int GetCurrentProcessId(); január 31. miklos.arpad@nik.bmf.hu 2: 29

30 A.NET típusrendszerének jellemzői Példa: a FlagsAttribute attribútum használata using System; enum Szín { Színtelen = 0, Piros = 1, Zöld = 2, Kék = 4 } using System; [Flags] enum Ételjellemző { Semmilyen = 0, Finom = 1, KellemesIllatú = 2, Fogyókúrás = 4 } Ha egy attribútum nevének végződése Attribute, akkor a végződés el is hagyható class Program { static void Main() { for(inti = 0; i < 8; i++) Console.WriteLine((Szín) i); } } class Program { static void Main() { for(inti = 0; i < 8; i++) Console.WriteLine((Ételjellemző) i); } } január 31. miklos.arpad@nik.bmf.hu 2: 30

31 A.NET típusrendszerének jellemzői Attribútumfajták A.NET típusrendszerében háromféle attribútum létezik: Beépített fordítási idejű attribútum A beépített attribútumokat a.net fordítóprogramok ismerik és az általuk megszabott jellemzőknek megfelelően hajtják végre a fordítást. Ezek az attribútumok általában kulcsszóként jelennek meg az adott nyelvben. Ilyen attribútum például a sealed, a readonly vagy a virtual. Egyedi attribútum Az egyedi attribútumok lényegében a programozóáltal definiált osztályok, amelyek a System.Attributeosztály leszármazottai. Az egyedi attribútumok definíciójában megszabható, hogy milyen nyelvi elemekhez (osztály, interfész, metódus, paraméter stb.) kapcsolódhatnak, többször is szerepelhetnek-e egyazon nyelvi elemhez rendelve, illetve leszármazott osztályok megfelelő elemei örököljék-e az ősnél megadott attribútumot. Álegyedi attribútum Az álegyedi attribútumok olyan egyedi attribútumok, amelyek rendkívül gyakran fordulnak elő, ezért helytakarékossági és teljesítményokokból a.net típusrendszere előre felismeri és speciális, tömörített formában tárolja őket. Ilyen attribútum például a System.SerializableAttribute vagy a System.Runtime.InteropServices.DllImportAttribute január 31. miklos.arpad@nik.bmf.hu 2: 31

32 Automatikus memóriakezelés Objektumorientált rendszerekben az egyes típusok (osztályok) példányosításához és használatához memóriára van szükség A.NET programozási környezetben a referenciatípusok memóriakezelésének főbb lépései a következők: 1. A típus egy példányához szükséges memória lefoglalása, amely a newobjil utasítás meghívásakor automatikusan megtörténik A C# nyelvben például a new operátor használatakor kerül a fenti utasítás a köztes kódba. 2. A lefoglalt memóriában tárolandókezdőértékek beállítása, a példány használható állapotba hozása Ezt a feladatot mindig a típus megfelelő konstruktora hajtja végre. 3. A típusból létrejött példány életciklusának főrészeként a következőlépés a hozzá tartozó tagok használata, akár többször egymás után ismételve 4. A példány használatának befejezésekor szükség lehet állapotmódosításra vagy az általa használt erőforrások korábbi állapotának visszaállítására Ezt a feladatot általában a típus destruktora hajtja végre. 5. A típusból létrehozott példány által használt memória felszabadítása A.NET automatikus memóriakezelője vállalja magára ezt a teendőt január 31. miklos.arpad@nik.bmf.hu 3: 32

33 Automatikus memóriakezelés A szemétgyűjtő ( garbage collector ) A.NET memóriakezelője a lefoglalás és a felszabadítás lépéseit automatikusan elvégzi A két leggyakoribb programozói hiba a nem használt memóriaterületek felszabadításának elfelejtése, illetve a már felszabadított memória újbóli használata. Ezeket a hibákat a.net felügyelt memóriakezelése teljes mértékben kiküszöböli, és sokkal kényelmesebbé is teszi a fejlesztést. A memóriakezelőazokat a memóriaterületeket szabadítja fel, amelyeket már egyetlen osztály egyetlen példánya sem használ Ennek megállapítása egyáltalán nem triviális feladat. A memóriakezelőnek azt a részét, amely a felszabadíthatómemóriaterületek megkeresését és a felszabadítás műveletét végzi, szemétgyűjtőnek nevezzük. A szemétgyűjtő külön szálon fut, és bizonyos feltételek fennállása esetén felébred, hogy memóriát szabadítson fel. Mivel ez komoly erőforrásigényűművelet, igen bonyolult algoritmusok biztosítják, hogy erre a lehetőleggyorsabban és optimális időpontokban, csak szükség esetén kerüljön sor. A szemétgyűjtő algoritmus a System.GC osztály Collect() metódusán keresztül is meghívható január 31. miklos.arpad@nik.bmf.hu 3: 33

34 Automatikus memóriakezelés Destruktorok A destruktorok feladata hagyományosan a fenti 4. lépés, tehát a típus által használt erőforrások korábbi állapotának visszaállítása A.NET típusrendszerében erre az automatikus memóriakezelés következtében ritkán van szükség, ezért a.net programozási nyelveiben csak speciális helyzetekre szokás destruktort készíteni. A destruktor valójában egy Finalize() nevűmetódus, amelyet például a C# fordítónem enged meghívni még a típus saját kódjából sem, megakadályozandó, hogy a programozók elfelejtsék kezelni a kivételeket vagy elfelejtsék meghívni az őstípus destruktorát. Mivel a szemétgyűjtőfutása a program szemszögéből nézve nem determinisztikus, nem lehet előre tudni, hogy a már nem használt objektumokon mikor fut le a típus destruktora Előfordulhat, hogy egy-egy típusnál nem célszerűvagy nem gazdaságos megvárni, amíg szükség lesz szemétgyűjtésre (például szűkös grafikai vagy adatbázis-erőforrások használata esetén). Erre az esetre megoldási lehetőségként az IDisposable nevű, egyetlen metódust (ez a Dispose() metódus) tartalmazóinterfész megvalósítása kínálkozik január 31. miklos.arpad@nik.bmf.hu 3: 34

35 Automatikus memóriakezelés A felügyelt memória ( managed heap ) [A] Felügyelt memóriaterület A B C D E F G H I J K Következő objektum helye Hivatkozások Mezők Paraméterek Helyi változók CPU regiszterek Destruktorhívásra váró objektumok listája ( freachable queue ) A C G K Destruktorhívást igénylő objektumok listája ( finalization queue ) január 31. miklos.arpad@nik.bmf.hu 3: 35

36 Automatikus memóriakezelés A felügyelt memória ( managed heap ) [A] Felügyelt memóriaterület (egy szemétgyűjtési ciklus után) A C D F G H I K Következő objektum helye Hivatkozások Mezők Paraméterek Helyi változók CPU regiszterek G K A Destruktorhívásra váró objektumok listája ( freachable queue ) C Destruktorhívást igénylő objektumok listája ( finalization queue ) január 31. miklos.arpad@nik.bmf.hu 3: 36

37 Szerelvények és verziókezelés A szerelvény(angolul assembly ) a.net keretrendszer köztes kódot tartalmazó, önleíró, biztonságosan azonosíthatóés verzionálható logikai tárolási (telepítési) egysége Egy szerelvény tetszőleges számúfájlból állhat, ám a.net keretrendszer ettől függetlenül mindig egy egységként kezeli a szerelvényt. A szerelvények legfontosabb közös jellemzői: A saját belső elemeiket, illetve a bennük lévő elemek külső függőségeit leíró metaadatokkal rendelkeznek, melyek összefoglaló neve manifeszt (angolul manifest ) Tartalmazzák a bennük található típusok metaadatait (leírását) és kódját Egyértelműverzióazonosítójellemzi őket, melynek segítségével biztosan, a tévedés lehetőségének kizárásával azonosíthatók Amennyiben szükséges, a verzióadatok nyilvános kulcsú titkosítás segítségével állnak elő Lehetőség van arra, hogy egy szerelvénynek egyszerre több verziója is aktív legyen Biztonsági információkat is tartalmazhatnak Telepítésük általában egyszerű másolással megoldható január 31. miklos.arpad@nik.bmf.hu 3: 37

38 Szerelvények és verziókezelés A szerelvények felépítése Szerelvény.dll Szerelvény metaadatai (manifeszt) Azonosító, fájlok listája,hivatkozások, biztonsági kérelmek, közzétett típusok Osztályok, struktúrák, metódusok, mezők... Típusok metaadatai Köztes (IL) programkód A szerelvényben tárolt típusokat ténylegesen megvalósító köztes kód Képek, hangok, ikonok, szöveges és egyéb erőforrások Erőforrások január 31. miklos.arpad@nik.bmf.hu 3: 38

39 Szerelvények és verziókezelés Metaadatok A szerelvényeket leíró metaadatok (azaz a manifeszt) tartalma: 1. Teljes azonosító(név, verzióadatok, kultúra, nyilvános kulcs kivonata) 2. Tartalmazott fájlok listája (egy vagy több fájl) 3. Hivatkozott szerelvények azonosítóinak listája (teljes azonosítók, lásd 1.) 4. Biztonsági engedélykérelmek listája (a szerelvény elemeinek futtatásához szükséges jogosultságok felsorolása) 5. Közzétett típusok listája (a szerelvény által tartalmazott nyilvános osztályok, struktúrák és egyéb nyelvi elemek) A metaadatok pl. az MSIL Disassembler eszközzel megtekinthetők A programot tartalmazófájl neve ildasm.exe. Ez az eszköz a.net keretrendszerhez külön letölthető fejlesztőkörnyezet része január 31. miklos.arpad@nik.bmf.hu 3: 39

40 Szerelvények és verziókezelés Névterek, szerelvények és típusok viszonya [B] EgyikKomponens.dll MásikKomponens.dll Főprogram.exe namespace BMF.NIK.Bemutatók.VEP.Keretrendszer class Egyik class Másik class Figyelő class Segéd namespace BMF.NIK class Program január 31. 3: 40

41 Szerelvények és verziókezelés Privát és közös szerelvények A privát szerelvények az alkalmazás könyvtárában (vagy annak bármely alkönyvtárában) elhelyezett, saját használatú modulok A privát szerelvények verziókezelése nem okoz problémát, telepítésük egyszerűmásolással megoldható. Azonosításuk alapesetben nem szigorú, így bármikor frissíthetők új változatokkal, és ettől függetlenül automatikusan együttműködnek az adott alkalmazással. A közös szerelvények több különbözőalkalmazás által közösen használt és közösen elérhető helyen tárolt modulok A közös szerelvényeknek egyedi azonosítóval kell rendelkezniük. A keretrendszer egy közösen elérhetőhelyen tárolja őket, telepítésük pedig csak a megfelelő segédeszközök valamelyikével történhet (pl. gacutil.exe ). A megosztott tárolóhely neve global assembly cache vagy röviden GAC. Ez a tárolóhely biztosítja, hogy a benne tárolt közös szerelvényeknek párhuzamosan több verziója is aktív lehessen január 31. miklos.arpad@nik.bmf.hu 3: 41

42 Szerelvények és verziókezelés Szerelvények biztonságos azonosítása Az alábbi azonosítók különböző szerelvényeket határoznak meg: Főprogram, Version= , Culture=neutral, PublicKeyToken=b77a5c561934e089 Főprogram, Version= , Culture="en-US", PublicKeyToken=b77a5c561934e089 Főprogram, Version= , Culture=neutral, PublicKeyToken=b77a5c561934e089 Főprogram, Version= , Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a A fenti azonosítókat erős név -nek ( strong name ) nevezzük A nyilvános kulcsútitkosítás használata garantálja, hogy egy erős névvel ellátott szerelvény nem hamisíthatóés nem módosítható(átnevezés, verziószám önkényes belsőmódosítása stb.), így minden körülmények között egyértelműen azonosítható. Ezek a szerelvények a GAC-ban egyszerre létezhetnek A szerelvény régebbi verzióját vagy más-más nyelvű(kultúrájú) változatát igénylőprogramok mindig automatikusan a nekik megfelelőszerelvényt kapják a keretrendszertől. Ez a viselkedés konfigurációs fájlokkal egyedi vagy központi szinten egyaránt módosítható január 31. miklos.arpad@nik.bmf.hu 3: 42

43 Biztonsági modell A.NET keretrendszer biztonsági modellje részletesen, finom szemcsézettséggel szabályozza a futtatott kódok erőforráshozzáférési jogosultságait A programokat a keretrendszer futtatáskor ún. tagsági feltételek alapján (ilyen például a származás helye, a szerelvényt kiadócég azonosítója stb.) besorolja egy-egy kódcsoportba (angolul code group ). A futtatott program jogosultságait az adott kódcsoportra vonatkozó jogosultságok (angolul permissions ) gyűjteménye szabja meg, melyek egy része testreszabható(például a fájlrendszer használata, a nyomtatási lehetőségek, hálózati kommunikáció, felhasználói felület elemeinek használata stb.), más részét a keretrendszer maga állapítja meg (többek között a szerelvény neve, származási helye és kiadója alapján). A jogosultságok teljes gyűjteményét a.net megfelelő biztonsági politikája (angolul security policy ) határozza meg, amely három, egymást felülbírálni képes szintet kínál (felhasználói szint, számítógép szintje, vállalati szint). Az érvényes jogosultságok gyűjteményét az egyes szinteken kiválasztott jogosultságok metszete, azaz legkisebb közös részhalmaza szabja meg január 31. miklos.arpad@nik.bmf.hu 3: 43

44 Biztonsági modell Szintek, kódcsoportok és jogosultságok [B] Felhasználói szint Csoport: All_Code Jogosultság: Teljes Tagsági feltétel: Bármely kód Vállalati szint Csoport: All_Code Jogosultság: Semmi Tagsági feltétel: Bármely kód Csoport: MyComputer Jogosultság: Teljes Tagsági feltétel: Zóna Számítógép szintje Csoport: Intranet Csoport: All_Code Jogosultság: Helyi intranet Jogosultság: Semmi Tagsági feltétel: Tagsági Zónafeltétel: Bármely kód Csoport: MyComputer Csoport: Csoport: Intranet Jogosultság: Teljes Jogosultság: Teljes Jogosultság: Helyi intranet Tagsági feltétel: Tagsági Zóna feltétel: Webhely Tagsági feltétel: Zóna Csoport: Internet Jogosultság: Internet Tagsági feltétel: Zóna Csoport: Jogosultság: Teljes Tagsági feltétel: Webhely Csoport: BMF NIK Jogosultság: Teljes Tagsági feltétel: Kiadó január 31. 3: 44

45 Biztonsági modell A biztonsági beállítások konfigurálása január 31. miklos.arpad@nik.bmf.hu 3: 45

46 A.NET osztálykönyvtárai A.NET osztálykönyvtárai különbözőnévterekben több ezer előre megírt osztályt tartalmaznak, amelyek széles körűbeépített funkcionalitást tesznek elérhetővé ASP.NET osztálykönyvtár Windows Forms osztálykönyvtár Vezérlők Webszolgáltatások Vezérlők Grafikai eszközök Egyéb szolgáltatások ADO.NET.NET osztálykönyvtár (Framework Class Library) IO Management Messaging Net... Reflection Remoting Security Threading XML január 31. 3: 46

47 A.NET osztálykönyvtárai Fontosabb támogatott alkalmazástípusok Windows-alapú grafikus felülettel rendelkező programok Windows 2000, XP és Vista alkalmazások Windows-alapú konzolos alkalmazások Parancssoros ablakon keresztül kommunikáló programok Komponensek és osztálykönyvtárak Tetszőleges osztályok, vezérlők és komponensek gyűjteményei Háttérben futó rendszerszolgáltatások Felhasználói felület nélküli, a géppel együtt induló háttérszolgáltatások XML webszolgáltatások Távolról, http és https protokollon keresztül hívható metódusok Webes felülettel rendelkező programok Weboldalak és portálok január 31. miklos.arpad@nik.bmf.hu 3: 47

48 A.NET osztálykönyvtárai Fontosabb beépített névterek System alapvető típusok minden alkalmazáshoz System.Collections gyűjtemények, vermek, sorok, listák, hasítótáblák... System.Diagnostics alkalmazások hibakeresésének támogatása System.Drawing kétdimenziós rajzolófunkciók System.IO adatfolyam-alapú fájlkezelés, könyvtárak kezelése System.Net hálózati kommunikáció System.Reflection metaadatok és típusok futási idejű vizsgálata System.Runtime.Remoting típusok és példányaik távoli elérése System.Runtime.Serialization objektumok tárolása és visszaállítása System.Security adatok és erőforrások védelme System.Threading többszálú aszinkron programozás, párhuzamos erőforráselérés System.XML XML sémák és XML formátumú adatfolyamok feldolgozása január 31. 3: 48

49 Ajánlott irodalom (1) [A] Jeffrey Richter: CLR via C#, Second Edition Kiadó: Microsoft Press, 2006 ISBN: Web: Nyelv: angol Terjedelem: 736 oldal [B] Christian Nagel, Bill Evjen, Jay Glynn, Morgan Skinner, Karli Watson, Allen Jones: Professional C# 2005 Kiadó: Wiley Publishing, Inc., 2006 ISBN: Web: Nyelv: angol Terjedelem: 1540 oldal január 31. 3: 49

50 Ajánlott irodalom (2) [C] Albert István, Balássy György, Dr. Charaf Hassan, Erdélyi Tibor, Horváth Ádám, Levendovszky Tihamér, Péteri Szilárd, Rajacsics Tamás: A.NET Framework és programozása Kiadó: Szak Kiadó, 2004 ISBN: Web: Nyelv: magyar Terjedelem: 868 oldal január 31. 3: 50

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

Vizuális, eseményvezérelt programozás X. V 1.0 Vizuális, eseményvezérelt programozás X. V 1.0 ÓE-NIK, 2011 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,

Részletesebben

.NET Microsoft.Net Framework

.NET Microsoft.Net Framework 1.oldal.NET Microsoft.Net Framework Előadás jegyzet Előadó: Pócza Krisztián ELTE,2008.NET Framework alapjai Hasznos tudnivalók A jegyzet Pócza Krisztián.NET Framework és Programozása I. című előadása alapján

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net

Bánsághi Anna anna.bansaghi@mamikon.net ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 1. ELŐADÁS - C# ÁTTEKINTÉS - 1 2015 Bánsághi Anna 1 of 84 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 84

Részletesebben

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

Programozás 2., I. kötet Az objektumorientált paradigma alapjai TÁMOP-4.1.1.F-14/1/KONV-2015-0009 A GÉPÉSZETI ÉS INFORMATIKAI ÁGAZATOK DUÁLIS ÉS MODULÁRIS KÉPZÉSEINEK KIALAKÍTÁSA A PÉCSI TUDOMÁNYEGYETEMEN Achs Ágnes Szendrői Etelka Programozás 2., I. kötet Az objektumorientált

Részletesebben

A.NET Framework és programozása C# nyelven. Kedd 16-17 30 I104

A.NET Framework és programozása C# nyelven. Kedd 16-17 30 I104 A.NET Framework és programozása C# nyelven Kedd 16-17 30 I104 Feltételek I104 Visual Studio 2013 Letölthető http://msdn.mik.uni-pannon.hu oldalról Aki saját gépet hoz, annak javasolt a legújabb verzió

Részletesebben

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Láthatósági szintek Névterek és hatókörök Osztály szintő tagok Beágyazott osztályok

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net

Bánsághi Anna anna.bansaghi@mamikon.net ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64

Részletesebben

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

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System P r o g r a m o z á s i n y e l v e k I I. C # 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

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok

Részletesebben

4. Programozási nyelvek osztályozása. Amatőr és professzionális

4. Programozási nyelvek osztályozása. Amatőr és professzionális 4. Programozási nyelvek osztályozása. Amatőr és professzionális programozási nyelvek. Számítási modellek (Neumann-elvű, automataelvű, funkcionális, logikai). Programozási nyelvekkel kapcsolatos fogalmak

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II. A.NET keretrendszer és a C# programozási nyelv. Objektumorientált programozási nyelvek A Smalltalk nyelv

Eseményvezérelt alkalmazások fejlesztése II. A.NET keretrendszer és a C# programozási nyelv. Objektumorientált programozási nyelvek A Smalltalk nyelv Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II A.NET keretrendszer és a C# programozási nyelv Objektumorientált programozási nyelvek A Smalltalk nyelv 1980-ban

Részletesebben

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl

Részletesebben

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

A.NET keretrendszer (.NET Framework) három alapvetõ összetevõbõl áll: Bevezetés Üdvözöljük a C# adatbázis-programozás mesteri szinten tanfolyamán! Amint az Olvasó bizonyára tudja, a technológiai forradalom következõ lépcsõje elkerülhetetlenül a.net felület lesz. A.NET erõssége,

Részletesebben

Kaspersky Internet Security Felhasználói útmutató

Kaspersky Internet Security Felhasználói útmutató Kaspersky Internet Security Felhasználói útmutató ALKALMAZÁS VERZIÓJA: 16.0 Tisztelt Felhasználó! Köszönjük, hogy termékünket választotta. Reméljük, hogy ez a dokumentum segít a munkájában, és választ

Részletesebben

Ismerjük meg a Monót!

Ismerjük meg a Monót! Ismerjük meg a Monót! A Mono haszna például abban áll, hogy segítségével a Linux képessé válik a Microsoft.NET rendszerével való munkára. Amennyiben írtunk már valaha Linux-munkafelületen futtatható programot,

Részletesebben

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

Objektumorientált programozás C# nyelven III.

Objektumorientált programozás C# nyelven III. Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és

Részletesebben

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI) Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A webszolgáltatás

Részletesebben

Magas szintű programozási nyelvek 2 Előadás jegyzet

Magas szintű programozási nyelvek 2 Előadás jegyzet Magas szintű programozási nyelvek 2 Előadás jegyzet 1. Rendszerfejlesztés 0. lépés: Elemzés (analízis) 1. lépés: Tervezés a, technológia független rész b, technológia függő rész 2. lépés: Megvalósítás

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelık Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát

Részletesebben

BBS-INFO Kiadó - 2007.

BBS-INFO Kiadó - 2007. BBS-INFO Kiadó - 2007. 4 MySQL.NET Minden jog fenntartva! A könyv vagy annak oldalainak másolása, sokszorosítása csak a kiadó írásbeli hozzájárulásával történhet. A könyv nagyobb mennyiségben megrendelhető

Részletesebben

Bevezetés, platformok. Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu

Bevezetés, platformok. Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu Bevezetés, platformok Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu Mobil készülékek és tulajdonságaik A mobil eszközök programozása, kihívások, nehézségek Mobilprogramozási platformok Java Micro Edition.NET

Részletesebben

Tesztelés és hibajavítás Microsoft Visual Studio 2005 fejlesztőkörnyezetben

Tesztelés és hibajavítás Microsoft Visual Studio 2005 fejlesztőkörnyezetben Vizuális és eseményvezérelt programozás 2006 2007, II. félév BMF NIK Tesztelés és hibajavítás Microsoft Visual Studio 2005 fejlesztőkörnyezetben Fordítás és futtatás Tesztelés és hibakeresés Töréspontok,

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Objektum-orientált szemlélet - Egységbe zárás (incapsulation) - Információ elrejtés - Öröklődés altípusosság dinamikus kötés Öröklődés Programozási nyelvek Java - kiterjesztem, kibővítem, megváltoztatom

Részletesebben

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

A Microsoft Visual Studio 2005 fejlesztőkörnyezet Vizuális és eseményvezérelt programozás BMF NIK A Microsoft Visual Studio 2005 fejlesztőkörnyezet Az integrált fejlesztőkörnyezet (IDE) alapelemei Projektek és megoldások Új projekt indítása, projektek

Részletesebben

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 11. előadás 2014.05.12. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Adatszerkezetek

Részletesebben

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

Karbantartás. Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat:

Karbantartás. Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat: Karbantartás Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat: Jelszó módosítása: A felhasználói jelszavunkat módosíthatjuk ebben a menüpontban, a régi jelszavunk megadása után. Általánosan

Részletesebben

C# osztályok. Krizsán Zoltán

C# osztályok. Krizsán Zoltán C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC

Részletesebben

1.1 Szakdolgozat témája... 2. 1.2 A Program célja... 2. 1.4 A használt technológiák ismertetése... 2. 2 A program megtervezése...

1.1 Szakdolgozat témája... 2. 1.2 A Program célja... 2. 1.4 A használt technológiák ismertetése... 2. 2 A program megtervezése... 1 Bevezető... 2 1.1 Szakdolgozat témája... 2 1.2 A Program célja... 2 1.3 Fejlesztői környezet... 2 1.4 A használt technológiák ismertetése... 2 2 A program megtervezése... 4 2.1 Az ablak kinézetének megtervezése:...

Részletesebben

BARANGOLÁS AZ E-KÖNYVEK BIRODALMÁBAN Milyen legyen az elektonikus könyv?

BARANGOLÁS AZ E-KÖNYVEK BIRODALMÁBAN Milyen legyen az elektonikus könyv? BARANGOLÁS AZ E-KÖNYVEK BIRODALMÁBAN Milyen legyen az elektonikus könyv? Készítették: Névery Tibor és Széll Ildikó PPKE I. évf. kiadói szerkesztő hallgatók, közösen 1 BEVEZETŐ Az elektronikus könyv valamilyen

Részletesebben

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

.NET (Dot-NET) #1 (Bevezeté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

Részletesebben

II. Programozási technológiák

II. Programozási technológiák II. Programozási technológiák 1 II.1 A gépi kódú program Az algoritmuslépések kódja + memória címek. II.2 Programkészítő programok MOV AX,1234h ;0B8h 34h 12h - szám (1234h) az AX reg.-be MUL WORD PTR [5678h]

Részletesebben

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

15. Programok fordítása és végrehajtása 15. Programok fordítása és végrehajtása Programok fordítása és végrehajtása. (Fordítás és interpretálás, bytecode. Előfordító, fordító, szerkesztő. A make. Fordítási egység, könyvtárak. Szintaktikus és

Részletesebben

Programozás C++ -ban 2007/4

Programozás C++ -ban 2007/4 Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. 1 of 67

Bánsághi Anna anna.bansaghi@mamikon.net. 1 of 67 SZOFTVERTECHNOLÓGIA Bánsághi Anna anna.bansaghi@mamikon.net 5. ELŐADÁS - RENDSZERTERVEZÉS 1 1 of 67 TEMATIKA I. SZOFTVERTECHNOLÓGIA ALTERÜLETEI II. KÖVETELMÉNY MENEDZSMENT III. RENDSZERMODELLEK IV. RENDSZERARCHITEKTÚRÁK

Részletesebben

Előzmények 2011.10.23.

Előzmények 2011.10.23. Előzmények Dr. Mileff Péter A 80-as évek közepétől a szoftverek komplexitása egyre növekszik. Megjelentek az OO nyelvek. Az OO fejlesztési módszerek a rendszer különböző nézőpontú modelljeit készítik el.

Részletesebben

Adatstruktúrák Algoritmusok Objektumok

Adatstruktúrák Algoritmusok Objektumok Adatstruktúrák Algoritmusok Objektumok A számítógépes problémamegoldás modellezésének módszerei. Programozási elvek és módszerek: imperatív, strukturált, moduláris, objektumorientált programozás. Programozási

Részletesebben

3. Gyakorlat Ismerkedés a Java nyelvvel

3. Gyakorlat Ismerkedés a Java nyelvvel 3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az

Részletesebben

Gyorskalauz a Windowshoz készült asztali Novell Filr 1.0.2 alkalmazáshoz

Gyorskalauz a Windowshoz készült asztali Novell Filr 1.0.2 alkalmazáshoz Gyorskalauz a Windowshoz készült asztali Novell Filr 1.0.2 alkalmazáshoz 2014. február Novell Gyorskalauz A Novell Filr egyszerű elérést biztosít fájljaihoz és mappáihoz asztali gépéről, böngészőből és

Részletesebben

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek

Részletesebben

Adatbázisok* tulajdonságai

Adatbázisok* tulajdonságai Gazdasági folyamatok térbeli elemzése 4. előadás 2010. 10. 05. Adatbázisok* tulajdonságai Rendezett, logikailag összefüggő és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az

Részletesebben

PHP5 Új generáció (2. rész)

PHP5 Új generáció (2. rész) PHP5 Új generáció (2. rész)...avagy hogyan használjuk okosan az osztályokat és objektumokat PHP 5-ben. Cikksorozatom elõzõ részében képet kaphattunk arról, hogy valójában mik is azok az objektumok, milyen

Részletesebben

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás. Emlékeztető: a fordítás lépései Forrás-kezelő (source handler) Szimbólumtábla-kezelés Fordítóprogramok előadás (A, C, T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus elemző

Részletesebben

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18 C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18 Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi

Részletesebben

RIA Rich Internet Application

RIA Rich Internet Application Áttekintés RIA Rich Internet Application Komplex felhasználói felülettel rendelkező web-alkalmazások Bevezető Flex áttekintés ActionScript Felhasználói felület tervezése Események Szerver oldali szolgáltatásokkal

Részletesebben

Karbantartás. Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat:

Karbantartás. Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat: Karbantartás Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat: Jelszó módosítása: A felhasználói jelszavunkat módosíthatjuk ebben a menüpontban, a régi jelszavunk megadása után. Általánosan

Részletesebben

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése 2011.10.23.

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése 2011.10.23. Szoftverprototípus készítése Dr. Mileff Péter A prototípus fogalma: a szoftverrendszer kezdeti verziója Mi a célja? Arra használják, hogy bemutassák a koncepciókat, kipróbálják a tervezési opciókat, jobban

Részletesebben

A SZOFTVERTECHNOLÓGIA ALAPJAI

A SZOFTVERTECHNOLÓGIA ALAPJAI A SZOFTVERTECHNOLÓGIA ALAPJAI Objektumorientált tervezés 8.előadás PPKE-ITK Tartalom 8.1 Objektumok és objektumosztályok 8.2 Objektumorientált tervezési folyamat 8.2.1 Rendszerkörnyezet, használati esetek

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás

Részletesebben

Gyorskalauz a Machez készült asztali Novell Filr 1.0.2 alkalmazáshoz

Gyorskalauz a Machez készült asztali Novell Filr 1.0.2 alkalmazáshoz Gyorskalauz a Machez készült asztali Novell Filr 1.0.2 alkalmazáshoz 2014. február Novell Gyorskalauz A Novell Filr egyszerű elérést biztosít fájljaihoz és mappáihoz asztali gépéről, böngészőből és mobileszközökről

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 12. előadás Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014.

Részletesebben

Dr. Pétery Kristóf: Excel 2007 feladatok és megoldások 2.

Dr. Pétery Kristóf: Excel 2007 feladatok és megoldások 2. 2 Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. Kiadja a Mercator Stúdió Felelős kiadó a Mercator Stúdió vezetője Lektor: Gál Veronika Szerkesztő: Pétery István

Részletesebben

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010 Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 Előadás tematika 1. Pascal ismétlés, kiegészítések 2. Objektum orientált programozás (OOP) 3. Delphi környezet 4. Komponensek bemutatása

Részletesebben

XmlGessünk 13. rész - Az XML Schema II.

XmlGessünk 13. rész - Az XML Schema II. XmlGessünk 13. rész - Az XML Schema II. Az elz részben láthattuk, hogyan kell közvetlen egymásba ágyazással, referenciákkal és típusok definiálásával egyszerbb sémákat szerkeszteni. Részletesen megnéztük

Részletesebben

Programozás II. labor

Programozás II. labor Programozás II. labor 1. rész Programozási tételek Öröklődés Interfészek Eseménykezelés Kivételkezelés Visszalépéses keresés Programozás II. Programozási tételek OOP alapok ismétlése Öröklődés Öröklődés

Részletesebben

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási

Részletesebben

VirtualBox, Debian telepítés

VirtualBox, Debian telepítés VirtualBox, Debian telepítés 1 VirtualBox Az Oracle VirtualBox egy x86-alapú (azaz AMD vagy Intel rendszerekre kifejlesztett), több platformon is futtatható virtualizációs program. A segítségével virtuális

Részletesebben

strings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string

strings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string Resource Objects Adatforrás elemeket hivatkozás (referencia, mutató) segítségével használhatunk, ezek karakterláncok (stringek), képek, azonosítók vagy akár fájlok is lehetnek A mappastruktúra egységesen

Részletesebben

10. évfolyam 105 óra 10817-12 azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy

10. évfolyam 105 óra 10817-12 azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy 9. évfolyam 70 óra 10815-12 azonosító számú Információtechnológiai alapok gyakorlat 70 óra Információtechnológiai gyakorlat tantárgy 70 óra Számítógép összeszerelése Számítógép szétszerelése. Pontos konfiguráció

Részletesebben

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is.

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. 2 Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. Kiadja a Mercator Stúdió Felelős kiadó a Mercator Stúdió vezetője Lektor: Gál Veronika Szerkesztő: Pétery István

Részletesebben

++Buy( Kaspersky Anti- Virus 2014 top sites for computer software ]

++Buy( Kaspersky Anti- Virus 2014 top sites for computer software ] ++Buy( Kaspersky Anti- Virus 2014 top sites for computer software ] Description: Elonyök Védelem a rosszindulatú programok ellen Továbbfejlesztve! A Kaspersky Lab rosszindulatú programok elleni védelmet

Részletesebben

A C# PROGRAMOZÁSI NYELV

A C# PROGRAMOZÁSI NYELV A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework

Részletesebben

ORPHEUS. Felhasználói kézikönyv. C o p y r i g h t : V a r g a B a l á z s 2 0 1 2 Oldal: 1

ORPHEUS. Felhasználói kézikönyv. C o p y r i g h t : V a r g a B a l á z s 2 0 1 2 Oldal: 1 ORPHEUS Felhasználói kézikönyv C o p y r i g h t : V a r g a B a l á z s 2 0 1 2 Oldal: 1 Tartalomjegyzék Rendszerkövetelmények... 5 Telepítés... 6 A program célja... 10 A program indítása... 10 Rendszeradminisztráció...

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22: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 OOP OOP_14-1 - E jegyzet

Részletesebben

BAUSFT. Pécsvárad Kft. 7720 Pécsvárad, Pécsi út 49. Tel/Fax: 72/465-266 http://www.bausoft.hu. ISO-bau. Szigetelés kiválasztó. 1.02 verzió.

BAUSFT. Pécsvárad Kft. 7720 Pécsvárad, Pécsi út 49. Tel/Fax: 72/465-266 http://www.bausoft.hu. ISO-bau. Szigetelés kiválasztó. 1.02 verzió. BAUSFT Pécsvárad Kft. 7720 Pécsvárad, Pécsi út 49. Tel/Fax: 72/465-266 http://www.bausoft.hu ISO-bau Szigetelés kiválasztó 1.02 verzió Szerzők: dr. Baumann József okl. villamosmérnök 1188 Budapest, Fenyőfa

Részletesebben

C#, OOP. Osztályok tervezése C#-ban

C#, OOP. Osztályok tervezése C#-ban C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat

Részletesebben

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Programozás I. 3. előadás Tömbök a C#-ban Metódusok C#-ban Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Szoftvertechnológia

Részletesebben

Év zárása és nyitása 2015-ről 2016-ra

Év zárása és nyitása 2015-ről 2016-ra Év zárása és nyitása 2015-ről 2016-ra Ebben az évben a megszokottól eltérően, új programot kell telepíteni. Ennek lépései: 1. lépjen ki a DszámlaWIN programból (FONTOS!). Amennyiben hálózatban használják

Részletesebben

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere 2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda

Részletesebben

Máté: Számítógép architektúrák 2010.12.01.

Máté: Számítógép architektúrák 2010.12.01. Máté: Számítógép architektúrák... A feltételes ugró utasítások eldugaszolják a csővezetéket Feltételes végrehajtás (5.5 5. ábra): Feltételes végrehajtás Predikáció ió C pr. rész Általános assembly Feltételes

Részletesebben

C# gyorstalpaló. Készítette: Major Péter

C# gyorstalpaló. Készítette: Major Péter C# gyorstalpaló Készítette: Major Péter Adattípusok Logikai változó Egész szám (*: előjel nélküli) Lebegőponto s szám Típus Típusnév másképpen (egyenértékű) Helyigény (bit) Példa bool Boolean 8 (!) true,

Részletesebben

Adatbázisok I 2012.05.11. Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Adatbázisok I 2012.05.11. Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés Adatbázisok I Szemantikai adatmodellek Szendrői Etelka PTE-PMMK Rendszer és Szoftvertechnológiai Tanszék szendroi@pmmk.pte.hu Adatmodellek komponensei Adatmodell: matematikai formalizmus, mely a valóság

Részletesebben

VBA. Visual Basic for Applications

VBA. Visual Basic for Applications VBA Visual Basic for Applications Mi a közös a Microsoft Word, Excel, Power Point, Access alkalmazásokban? HÁT A VBA! Visual Basic for Applications Program nyelv: Menő programokat lehet benne írni English

Részletesebben

JAVA PROGRAMOZÁS 3.ELŐADÁS

JAVA PROGRAMOZÁS 3.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram

Részletesebben

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar. 2012. május 30.

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar. 2012. május 30. Név, felvételi azonosító, Neptun-kód: MI pont(45) : Csak felvételi vizsga: csak záróvizsga: közös vizsga: Közös alapképzéses záróvizsga mesterképzés felvételi vizsga Mérnök informatikus szak BME Villamosmérnöki

Részletesebben

Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok Adatstruktúrák, algoritmusok, objektumok 3. Az objektumorientált paradigma alapelemei Objektum Osztály Példányosítás A konstruktor és a destruktor Osztályok közötti kapcsolatok 1 Objektum Definíció Az

Részletesebben

Access adatbázis elérése OLE DB-n keresztül

Access adatbázis elérése OLE DB-n keresztül Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes

Részletesebben

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

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 Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése Készítette: Simon Nándor Integrált fejlesztő környezet Egységes (vizuális) fejlesztési lehetőségek Bőséges segítség (help) Hibakeresési, nyomkövetési

Részletesebben

Jogosultságkezelés felhasználói leírás

Jogosultságkezelés felhasználói leírás Jogosultságkezelés felhasználói leírás 1149 Budapest, Egressy út 17-21. Telefon: +36 1 469 4021; fax: +36 1 469 4029 1/14 Tartalomjegyzék 1. Jogosultságkezelés a DOAS rendszerben... 3 1.1. Bevezetés...

Részletesebben

ÓBUDAI EGYETEM Neumann János Informatikai Kar Informatikai Rendszerek Intézet Témavezető: Bringye Zsolt

ÓBUDAI EGYETEM Neumann János Informatikai Kar Informatikai Rendszerek Intézet Témavezető: Bringye Zsolt Témavezető: Bringye Zsolt Diplomamunka/szakdolgozat címe: X64 szerver virtualizáció technológiai kérdéseinek áttekintése, kereskedelmi termékekben történő megvalósításuk elemzése (funkcionalitás, teljesítmény,

Részletesebben

Haladóprogramozás (C#) 2007 2008, I. félév BMF NIK

Haladóprogramozás (C#) 2007 2008, I. félév BMF NIK Haladóprogramozás (C#) 00 00, I. félév BMF NIK Nemzetközi és többnyelvű alkalmazások fejlesztése Nemzetközi alkalmazások készítésének szempontjai Globalizáció és lokalizáció Nyelvi és kulturális jellemzők

Részletesebben

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

A NYELV NEVE. Kezdetben: Oak. James Gosling. Java: Sun Mycrosystems védjegyev JAVA A NYELV NEVE Kezdetben: Oak James Gosling Java: Sun Mycrosystems védjegyev EGY KIS FÖLDRAJZF Indonézia egyik szigete Jakarta: az ország g fővárosaf Föld 13. legnagyobb szigete Mit egyszerű csinálni?

Részletesebben

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

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 2. ELİADÁS Visual Basic bevezetı Visual Basic.NET nyelvi elemek 2 Visual Basic.NET programozási nyelv Nyelvi elemek: Általában

Részletesebben

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

Objektumorientált programozás. Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 Előadás tematika 1. Visual Basic ismétlés, kiegészítések 2. Objektum orientált programozás (OOP) 3. Visual Studio.NET környezet

Részletesebben

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/ Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/ Mi is az a Virtualizáció? Az erőforrások elvonatkoztatása az

Részletesebben

A tömörítési eljárás megkezdéséhez jelöljük ki a tömöríteni kívánt fájlokat vagy mappát.

A tömörítési eljárás megkezdéséhez jelöljük ki a tömöríteni kívánt fájlokat vagy mappát. Operációs rendszerek Windows Xp (13-16 óra) FÁJLTÖMÖRÍTŐ PROGRAMOK KEZELÉSE A tömörítés fogalma A tömörítő eljárás során az állomány felhasználásának szempontjából két műveletet hajtunk végre. Az állományok

Részletesebben

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek

Részletesebben

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter Assembly Rekurzív függvények, EXE, C programok Iványi Péter Algoritmusok előadás Rekurzív függvény FÜGGVÉNY nyomtat(n) print n HA n!= 0 nyomtat(n-1) ELÁGAZÁS VÉGE FÜGGVÉNY VÉGE Rekurzív függvény org 100h

Részletesebben

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is.

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. 2 Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is. Kiadja a Mercator Stúdió Felelős kiadó a Mercator Stúdió vezetője Lektor: Gál Veronika Szerkesztő: Pétery István

Részletesebben

II. év. Adatbázisok és számítógépek programozása

II. év. Adatbázisok és számítógépek programozása II. év Adatbázisok és számítógépek programozása A programozási ismeretek alapfogalmai a) algoritmus b) kódolás c) program a) algoritmus: elemi lépések sorozata, amely a következı tulajdonságokkal rendelkezik:

Részletesebben

Mobil készülékek programozása

Mobil készülékek programozása Mobil készülékek Egyre több ember zsebében és táskájában a legkülönfélébb mobileszközök megtalálhatóak Mobiltelefonok, PDA-k, PalmTopok és intelligens multimédiás eszközök (mit pl. ipod-ok) A készülékek

Részletesebben

Webszolgáltatások kommunikációs overhead-jének becslése

Webszolgáltatások kommunikációs overhead-jének becslése Webszolgáltatások kommunikációs overhead-jének becslése Simon Balázs, sbalazs@iit.bme.hu Dr. Goldschmidt Balázs, balage@iit.bme.hu Dr. Kondorosi Károly, kondor@iit.bme.hu Budapesti Műszaki Egyetem, Irányítástechnika

Részletesebben

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3) Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II 1. előadás. A.NET keretrendszer és a C# programozási nyelv. A.NET keretrendszer Eredete

Eseményvezérelt alkalmazások fejlesztése II 1. előadás. A.NET keretrendszer és a C# programozási nyelv. A.NET keretrendszer Eredete Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 1. előadás és a C# programozási nyelv 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

IBM Data Server ügyfelek telepítése

IBM Data Server ügyfelek telepítése IBM DB2 10.1 for Linux, UNIX, Windows IBM Data Server ügyfelek telepítése GC22-1152-00 IBM DB2 10.1 for Linux, UNIX, Windows IBM Data Server ügyfelek telepítése GC22-1152-00 Megjegyzés Az információk

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM

Részletesebben

Tanúsítási jelentés. Hung-TJ-010-2003. a MultiSigno Developer Professional. aláíró alkalmazás fejlesztő készletről. /Kopint-Datorg Rt.

Tanúsítási jelentés. Hung-TJ-010-2003. a MultiSigno Developer Professional. aláíró alkalmazás fejlesztő készletről. /Kopint-Datorg Rt. Tanúsítási jelentés Hung-TJ-010-2003 a MultiSigno Developer Professional aláíró alkalmazás fejlesztő készletről /Kopint-Datorg Rt./ /verzió: Pack.dll 2.0/ Tanúsítási jelentés a MultiSigno Developer Professional

Részletesebben

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák Java Web technológiák Bevezetés Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés

Részletesebben