asp.net internetes alkalmazÁÉÁsfejlesztÉsade.web.elte.hu/old/aspnet/asp.net-1.pdf ·...

58
ASP.NET INTERNETES Á É ALKALMAZÁSFEJLESZTÉS Elméleti áttekintés 2010.02.19.

Upload: lyminh

Post on 17-Mar-2018

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

ASP.NET INTERNETES Á ÉALKALMAZÁSFEJLESZTÉS

Elméleti áttekintés2010.02.19.

Page 2: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

BemutatkozásBemutatkozás2

ÁTarcsi Ádáme-mail: [email protected]@

Page 3: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

TematikaTematika3

El él ti átt ki téElméleti áttekintésA .NET keretrendszerA Vi l St di NET f jl tői kö tA Visual Studio .NET fejlesztői környezeteASP.NET (C#)

Webűrlapok használataWebűrlapok használataSzerveroldali Web és HTML vezérlőelemekPage objektum és az eseménykezelésg j y

Adatkezelés: XML, ADO.NET és LINQWeb szolgáltatásokgWeb alkalmazások konfigurálása, hitelesítése és telepítéseAJAX (?)

Page 4: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Követelmények - értékelésKövetelmények értékelés4

Gyakorlati dolgozat:A feladatok a következő témaköröket ölelhetik fel:

Szerveroldali programozás ASP.NET és ADO.NET technológiávalgEgyszerű Web Service létrehozása

Page 5: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Ajánlott irodalomAjánlott irodalom5

Scott Mitchell: Tanuljuk meg az ASP.NET 2.0 használatát 24 óra alatt. Kiskapu Kiadó, Budapest, 2007Dr. Hatvany Béla Csaba: ASP.NET vezérlők yprogramozása. ComputerBooks, Budaspest, 2006.George Shepherd: Microsoft ASPNET 2 0 lépésről George Shepherd: Microsoft ASP.NET 2.0 lépésről lépésre. Szak Kiadó, Bicske, 2006

Page 6: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

ElőfeltételekElőfeltételek6

HTMLXML szerkesztésKliensoldali programozás

Page 7: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Bevezetés, témafelvetésBevezetés, témafelvetés7

l kl ld l ld k ( C / k ll k d )Hálózati, szerver és kliens oldali megoldások (TCP/IP és HTTP protokoll és működése)

WEB-es prezentációs megoldások (HTML nyelv, CSS), web-grafika

WEB szerverek, böngészők, kliens oldali WEB programozás alapjai (pl. JavaScript), g , p g pj (p p )

Adatbázis-kezelés (a relációs modell, adatmodellezés, SQL)

Rendszerek közti adatkommunikáció „önleíró” dokumentum nyelven = XML (XMLfelépítése használata kapcsolódó technológiák érintőlegesen: DTD XSD XSL ill XSLT)felépítése, használata, kapcsolódó technológiák érintőlegesen: DTD, XSD, XSL ill. XSLT)

XML alapú adatbázisok (XML adattárolás alapjai, lekérdező nyelvek: XPath, XQuery)

Multimédiás adatbázisok (nagy méretű multimédiás anyagok tárolása adatbázisokban, visszakeresés, hatékonyság)

Programozási módszertan

WEB programozás (módszerek, beágyazott script-nyelvek, általában PHP) WEB programozás (módszerek, beágyazott script nyelvek, általában PHP)

Vállalati környezetre tervezett webes fejlesztői környezetek (pl.: .Net, Java)

Multimédiás WEB programozás – bináris tartalmak (stream-ek, header, letöltés, f ltölté )feltöltés)

Multimédiás WEB programozás – vektorgrafikus és programozott tartalmak (SVG, Flash)

Page 8: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Bevezetés, témafelvetésBevezetés, témafelvetés8

Informatikai biztonság (adatvédelem, kommunikációs vonalak védelme, védelem illetéktelen behatolásokkal szemben, meghibásodások elleni védelem)meghibásodások elleni védelem)SzoftvertervezésP j kt d tProjektmenedzsmentSzoftvertesztelés

