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



Hasonló dokumentumok
A C# PROGRAMOZÁSI NYELV

A C# programozási nyelv alapjai

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

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

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

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

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Java II. I A Java programozási nyelv alapelemei

.NET Microsoft.Net Framework

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

Szoftvertechnológia alapjai Java előadások

Bánsághi Anna

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

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

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

Java II. I A Java programozási nyelv alapelemei

Mobil Informatikai Rendszerek

Webes alkalmazások fejlesztése

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

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Java I. A Java programozási nyelv

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

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

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Készítette: Nagy Tibor István

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

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Flex: csak rugalmasan!

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

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

Közösség, projektek, IDE

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

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

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

Mobil Informatikai Rendszerek

és az instanceof operátor

Szoftvertervezés és -fejlesztés I.

OOP #14 (referencia-elv)

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Bevezetés a C++ programozási nyelvbe

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

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Informatika terméktervezőknek

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Algoritmizálás és adatmodellezés tanítása 1. előadás

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Bánsághi Anna

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Iman 3.0 szoftverdokumentáció

Pénzügyi algoritmusok

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

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

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?

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Készítette: Nagy Tibor István

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

Programozási nyelvek Java

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

II. Programozási technológiák

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

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

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

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

iphone és Android két jó barát...

Java. JIT (Just in Time) fordítók alkalmazása, optimalizálás AOT (Ahead of Time) fordítók alkalmazásának lehetősége

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Mintavételes szabályozás mikrovezérlő segítségével

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

Programozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

C# mesteri szinten 21 nap alatt

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

1. Bevezetés A C++ nem objektumorientált újdonságai 3

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

Objektumorientált Programozás II.

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

Web-fejlesztés NGM_IN002_1

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

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

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Multimédiás adatbázisok

Információs Technológia

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

BMD Rendszerkövetelmények

A Java EE 5 plattform

9. MPI

eseményvezérelt megoldások Vizuális programozás 5. előadás

RIA Rich Internet Application

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Objektumorientált programozás C# nyelven

Előszó A Windows alkalmazásfejlesztés rövid története A Windows életútja A Windows 8 paradigmaváltása... 16

I. rész: A Microsoft Visual C# és a Microsoft Visual Studio 2005 bemutatása. 1. Üdvözöljük a C# világában! 3

Átírás:

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ó letöltése A telepítésnél MsSQL Express is Gyakorlati jegy (portfólió): Zh (lehet saját gépen, minden használható) Órán feltöltött feladatok HF-ok Választott témakör feldolgozása (beépítése a keretrendszerbe)

Témakörök A.NET A C# A Visual Studio fejlesztőeszköz Az osztály és az objektum A vezérlők, tulajdonságok, események, ablakok Az öröklés és a.net osztálykönyvtár A felügyelt kód és a Toolbox komponensek Nyelvi specialitások DLL Windows vezérlő Adatbázis-elérés Webalkalmazás Mobilalkalmzás

Ajánlott irodalom Albert István, Balássy György, 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, Szak kiadó, 2004 Bradley L. Jones: C# mesteri szinten, Kiskapu Kft, 2004 MSDN Online: http://msdn.microsoft.com www.microsoft.com/net Code.msdn.com Csharp.lap.hu Sipos Marianna: Programozás élesben, InfoKit, 2004 John Sharp: Visual C# 2005, Szak kiadó, 2005 Trey Nash: C# 2008, Panem Könyvkiadó, 2009

MCP vizsgák Bővebben: http://www.microsoft.com/learning/mcp/default.asp Kapcsolodó vizsgák: http://www.microsoft.com/learning/exams/70-315.asp http://www.microsoft.com/learning/exams/70-316.asp http://www.microsoft.com/learning/exams/70-320.asp http://www.microsoft.com/learning/exams/70-340.asp

Mi a.net? Platform, melynek fő részei Absztrakciós réteg az operációs rendszer fölött (Common Language Runtime), benne közös típusrendszer Közös típusrendszerre épülő sokrétű osztálykönyvtár (Base/Framework Class Library) Fejlesztő eszközök és nyelvek, melyek a közös köztes nyelvre (Common Language Infrastucture) készítenek programokat

A.NET Framework ASP.NET Web Forms Web Services Mobile Internet Toolkit ADO.NET and XML Base Class Library Common Language Runtime Windows Windows Forms Rich Runtime Environment (Sokrétű futási környezet) Common Language Runtime (közös nyelvi futási környezet) minden nyelv számára közös: Típusrendszer Metaadat kezelés Futtató környezet Jobb biztonság és telepítés Rich Class libraries (Sokrétű osztálykönyvtárak) Sokrétűbb API lehetőségek Hierarchikus névterek Konzisztens, lényegében objektum-orientált tervezési minták Koncentrálás a kódra, és nem a ragasztó részekre Eszközök támogatása Tervezés, Nyomkövetés, stb..

.NET Framework Előnyök Biztonságos kód Könnyű telepítés Többnyelvűség Konzisztens programozási modell Kisebb kódhiba lehetőség Hardver és op rendszer függetlenségi lehetőség (Compact Framework) Hátrányok Nem natív kód, fordítás szükséges

Nyelvi támogatás A.NET által támogatott nyelvek A.NET platform és nyelv semleges Minden.NET nyelv teljes értékű A meglévő nyelvtudás továbbra is használható VB C++ C# Perl Python Web Services User Interface ASP.NET ADO.NET: Data and XML Base Framework Common Language Runtime

