Post on 17-Mar-2018
ASP.NET INTERNETES Á ÉALKALMAZÁSFEJLESZTÉS
Elméleti áttekintés2010.02.19.
BemutatkozásBemutatkozás2
ÁTarcsi Ádáme-mail: ade@inf.elte.hu@
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 (?)
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
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
ElőfeltételekElőfeltételek6
HTMLXML szerkesztésKliensoldali programozás
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)
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
Architektúrák - evolúció9
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.
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.
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.
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
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
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)
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
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.
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
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
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
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
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
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
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.
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
.NET Framework26
.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
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
.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
.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)
.NET Framework.NET Framework31
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.
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
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.
Common Language Specification (CLS)Common Language Specification (CLS)35
A CLS általános szabályokat fektet le, amelyeket minden .NET-nyelv be kell tartson.
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.
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
.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
.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
Visual StudioVisual Studio40
.NET fejlesztői keretrendszerRADCsoportmunkát támogatja
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
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
Internetes alkalmazásfejlesztés43
ASP.NET
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
WEB Server vs File Server WEB Server vs. File Server 45
Valamilyen hálózati protokoll
CGIHTTP Request Handler TCP/IP + HTTP
Dinamikus webalkalmazásokDinamikus webalkalmazások46
ASP.NETHTTP kérésWebkiszolgáló
(IIS)Saját
webalkalmazás
Böngésző HTTP válasz
webalkalmazás
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
Az ASP.Net sablonja (ASPX)48
Á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)
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
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
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
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
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
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
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
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
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