Page 9: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Architektúrák - evolúció9

Page 10: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Egygépes (standalone) alkalmazásokEgygépes (standalone) alkalmazások10

Kliens gép 1

Program

Kliens gép 2

Program

Kliens gép N

ProgramProgram Program Program

...Adatok (fájlok) Adatok (fájlok) Adatok (fájlok)

A program teljes egészében a munkaállomáson fut. Az adatok ugyanitt tárolódnak. gyEgyszerre csak egy felhasználó használhatja. Semmilyen hálózati kapcsolat nincs, a különálló programok Semmilyen hálózati kapcsolat nincs, a különálló programok közti adatszinkronizáció meglehetősen nehézkes.

Page 11: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Egyszerű kliens-szerver alkalmazások 1.11

- Egy vagy több szerver gép erőforrásait (jellemzően adatait) megosztja a kliensek

Kliens gép 1) g j

között. Jobb esetben on-line.

- Az alkalmazás egy része ( d tbá i k lő )

Szerver gép

Program

Kliens gép 2(adatbázis-kezelő rsz.) a szerven fut.

- Az alkalmazás logikát

Kliens gép 2

Program Intranet

gimplementáló rész a kliens gépeken fut. „vastag kliens rendszerek” Kliens gép N

... RDBMS (RelationalDataBase Management

System)

- Egy adatbázist többféle kliens program is használhat.

Program

- Egyszerre több konkurens felhasználó használhatja.

Page 12: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Egyszerű kliens-szerver alkalmazások 2.12

- Jellemzően intranet-es alkalmazásoknál használatos.

Terheli a kliens gép

Kliens gép 1

- Terheli a kliens gép erőforrásait.

- Gyakran mindenféle driver-ekt l íté ét i é li kli

Szerver gép

Program

Kliens gép 2telepítését igényli a kliens gépeken

- Verziófrissítés alkalmával az ö kli f i í i k ll

Kliens gép 2

Program Intranet

összes kliens-en frissíteni kell a programot.

- A RAD (Rapid Applicationl ) k k l

Kliens gép N

... RDBMS (RelationalDataBase Management

System)

Development) sok eszközzel támogatott, számos jó vizuális fejlesztőkörnyezet: gyorsan „összekattint-gathatunk” és

Program

leprogramozhatunk komoly alkalmazásokat.

Page 13: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Többrétegű (multitier) hálózati alkalmazásokTöbbrétegű (multitier) hálózati alkalmazások13

Minimálisan három réteg létezik: Front End = kliens oldali felhasználói réteg (általában egy WEB böngészőben) Middleware = szerver oldali prezentációs és logikai réteg (általában egy WEB szerveren beágyazott script-ekben összeolvasztva a megjelenítés és az egyszerűbb logika) Back End = hátsó szerver oldali nagykapacitású tároló (adatbázis szerver) vagy számoló réteg

Page 14: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Háromrétegű architektúraHáromrétegű architektúra14

Back EndMiddlewareFront End

Kliens gép 1 Adatbázis szerver

W b

WEB BöngészőRDBMS (Relational

DataBase ManagementSystem)

Web szerverKliens gép 2

WEB Böngésző Internet/Intranet

Web ServerAdatbázis szerver

...Intranet

ApplicationServer (pl. PHP) XML DBMS (XML

DataBase ManagementSystem)

Kliens gép N

WEB Böngésző

Egyéb szerver

Nagykapacitású,bonyolul

á ítá k t é őg

számításokat végzőalkalmazás

Page 15: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Többrétegű architektúraTöbbrétegű architektúra15

MiddlewarePrezentációs

layer

Back EndFront End

Kliens gép 1 Adatbázis szerverLogikai layerlayer

Web szerver1WEB BöngészőRDBMS (Relational

DataBase ManagementSystem)

Web Server

Applikációsszerver1

