web - asp.net

71
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ Tehnologii Tehnologii Web Web <?xml version=“1.0” ?> <curs desc=“…” /> Tehnologii Web Dr. SabinCorneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/

Upload: sabin-buraga

Post on 22-May-2015

719 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Tehnologii Web

Dr. Sabin­Corneliu BuragaFacultatea de Informatica

Universitatea “A.I.Cuza” – Iasi, Romania

http://www.infoiasi.ro/~busaco/

Page 2: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Programare Web

ASP.NET: o prezentare generala

Detalii in [SWC, 235‐302] [TX, 285‐293][SW, 199‐212, 263‐270] [NW, 55‐71]

Page 3: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

ASP (Active Server Pages) .NETEvolutieContext

CaracterizareDezvoltare & exploatare

Alte facilitatiInstrumente & resurse

cuprins

Page 4: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

ISAPI – Internet Server APIInterfata de programare a serverului Web:Microsoft IIS (Internet Information Services)

asp.net: istoric

Page 5: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

ASP – Active Server Pages (1996)Extensie ISAPI

Suport pentru realizarea de aplicatii Webinteractive & dinamice

Abordare orientata‐obiect, bazata pe limbaje interpretate(VBScript, JScript)

Conectivitate cu bazele de date si alte tehnologii Microsoft (e.g., COM – Common Object Model)

asp.net: istoric

Page 6: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

ASP.NET 1.0 (2002), 1.1 (2003), 2.0 (2005)

Parte integranta din .NET Framework 2.0

Independenta de limbajul de programareCodul aplicatiei Web este compilat

asp.net: istoric

Page 7: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

ASP.NET Model abstract pentru programarea Webpe partea de server, bazat peWeb Forms

InteractiuneWeb condusa de evenimente(event driven programming)

ComponenteWeb executate la nivel de server(proprietati & evenimente)

Suport pentru procesari stateful

asp.net: istoric

Page 8: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

.NET FrameworkMediu de programare obiectuala, la nivel local/distantaMediu de executie minimizind efortul de exploatare

(deployment)

Ofera suport pentru dezvoltare la nivel declient (aplicatii Windows desktop ori mobile) sau

server (aplicatii/servicii Web)

Versiuni: 1.0, 1.1, 2.0, 3.0, 3.5

asp.net: context – .net framework

Page 9: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

asp.net: context – .net framework

Page 10: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Componente:CLR (Common Language Runtime)

Class Library

asp.net: context – .net framework

Page 11: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Componente:CLR (Common Language Runtime)

realizeazamanagementul resurselor aplicatiilor .NET 

(memorie, fire de executie, executia codului pe bazaunei masini virtuale, verificarea sigurantei codului,

alte servicii de sistem,…)

asp.net: context – .net framework

Page 12: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Caracteristici ale CLR:Implementeaza o infrastructura de verificare strictaa tipurilor de date si codului– CTS (Common Type System)

Independenta de limbajul de programare folositProgramele sunt compilate in limbajul intermediarMSIL (eventual “din zbor” – JIT (Just­in­Time)compilation); codul este controlat (managed)la executie via CLR

asp.net: context – .net framework

Page 13: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Tipurile de date oferite pentru .NET 2.0

asp.net: context – .net framework

Page 14: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Componente:Class Library

pune la dispozitie o colectie orientata‐obiectde tipuri reutilizabile, integrata cu CLR

asp.net: context – .net framework

Page 15: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Class Library: Facilitati pentru manipularea tipurilor de date comune (e.g., siruri de caractere) sau abstracte(colectii de date, structuri generice)

Acces de nivel inalt la resurse (e.g., surse de date – fisiere, baze de date, XML, conexiuni de retea) 

Facilitati pentru dezvoltarea de aplicatii diverse: aplicatii de tip consola, aplicatii grafice (Windows Forms), aplicatii Web (ASP.NET, servicii Web), servicii Windows, aplicatii mobile etc.

asp.net: context – .net framework

Page 16: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Tipurile de date, clasele (concrete sau abstracte) si interfetele sunt standardizate

conform CLS (Common Language Specification)

Numirea acestora se bazeaza pe o ierarhiecare le grupeaza in spatii de nume

Tipurile fundamentale .NET apartin spatiului de numeSystem (radacina)

asp.net: context – .net framework

Page 17: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Fiecare implementator poate oferi o bibliotecade clase respectind conventia Companie.Tehnologie

Exemple (pentru .NET Class Library): Microsoft.Win32, Microsoft.Csharp, System.Runtime,

System.Net.Sockets,… 

asp.net: context – .net framework

Page 18: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

