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

Post on 17-Mar-2018

219 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related