Kliens gép 2

WEB Böngésző Internet/Intranet

Adatbázis szerver

Web Server

Prezentációsalkalmazás (pl.

JSP)

ApplicationServer

...XML DBMS (XML

DataBase ManagementSystem)

Web szerverK

... ...ApplikációsszerverM

Kliens gép N

WEB Böngésző

Egyéb szerver

Nagykapacitású,bonyolul

számításokat végző

Web Server

Prezentációsalkalmazás (pl.

JSP)

szerverM

ApplicationServer

alkalmazásJSP)

Page 16: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Többrétegű architektúra jellemzőiTöbbrétegű architektúra jellemzői16

Load balancing, terhelésmegosztás.Tervezést támogató környezetek: .Net, Java J2EE.Architektúra felosztás-összevonás logikai szinten.A rendszer logikai architektúrája (tervezés, A rendszer logikai architektúrája (tervezés, programozás) független a számítógépes megvalósítástól, hálózattól. megvalósítástól, hálózattól. A logikai réteg tovább osztható.N k k k f lh áló ki l álá á Nagyon sok konkurens felhasználó kiszolgálására optimalizálva

Page 17: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Többrétegű architektúra jellemzőiTöbbrétegű architektúra jellemzői17

l b l k bbKliens gép: böngésző, a logika – többnyire – a szerveren található – vékony kliens architektúraMi i áli l ik kli k b i li d k Minimális logika a klienseken: a beviteli adatok validálására, a lapok speciális megjelenítésére (pl. JavaScript) JavaScript). A szerveren elkülönül az adattárolás, a logika és a prezentáció eltérő szerepkörökprezentáció eltérő szerepkörökAz egyes szintek önmagukban is tesztelhetőek.A rendszer egyes komponensei több célra vagy újra A rendszer egyes komponensei több célra vagy újra felhasználhatók.

Page 18: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Többrétegű architektúra jellemzőiTöbbrétegű architektúra jellemzői18

A vékony kliensek miatt nagyon gyenge kliens gépek is elegendők.A technológia platform-független.A kliensekre nem kell drivert telepíteni.A verziófrissítés csak a szervert érinti, a klienseket nem. Sajnos egyelőre elég kevés eszköz támogatja a RAD-ot(Rapid Application Development), a környezet kevés segítséget nyújt a programozónak a megoldási lehetőségek kiválasztásában

„Házi szabványok”, saját keretrendszerek készülnek.Nehezebb tesztelni

Page 19: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

KeretrendszerekKeretrendszerek

AAlapelemeket biztosító programozási rendszerek, melyek összetett feladatokat képesek támogatni. Egy vázat adnak alkalmazásaink számára.Bizonyos filozófiának megfelelő szabályok gyűjteményeGyakori, ismétlődő műveleteket támogatnak, sablonokat biztosítanak:

munkamenetek, adatbázis kapcsolatok, hibakezelés, stb.

19

Page 20: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Miért van szükség keretrendszerekre?Miért van szükség keretrendszerekre?20

ÖÖmlesztett kód: HTML(, CSS), logika (pl.: PHP), egyben vanÖ l l k l d l lÖmlesztett logika: vezérlés, adatelérés, megjelenítés, feldolgozás, alkalmazáslogika egyben vanC k l h éCsoportmunka nem lehetségesKonfiguráció kódba építettKarakterkódolás eltérő lehet a HTML-ben, kódban és adatbázisban, nincs egységesen kezelveTöbb belépési pontja van az alkalmazásnak, ami biztonsági és jogosultsági kérdéseket vet fel

Page 21: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

KeretrendszerekKeretrendszerek21

Elő ökElőnyökFejlesztési időt takarítható megRákényszerítik a programozót valamilyen kódolási standard-re átláthatóbb kódokValamilyen szabályrendszert alkalmazását várják el.Támogatják az újra felhasználhatóságotTámogatják az újra felhasználhatóságotEgységesebb alkalmazásfejlesztésSzétválasztott kód és logikaMeghatározott könyvtárszerkezetCsoportmunka támogatott: külön fileok az egyes szakembereknek (designer, adatbázisos, felületfejlesztő, stb.)Rétegek szétválasztása