O aplicatie .NET se executa pe o gazda in cadrul unuidomeniu (application domain) care ofera mediul propice

incarcarii & rularii codului in maniera izolata(se asigura siguranta executiei coduluimanaged)

O gazda (shellWindows, browser, ASP.NET,…)trebuie sa ofere suport pentru CLR

Poate fi rulat si cod unmanaged (ce nu poate fi controlatde CLR) – e.g., “vechile” aplicatii native Windows

(scrise, de exemplu, in C ori C++)

asp.net: context – .net framework

Page 19: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Blocul de baza .NET este assembly‐ulunitatea fundamentala pentru exploatarea,reutilizarea, controlul versiunii, activarea si

managementul securizat al codului

Un assembly este examinat de CLR pentrua‐i cunoaste tipurile de date si resursele – vazute ca un ansamblu de functionalitati – necesare executiei de cod

asp.net: context – .net framework

Page 20: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Fiecare assembly are asociat, alaturi de alte meta‐date, un nume unic si poate fi partajat de mai multe aplicatii

Se ofera un set predefinit de assembly‐uri

asp.net: context – .net framework

Page 21: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

.NET Framework 3.5Extinde .NET 2.0, 

oferind un set de tipuri si functionalitati focalizate pe:maniere de prezentare a datelor

(WPF –Windows Presentation Foundation)comunicare orientata pe servicii intre aplicatii(WCF –Windows Communication Foundation)

Suplimentar, se ofera C# 3.0 incluzind LINQ

asp.net: context – .net framework

Page 22: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

LINQ (Language­Integrated Query)Model comun de programare pentru acces la surse de date 

eterogene, provenite din obiecte .NET, baze de date, documente XML

Strat abstract intre aplicatia propriu‐zisa si sursele de date

Interogarile asupra datelor sunt permise direct in limbajulde programare via .NET Framework la nivel de CLR, folosind constructii declarative in stilul SQL/XQuery

asp.net: context – .net framework

Page 23: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

LINQ (Language­Integrated Query)acces transparent la diverse sisteme de tipuri de date:

asp.net: context – .net framework

Page 24: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

LINQ to XMLofera constructii pentru crearea de constructii XML 

(opereaza la nivel de Infoset)

tipuri de date noi corespunzatoare nodurilor XML: XDocument, XNode, XElement, XAttribute, XNamespace,…

interogarile se realizeaza via operatori speciali aplicatiasupra oricarui obiect ce implementeaza interfata

IEnumerable <T>, unde T este un tip de data (aici, XML)

asp.net: context – .net framework

Page 25: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Page 26: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

// cream un document XML via constructiile functionale oferite de LINQXNamespace sp = "http://www.antologie.info"; // adresa spatiului de numeXDocument doc = new XElement( // instantiem un document XML

new XElement (sp + "antologie",new XAttribute ("stare", "ciorna"),new XElement (sp + "poem",

new XElement (sp + "titlu", "Aproape vid"),new XElement (sp + "vers", "Un singur vers.")),

new XElement (sp + "poem",new XElement (sp + "titlu", "Alt poem"),new XElement (sp + "vers", "Primul vers"),new XElement (sp + "vers", "Al doilea vers"))));

asp.net: context – .net framework

Abordarefunctionala(expresiilambda)

Page 27: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

// parcurgem documentul creatforeach (XNode nod in doc.DescendantsAndSelf ()) {

Console.WriteLine (nod);}// ...si il salvamdoc.Save ("antologie.xml");

asp.net: context – .net framework

Page 28: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

LINQ to XMLo expresie LINQ e compusa din trei parti: obtinerea surseide date, specificarea interogarii si executia interogarii

o interogare incepe cu from si se termina cu select/grouppot fi folosite clauze optionale: where, orderby, join, let

sau alte constructii from

tipul rezultatului poate fi dat explicit sau poate fi dedusde compilator la momentul compilarii via var

asp.net: context – .net framework

Page 29: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

XDocument proiecte = XDocument.Load ("projects.xml");var proiecteA =from p in proiecte.Descendants ("project") // preluam proiectelewhere (String)p.Attribute ("class") == "A“orderby (String)p.Element ("stud") // sortate dupa numar studentiselect (String)p.Element ("title"); // selectind doar titlul acestora

// afisam titlul proiectelor de clasa 'A'foreach (var proiect in proiecteA)

Console.WriteLine (proiect);

asp.net: context – .net framework

Page 30: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

// aceeasi constructie de mai sus, dar folosind XPathvar proiecteA2 = (IEnumerable) proiecte.XPathEvaluate