Nyelvi támogatás 21 nyelv Microsoft C++, C#, Visual Basic, Jscript, Java Oberon Perl Scheme Mercury C++ VBScript Smalltalk Eiffel.NET C# Python JScript Haskell COBOL Visual Basic Oz ML APL Más gyártók APL, Cobol, Component Pascal, Eiffel, Fortran, Fujitsu Cobol, Haskell, Mercury, Oberon, Oz, Perl, Python, RPG, Scheme, Smalltalk, Standard ML, Delphi

Nyelvi támogatás Alap nyelvek Visual C#.NET Visual C++.NET Visual Basic.NET Modern, komponens orientált, szigorúan típusos nyelv C++-hoz hasonló szintaktika Gyors alkalmazás fejlesztés lehetősége C++ fejlesztőknek Attribútum alapú programozás Felügyelt kiterjesztések (Managed Extensions) C++-hoz Teljesen illeszkedik a.net keretrendszerbe Objektum orientált nyelv kód újrahasznosítással Szabad szálkezelés, maximális léptékezhetőség Strukturált kivétel kezelés, könnyű karbantarthatóság Megőrizte a megszokott Visual Basic szintaktikát

CLR.NET 4.5.1

Visual C#.NET Egy komponens alapú nyelv A C# az első komponens orientált nyelv a C/C++ családban Kiváló komponens koncepciók Tulajdonságok, tagfüggvények, események Tervezés- és futásidejű attribútumok XML-en alapuló integrált dokumentáció Programozás egy helyen Nincsenek header, IDL, stb. fájlok Beágyazható ASP.NET lapokba

A fájlok struktúrája Nincs header fájl C# támogatja a definíció a deklarálásnál" modellt mint a Visual Basic, Pascal, Modula, Java Minden kód és deklaráció egy helyen a kód konzisztens és könnyen kezelhető csapatmunka esetén sokkal közérthetőbb deklaráció metaadatokon át jobban elérhető Feltételes fordítás (prepocesszor) van, de makró nincs

A típus rendszer A.NET CLS típus-rendszerére épül Natív elérés a.net típus rendszerhez C# a.net bölcsőjéből született Minden Objektum minden objektum implicite a System.Object ből származik Console.Write( 256.ToString() ); Megkülönböztetés érték és a referencia típusok között érték: egyszerű típusok, enum, struct referencia: interface, class, array, string,...

Az egyszerű típusok Egész típusok int, uint (32 bit), long, ulong (64 bit) byte, sbyte (8 bit), short, ushort (16 bit) IEEE lebegőpontos típusok double (pontosság: 15-16 számjegy) float (pontosság: 7 számjegy) Pontos szám típus decimal (28 szignifikáns számjegy) Karakter típusok char (egy unicode karakter, nem cserélhető fel az int-tel) string (gazdag funkcionalitás, referencia szerinti típus) Boolean típus bool (külön típus, nem cserélhető fel az int-tel)

Tömbök Nulla alapú, erősen típusos, a.net System.Array osztályán alapul Deklaráláskor típus és dimenziók, de nincs korlát int[] EgyDim; int[,] KetDim; int [][] Beagyazott; Létrehozás new val (korlátokkal vagy inicializálással) EgyDim = new int[20]; KetDim = new int[,] { {1,2,3}, {4,5,6} }; KetDim[0,0] == 1! Beagyazott = new int[1][]; Beagyazott[0] = new int[]{1,2,3}; Beagyazott[0][2] == 3!

Statementek C-szerű: Flow Control és Loop if (<bool expr>) {... } else {... } switch(<var>) { case <const>:...; } while (<bool expr>) {... } for (<init>;<bool test>;<modify>) {... } foreach( típus <var> in <var> ) {... } do {... } while (<bool expr>); Nem C szerű: lock(<object>){... }; nyelvvel járó kritikus szekció szinkronizáció lehetőség checked {... }; unchecked {... }; checked (... ); unchecked (... ); uncheck: aritmetikai műveletek hibáinak kezelése, nullával osztás NEM

Operátorok C-szerű: Logikai: && ^! Aritmetikus: * / + - % << >> Relácionális: ==!= < > >= <= C-hez hasonló: Integer: & és bináris AND/OR Bool: & és logikai operátor teljes kiértékeléssel 1 == 0 && isvalid( a ) 1 == 0 & isvalid( a ) isvalid hívás Nem C-szerű: is: Runtime-Type tesztelése as: Type-Cast, nincs exception, null lesz typeof: Runtime-Type lekérése

Feladat Automatikus szemétgyűjtő demo (egy osztály, amelyik statikus adattagban számolja a példányai számát)

Szemétgyűjtő Módszerek Kézi (free, delete): hatékony, sok hibalehetőség, csak egy modulon belül működik Referencia számlálás (komponens rendszerek): körkörös hivatkozások detektálása probléma Teljesen automatikus (Java,.NET): gyors fejlesztés, nincs memória szivárgás, lassú lehet Módszer A gyökér elemektől (globális, lokális, modulokat összekapcsoló változók) bejárni a hivatkozási láncot Ami elérhetetlen a programból, az szemét, törölhető Memóriatömörítés (defragmentálás)

Szemétgyűjtő A.NET-ben Ideje nem definiált Generációk (a fiatal objektumok korán halnak) Nincs mindig memóriatömörítés Destruktorok (nem törölhető rögtön az objektum, újraélesztés lehetséges) Szerver és kliens változatok + objektum (Konkurens futás, Szálak száma) + objektum + objektum + gyökérobjektu m + objektum + objektum szemét + gyökérobjektu m + objektum + objektum + gyökérobjektu m + objektum szemét

Reflector math.uni-pannon.hu\~lipovitsa\reflector.zip