HátrányokTanuláshoz idő kellTanuláshoz idő kellSzabályok korlátokat is jelentenek

Page 22: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Keretrendszerek - példákKeretrendszerek példák

Vastag-kliens RAD: Visual Studio, Borland Delphi, …PHP: CodeIgniter, Symfony, Zend Framework, g , y y, ,CakePHP, …PHP keretrendszerek tartalomkezelő PHP keretrendszerek tartalomkezelő szolgáltatásokkal: Drupal, Joomla!, Wordpress, …J S i t JQ P t t i t l Y h JavaScript: JQuery, Prototype, script.aculo.us, Yahoo YUI, ExtJS

22

Page 23: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Front ControllerFront Controller23

Minden oldalt érintő közös műveletek egy helyen szerepelnek:Konfiguráció beolvasásaAutentikációAutorizációInput paraméterek előfeldolgozása, szűréseKarakterkódolás

1 belépési pont: pl.: index.phpHogyan jelezhető, melyik oldalt kell megjeleníteni?

hidden mezőGET paraméterrel: pl.: index.php?oldal=main

Page 24: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Model-View-Controller (Modell-Nézet-Vezérlő - MVC)

24

ÖÖsszetett, sok adatot kezelő alkalmazásokban elvárható:Az adatok (modell) és a felhasználói felület (nézet) szétválasztása. A nézet ne befolyásolja az adatkezelést.Az adatok átszervezhetőek legyenek a felhasználói felület változtatása nélkül.

Page 25: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

MVC – 2.MVC 2.25

A MVC lk l d k l Az MVC tervezési minta elkülöníti az adatok elérését és az üzleti logikát az adatok megjelenítésétől és a felhasználói interakciótól egy közbülső összetevő a felhasználói interakciótól egy közbülső összetevő, a vezérlő bevezetésével.

Model: az adatokat, praktikusan az adatbázisbeli , ptáblák, néha beleértik ezek elérését segítő kódot vagy magát az üzleti réteget isView: megjelenítésért szükséges rétegController: vezérlést végzi, értesíti a Modelt és a Viewt is a változásokról, kezeli az input adatokat.

Össze szokás kapcsolni a FrontController mintával

Page 26: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

.NET Framework26

Page 27: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

.NET Framework.NET Framework27

KeretrendszerRAD: Gyors alkalmazás fejlesztést biztosíty jPlatformfüggetlenségHáló ti t iHálózati transzparenciaKiszolgálóoldali és asztali fejlesztésekhezA SUN Java Virtual Machine (JVM) konkurense

Page 28: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Fejlesztési platformokFejlesztési platformok28

Windows MobileS t h

Thin ClientsThin Clients

Industrial Smartphone

Windows MobilePocket PC Phone ATMs / Kiosks

Automation

Tablet PC

Windows Automotive

Retail Point-of-SaleOffice Automation

Portable Media Center

VoIP PhonesMedical Devices

Windows-based Terminals

..netcpu

Smart Personal Obj t Notebook PC

MobileHandhelds

Set top Boxes Entertainment DevicesObjects Notebook PCGateways

Set-top Boxes Entertainment Devices

Set-top Box

FunkcionalitásFunkcionalitásWindows CEWindows CE Windows Windows XPXP / Vista / 7/ Vista / 7.NET Technology.NET Technology Windows XP EmbeddedWindows XP Embedded

Page 29: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

.NET történelem.NET történelem29

1996 Colusa Software felvásárlása1998 Megromló kapcsolat a SUN-nal.g p2000 .NET 1.0 beta 12002 Elé h tő NET i t ft l tf (1 0)2002 Elérhető a .NET mint szoftverplatform (1.0)2005 Elérhető a .NET 2.02006 Elérhető a .NET 3.02007 Elérhető a .NET 3.52007 Elérhető a .NET 3.52010 .NET 4.0