("//project[@class='A']/title");// afisam titlul proiectelor de clasa 'A‘foreach (var proiect in proiecteA2)

Console.WriteLine (proiect);

asp.net: context – .net framework

Va rezulta:<title>NetChatS</title><title>NetChatC</title><title>CVSnet</title><title>Super Proiect</title>

Page 31: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Beneficiaza de facilitatile .NET Framework:CLR (Common Language Run­time)

Biblioteci de clase dedicateGarbage collectorSiguranta executiei

Necesita prezenta unui server Web compatibil cu IIS(e.g., ASP.NET Development Server)

asp.net: caracterizare

Page 32: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Ofera o stiva stratificata de dezvoltare a aplicatiilor:strat de prezentare + controale Web

cadru de lucru la nivel de pagina (page framework)servicii “de nivel scazut” (de sistem)

asp.net: caracterizare

Page 33: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Page 34: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

O aplicatie ASP.NET este compusa din paginifisiere text stocate la nivel de server, 

avind extensia .aspx

asp.net: caracterizare

Page 35: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Directive la nivel de pagina (page directives): specifica mediul de executie/rulare + diverse setari<%@ directiva %>Cod (code section): include cod‐sursa (inline sau salvat in fisiere separate), metode de tratare a evenimentelor,… (codul este pre‐compilat inainte de executie) <script runat=“server”> cod </script>Aranjament (page layout): defineste “scheletul” paginii(XHTML, text, controale Web la nivel de server etc.)<asp:control runat=“server” …> … </asp:control>

asp.net: caracterizare – sectiuni de pagina

Page 36: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Page 37: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Fiecarui control (avind runat=“server”) ii corespundeo instanta a unei clase specifice, responsabila cumodul de redare & interactiune (look & feel)

al acestuia

Ii e asociat un identificator unic via atributul id

asp.net: caracterizare

Page 38: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

La momentul rularii (run­time), codul‐sursa dintr‐opagina .aspx e “transformat” intr‐o instanta

a unei clase .NET derivata din Page

O pagina ASP.NET in rulare ≡ un obiect

Pot fi folosite si marcaje/componentespecificate de dezvoltator

asp.net: caracterizare

Page 39: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

InteractiuneaWeb este asigurata de controalela nivel de server apartinind System.Web.UI

Controale HTMLControale Web la nivel de server

asp.net: caracterizare

Page 40: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Controale HTMLClasiceAu asociate diverse proprietati: 

InnerText, InnerHtml, Value, AttributesA se consulta System.Web.UI.HtmlControls

Controale Web la nivel de serverOfera facilitati suplimentare (e.g., calendar, tree view, data grid etc.), fiind mult mai versatile

Nu neaparat reflecta sintaxa HTMLVezi System.Web.UI.WebControls

asp.net: caracterizare

Page 41: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Stratul de prezentare:Se ofera o pleiada de controale de interactiuneWeb (predefinite sau create de programator: custom controls)

Exemple: <asp:DropDownList>, <asp:Literal>, <asp:Table>, <asp:Wizard>, <asp:Xml>

asp.net: dezvoltare

Page 42: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Stratul de prezentare:Modul de redare e unul adaptiv (in functie de tipul de browser): generare de marcaje XHTML + JavaScript in functie de navigator

Interactiunea are loc intr‐un element <form runat=“server”>…</form>

utilizat pentru propagarea starii aplicatiei Web

asp.net: dezvoltare

Page 43: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Stratul de prezentare – exemple:O eticheta menita a reda un text: 

<asp:Label ID="Mesaj" runat="server"></asp:Label>Buton care invoca pe partea de server o actiune: 

<asp:Button ID="ButonProc" runat="server" Text="Proceseaza" OnClick="ButonProc_Click" ToolTip="Contorizeaza elementele unui document XML" />

Un control pentru upload‐ul unui fisier: <asp:FileUpload ID="Fisier" runat="server" />

asp.net: dezvoltare

Page 44: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Stratul de prezentare:Orice este inclus intr‐o pagina ASP.NETva fi procesat ca un control

Validarea datelor poate fi realizata via controalelede validare (validation controls)Tipuri: CompareValidator, CustomValidator,RangeValidator, RegularExpressionValidator,RequiredFieldValidator

asp.net: dezvoltare

Page 45: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Stratul de prezentare:Exemplu de utilizare a unui validator

<%-- valideaza valoarea numerica a controlului ‘ani’ --%><asp:CompareValidator runat=“server” id=“valideazaAni”

ControlToValidate=“ani” ValueToCompare=“16” Operator=“GreaterThanEqual” Type=“Integer” ErrorMessage=“Varsta trebuie sa fie de minim 16 ani.” />