Page 30: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

.NET nyelvek.NET nyelvek30

Több mint 150 nyelv!Bizonyos nyelvek speciális feladatokra terveztéky y pAz alkalmazás egyes részei eltérő nyelven is készülhetnek külön szerelvényeket (DLL) használva készülhetnek külön szerelvényeket (DLL) használva

C# VisualBasic

J# Visual C++

E# Lisp

Php.NET Python for .NET

Delphi.NET Pascal for .NET

A# (Ada) S# (Smaltalk)A# (Ada) S# (Smaltalk)

Page 31: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

.NET Framework.NET Framework31

Page 32: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Common Language RuntimeCommon Language Runtime32

Egységes futási környezetet biztosít a .NET komponensek számára

függetlenül attól, hogy azokat milyen nyelven írták.

Elvégzi a memóriakezelést, Elvégzi a memóriakezelést, Biztonságos futási környezetet biztosít, H áfé é d á ió d Hozzáférést ad az operációs rendszer szolgáltatásaihoz. A CLR alatt futó kódot felügyelt kódnak nevezzük.

Page 33: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Base Class LibraryBase Class Library33

Osztálykönyvtárak, melyek alapból részei a .NET-nek.Objektum-orientáltakÁltalunk kiterjeszthető típusokÁltalunk kiterjeszthető típusok

Page 34: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Common Type SystemCommon Type System34

Meghatározza, hogy a CLR hogyan definiálja és használja a típusokat.A CTS típusai minden nyelvben jelen kell legyenek

Például a CTS Int32 típus VB.NET-ben Integer és C#-Például a CTS Int32 típus VB.NET ben Integer és C#ban int típusnak fel meg.

Page 35: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Common Language Specification (CLS)Common Language Specification (CLS)35

A CLS általános szabályokat fektet le, amelyeket minden .NET-nyelv be kell tartson.

Page 36: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

MS IL - köztes kódMS IL köztes kód36

A NET l tt í t külö bö ő l ű kból A .NET alatt megírt különböző nyelvű programokból a fordítóprogram először létrehoz egy egységes nyelvű köztes kódot. (IL-kód)

Elméletileg két különböző nyelvben létrehozott azonos szemantikájú szerkezetek, azonos IL-kódot eredményeznek.

Az IL-kód gépi kódra fordítását a futásidejű (JIT) fordító Az IL-kód gépi kódra fordítását a futásidejű (JIT) fordító végzi el.

A létrehozott exe vagy dll állományban tehát tulajdonképpen az IL kód l ki é ít é i kódd l l JIT f dítót IL-kód szerepel kiegészítve egy gépi kóddal, amely a JIT fordítót hívja meg azért, hogy az lefordíthassa az IL- kódot gépi kódra.

A futásidejű fordítás ugyan időt vesz igénybe, de számos előnnyel jár.

Pl. lehetőség van arra, hogy a számítógép processzortípusának megfelelő kód jöjjön létre, kihasználva az adott processzor g j jj , putasításkészletének előnyeit.

Page 37: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Assembly, metadata, manifestAssembly, metadata, manifest37

* *Assembly: A lefordított .NET alkalmazás egy *.exe vagy *.dll állományba kerül, bináris alakban van, de nem gépkódot, hanem IL-kódot tartalmaz.

Manifest: Név, verziószám, más assembly-től való függőségek,Manifest: Név, verziószám, más assembly től való függőségek,attribútumok

Metaadatok: assembly osztályairól, programok esetében ad l k l k k b k f l l lh kprogrammodulokról, könyvtárak esetében a könyvtárinterfészről találhatók

az adatok típusára vonatkozó információk.

IL kód: Köztes nyelvi kódot tartalmazzaód: ö es ye v ódo a a a a

Page 38: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

.NET jellemzői.NET jellemzői38