asp.net: dezvoltare

Page 46: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Page Framework:Ciclul de viata al unei pagini depinde de diverseevenimente ce pot fi tratate via cod‐sursa

Exemple: Init, Load, LoadComplete, Unload

Unei pagini i se pot asocia secvente de cod (code behind) si directive de personalizare

asp.net: dezvoltare

Page 47: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Page Framework:Fiecare pagina poate fi redata conform unei teme vizuale (via fisiere .skin si .css)

Redarea poate avea loc conform unui sablon(prototip) specificat via paginimaster

Zone din pagina pot interactiona diferitcu utilizatorul – managementul acestorase realizeaza prinWeb PartsSuport pentru integrarea cu servicii SharePoint

asp.net: dezvoltare

Page 48: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Page Framework – directive uzuale:@Import – indica un spatiu de nume@Master – indica o paginamaster@OutputCache – controleaza modul de caching al continutului generat

@Page – defineste atribute la nivel de pagina

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Culture="ro-RO" %>

asp.net: dezvoltare

Page 49: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Stratul sistem:AplicatiileWeb pot fi configurate la nivel de:

Sistem – fisierul machine.configSit Web – fisierul web.config

modifica setarile implicite pentru o aplicatiesau o parte a acesteia

Se ofera si un API pentru efectuarea unor operatiila run­time – Provider Model

Se pot stabili si restrictii privitoare la securitate

asp.net: dezvoltare

DocumenteXML

Page 50: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Accesul la baze de date se realizeaza via ADO.NETAcces obiectual la diverse surse de date (data providers): Microsoft SQL Server, ODBC, Oracle etc. – vezi System.Data

Controale ASP.NET pentru atasarea la date (data binding): <asp:sqldatasource>, <asp:objectdatasource>, <asp:xmldatasource>, <asp:gridview>, <asp:datalist>,…

Pentru .NET 3.5, se poate recurge direct la LINQ

asp.net: dezvoltare

Page 51: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Accesul la baze de date se realizeaza via ADO.NETUnele controale Web pot prelua date ale unei sursevia atributul datasource: 

<asp:BulletedList ID="lista" runat="server" datasource="<%# GetData() %>">…</asp:BulletedList>

asp.net: dezvoltare

Page 52: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

O aplicatie ASP.NET este reprezentata din:directorul ei virtual (locatia la nivel de server Web continind toate fisierele din care e compusa)

fisierul global.asax – include setari/cod responsabilpentru tratarea evenimentelor emise de ASP.NET sau de unele module HTTP

asp.net: exploatare

Page 53: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Fiecarei aplicatii ii corespunde o instantaa clasei HttpApplication avind proprietati precum:

Application – starea globala a aplicatieiContext – contextul rulariiRequest – cererea HTTP curentaResponse – date de raspuns HTTP trimise la clientServer – functionalitati pentru procesarea cererilorSession – datele de tip sesiuneUser – utilizatorul interactionind cu aplicatia

asp.net: exploatare

Page 54: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

asp.net: exploatare

Page 55: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

O aceeasi aplicatie poate fi scrisa in limbaje diferite(module diverse compilate ca assembly‐uri)

Asigurarea navigabilitatii via site map: documentulWeb.sitemap si/sau clasa SiteMap

Personalizarea aplicatiei Web via profile (informatiidespre utilizator, cookie‐uri, starea sesiunii,…)

Suport pentru internationalizare: fisiere de resurse .resx – vezi si System.Globalization

Dezvoltare facila de servicii Web – stocate ca .asmx

asp.net: alte facilitati

Page 56: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Aplicatiile ASP.NET pot fi scrise (si) in limbajul C#Pur obiectual, inspirat din C, C++, Java si Perl

Specificatie standardizata de ECMAhttp://msdn.microsoft.com/vcsharp/programming/language/default.aspx

Vezi si exemplele puse la dispozitie

asp.net: programare

Page 57: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Suport pentru transferuri asincrone in stil AJAX via componenta AJAX (ex‐Atlas) ASP.NET

controale aditionale la nivel de pagina ASP.NET

comportamentul implicit al unor controalepoate fi schimbat via control extenders

include si o biblioteca JavaScriptindependenta de navigator

asp.net: ajax asp.net

Page 58: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

AJAX ASP.NET poate fi extins la rindul lui prin ACT (AJAX Control Kit) – www.codeplex.com/AtlasControlToolkit

se ofera extenders precum Animation, AutoComplete, Calendar, DragPanel, DropDown, DynamicPopulate, ModalPopup, 

NumericUpDown, PasswordStrength, ResizeableControl, Slider, ToggleButton, ValidatorCallout