Konzisztens, egyszerűsített programozási modellSzéles platform-eléréspProgramnyelvek integrálásaA t tik ó i d tAutomatikus memóriamenedzsmentTípusbiztonságKönnyebb hibakeresésKivételkezelésKivételkezelésBiztonság

Page 39: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

.NET Framework változatok.NET Framework változatok39

.NET Framework 3.5.NET Framework 3.5

NET Framework 3 0 + SP 1NET Framework 3 0 + SP 1.NET Framework 3.0 + SP 1.NET Framework 3.0 + SP 1Windows Windows

Presentation Presentation FoundationFoundation

.NET Framework 2.0 + SP 1.NET Framework 2.0 + SP 1

FoundationFoundation

Page 40: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Visual StudioVisual Studio40

.NET fejlesztői keretrendszerRADCsoportmunkát támogatja

Page 41: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Visual Studio változataiVisual Studio változatai41

Express Standard Pro Team

Windows or Web Designers

Code Editors and IntelliSenseCode Editors and IntelliSense

Programming Languages

Remote Data AccessRemote Data Access

Mobile Device Development

U E i Si lifi d Si lifi dUser Experience Simplified Simplified

Server Development/Debugging

SQL Server 2005 Development

Office Development

Architecture, Development, Testing, and Project Management Tools

Page 42: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Visual Studio történelemVisual Studio történelem42

1997 – Visual Studio 971998 – Visual Studio 6.02002 – Visual Studio .NET2003 Vi l St di NET 20032003 – Visual Studio .NET 20032005 – Visual Studio 20052008 – Visual Studio 20082010 – Visual Studio 20102010 Visual Studio 2010

Page 43: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Internetes alkalmazásfejlesztés43

ASP.NET

Page 44: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

HTML előállítási módszerekHTML előállítási módszerek44

Statikus weblapoka HTML fájlok a szerveren

Dinamikus weblapokCGI alkalmazások: teljesen kódolva állítják előCGI alkalmazások: teljesen kódolva állítják előSablonból szövegrészlet cserével: régi ASP, PHPS bl ból bj kt d ll é íté é l ASPNETSablonból objektummodell építésével: ASP.NET

Page 45: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

WEB Server vs File Server WEB Server vs. File Server 45

Valamilyen hálózati protokoll

CGIHTTP Request Handler TCP/IP + HTTP

Page 46: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Dinamikus webalkalmazásokDinamikus webalkalmazások46

ASP.NETHTTP kérésWebkiszolgáló

(IIS)Saját

webalkalmazás

Böngésző HTTP válasz

webalkalmazás

Page 47: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Az ASP.Net feldolgozási modellje

er ág

47

http://www.weblap.hu/default.aspxDefault.aspxDefault.aspx.cs

Web

S

erve

Kül

vilá

_Default: Page

parser

Response(html)

Execute_Default_aspx: _Defaultparser

compiler

IL kód.dll file

Natív kódMemória

JITRender

Page 48: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Az ASP.Net sablonja (ASPX)48

Page 49: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Állapotmentes környezetS i h hí k? S i h hí k? Szia, hogy hívnak? Szia, hogy hívnak?

49

Egy oldal lekérdezése egy egységA visszaküldendő html legenerálása után a szerver gelfelejt mindent

legközelebb nem tudja, hogy a kérdező nem először legközelebb nem tudja, hogy a kérdező nem először jár ott, pláne azt hogy előtte mit adott oda

A probléma megoldása: állapotkezelés (savestate)A probléma megoldása: állapotkezelés (savestate)

Page 50: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Egy oldal életciklusaFontosabb mérföldkövek a példányosítástól

50

PéldányosításInit

L dSt t

PreInitInitInitCompletePreLoad

LoadE é k

LoadStateProcessPostData

PreLoad

LoadLoadComplete

PreRenderCEsemények

állapokezelési trükk ProcessPostData Second Try

PreRenderCompleteSaveStateSaveStateCompleteRender