controale noi: Accordion, Rating, ReorderList, TabContainer,…

asp.net: ajax asp.net

Page 59: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Exemplu de utilizare a unui extender ACT:

<p>Alege ziua pentru planificarea concursului:<asp:TextBox ID=“ziPlanificata” runat=“server” /><act:NumericUpDownExtender ID=“contorZile”

runat=“server” RefValues=“Lun;Mar;Mier;Joi;Vin”TargetControlID=“ziPlanificata” />

</p>

asp.net: ajax asp.net

Page 60: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Pentru .NET Framework 3.0+, se ofera suportpentru RIA – Rich Internet Applicationsvia Silverlight – www.silverlight.net

Alternativa la grafica vectoriala creata prin Flash ori SVGParte din Windows Presentation Foundation

Multi‐platforma (actualmente: Windows & Mac OS X)Moonlight – via Mono, pentru Linux

asp.net: silverlight

Page 61: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Via o extensie a browser‐ului Web, se ofera suportpentru redarea de continuturi multimedia (vectoriale), bazate pe scenarii temporale (timeline­based animation), 

eventual folosind transferuri de tip streaming

Tehnologia de redare a continutului este XAML (Extensible Application Markup Language) – dialect XML procesat de 

un engine Silverlight la nivel de client

asp.net: silverlight

Page 62: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Page 63: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

O aplicatie Silverlight ruleaza in cadrul browser‐ului,interactiunea cu utilizarea efectuindu‐se via JavaScript

asp.net: silverlight

Page 64: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Interactiunea cu utilizatorul se poate realiza via evenimente tratate local prin cod JavaScript

Comportamentul controalelor de interfata se poate face dinamic via Silverlight Software Development Kit (SDK)

Detalii in L. Moroney, Introducing Microsoft Silverlight, Microsoft Press, 2008 si C. Petzold, Applications = Code + 

Markup, Microsoft Press, 2006

asp.net: silverlight

Page 65: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Interfata aplicatiei Silverlight se specifica in XAML,fiind compusa din controale interactive incapsulate

de un element <Canvas>Exemple de controale: Button, Ellipse, Grid, Label, ListBox, Path, 

PolyLine, Rectangle, StackPanel, TextBlock etc.

Realizarea interfetei se poate face cu instrumentulMicrosoft Expression Blend

Interactiunea cu utilizatorul se poate realiza via evenimente tratate local prin cod JavaScript

asp.net: silverlight

Page 66: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Microsoft Visual Web Developer Express – mediu de dezvoltareWeb (ASP.NET) disponibil gratuit: http://msdn.microsoft.com/vstudio/express/

Eclipse.NET – plug­in Eclipse pentru .NET: http://sourceforge.net/projects/eclipsedotnet

Mono – implementare open source (independenta de Microsoft) a .NET, disponibila pe sisteme Unix/Linux si Windows – http://mono-project.com/

asp.net: instrumente

Page 67: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

AJAX ASP.NET – framework‐ul AJAX oficial pentruASP.NET: http://ajax.asp.net/

AJAX Control Kit – componente aditionale AJAX: www.codeplex.com/AtlasControlToolkit

NUnitAsp – instrument de testare:http://sourceforge.net/projects/nunitasp/

In viitorul apropiat, Microsoft va lansa Dream Spark– initiativa dedicata dezvoltatorilor Web

asp.net: instrumente

Page 68: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

D. Esposito, Programming Microsoft ASP.NET 2.0. Core Reference, Microsoft Press, 2006

C. Petzold, .NET Book Zero: www.charlespetzold.vom/dotnetS. Robinson et al., Professional C#, Wiley, 2004P. Pialorsi, M. Russo, Introducing Microsoft LINQ, Microsoft Press, 2007

L. Moroney, Introducing Microsoft Silverlight, Microsoft Press, 2008

S. Buraga, Tehnologii XML, Polirom, 2006L. Alboaie, S. Buraga, Servicii Web, Polirom, 2006

resurse

Page 69: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Situl ASP.NET oficial: www.asp.net/Tutoriale “rapide”: 

www.asp.net/Tutorials/quickstart.aspx.NET Framework Developer Center: 

http://msdn.microsoft.com/netframework/GotDotNet: www.gotdotnet.com/O’Reilly OnDotNET: www.ondotnet.com/Silverlight: www.silverlight.net/

resurse

Page 70: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

ASP (Active Server Pages) .NETEvolutieContext

CaracterizareDezvoltare & exploatare

Alte facilitatiInstrumente & resurse

rezumat

Page 71: Web - ASP.NET

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

??