Prerender

Raise ChangedEventsRaise PostBackEvent

Render

Page 51: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

ASP.NET vs. WinformsASP.NET vs. Winforms51

Wi fWinformsFuttatáshoz .NET keretrendszer szükségesregistry módosítás nélkül települregistry módosítás nélkül települAlacsony válaszidőSok előre megírt controlg

ASP.NETFuttatáshoz csak böngésző szükségesg gNem kell semmit a kliens gépre letölteniFrissítés szükséges minden UI módosításhozLassabb (de Rich UI segít)Role-based security

Page 52: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Visual Studio Web site típusok

Fil d

Visual Studio Web site típusok52

File rendszerBárhol elhelyezhetőASP.NET developement ServerASP.NET developement Server

Helyi IISIIS root alattIIS f t é t h ké d kk k ll külö IIS-en fut ezért ha kész a rendszer akkor nem kell külön telepíteni

Távoli IISEgy távoli gépen futKésőbb ez se igényel extra telepítési lépéseket

FTPEgy távoli írható FTP-re kerülnek a file-okÁltalában ugyanezen a gépen lévő IIS futtat

Page 53: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

EseménykezelésEseménykezelés53

ASP.NET objektumok eseményeket generálnakÁltalában van egy default esemény

Pl Button click

Minden esemény két paramétert küld. Sender ObjectEventArgs

Egy eseménykezelő képes kiszolgálni több eseménytSender alapján switchpj

AutoEventWireupPl page loadPl page_load

Page 54: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

KonfigurációKonfiguráció54

M fXML alapú leíró file-okServer beállítások – machine.configRoot Web beállítások – web.configWeb site Beállítások (opc) – web.configASP.NET webalkalmazás root (opc) – web.configASP.NET webalkalmazás alkönyvtár (opc) – web.config

A ff k í l á k k á Az effektív jogosultságok ezek egymásra vetítéséből állnak összeS k th tő t t ől ö k tő l Szerkeszthető tetszőleges szövegszerkesztővel vagy a Web-site administration tool-al

Page 55: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Konfiguráció - 2.Konfiguráció 2.55

1. machine.config lekérése2. Alapértelmezett web.config lekérése

tulajdonságok hozzávétele az 1 –es halmazhoz. Ha van már meglévő tulajdonság és az felülírható akkor megtörténik a felülírás és a web.config jut érvényre.

3. Web site web.config lekérése4. Webalkalmazás root web.config lekéréseg5. Webalkalmazás alkönytár web.config lekérése

Page 56: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

HibakezelésHibakezelés56

S k l h b k lStruktúrált hibakezelésTry-catch

Page-levelVáratlan hibák elkapásáraP G L EPage_error event , GetLastError

Application-levelOl h b k d l k f l h l h lOlyan hibákra amit nem dolgoztunk fel sehol másholÁtirányíthatunk egy default errorpage-re

TTraceelrejtett hibák detektálásáraőf á h ál t it á áerőforrás használat monitorozására

Page 57: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

Demo57

- Hello World ASP.NET alkalmazás készítéseMi é ik há é b ? HTTP h d Fi b- Mi történik a háttérben? HTTP header, Firebug

Page 58: ASP.NET INTERNETES ALKALMAZÁÉÁSFEJLESZTÉSade.web.elte.hu/old/ASPNET/ASP.NET-1.pdf · Adatkezelés: XML, ADO.NET és LINQ Web szolgáltatások Web alkalmazások konfigurálása,

IrodalomjegyzékIrodalomjegyzék58

ÁÁrvai Zoltán: A Visual Studio 2008 és az ASP.NET 3.5 újdonságaiFrigó József: Többrétegű architektúrákLippé Szabolcs: Webalkalmazások készítéseLippé Szabolcs: Webalkalmazások készítéseTrain4Business 12 órás Webfejlesztő tanfolyam: az ASPNET á i d llASP.NET programozási modellTuróczy Attila: .NET bevezetés