You are on page 1of 82

<?xml version=“1.0” ?

>
Tehnologii Web <curs desc=“…” />

Tehnologii Web

Dr. Sabin-Corneliu Buraga


Facultatea de Informatica
Universitatea “A.I.Cuza” – Iasi, Romania

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

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


<?xml version=“1.0” ?>
Tehnologii Web <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]
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

“Orice inchisoare are fereastra ei.”

Gilbert Gratiant

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

cuprins

ASP (Active Server Pages) .NET*


Evolutie
Context
Caracterizare
Dezvoltare & exploatare
Alte facilitati
Instrumente & resurse

*
multumiri lui Gabriel Enea,
Emil-Mircea Andriescu & Ionut Ignatescu
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: istoric

ISAPI – Internet Server API


interfata de programare a serverului Web:
Microsoft IIS (Internet Information Services)

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: istoric

ASP – Active Server Pages (1996)


extensie ISAPI

suport pentru realizarea de aplicatii Web interactive

abordare orientata-obiect, bazata pe limbaje interpretate


(VBScript, JScript)

conectivitate cu bazele de date si alte tehnologii Microsoft


e.g., COM – Common Object Model
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: istoric

ASP.NET

parte integranta din .NET Framework

independenta de limbajul de programare

codul aplicatiei Web este compilat

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare

Model abstract pentru programarea Web


pe partea de server, bazat pe Web Forms
interactiune Web condusa de evenimente
(event driven programming)

componente Web executate la nivel de server


(proprietati & evenimente)

suport pentru procesari stateful – cu stare (ViewState)

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

.NET Framework
mediu de programare obiectuala, la nivel local/distanta
+ mediu de executie minimizind efortul de exploatare
(deployment)

ofera suport pentru dezvoltare la nivel de client


(aplicatii Windows desktop ori mobile)
sau server – aplicatii/servicii Web

versiuni: 1.0, 1.1, 2.0, 3.0, 3.5, 4.0


Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

Componente:

CLR (Common Language Runtime)

Class Library

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

Componente:
CLR (Common Language Runtime)
realizeaza managementul resurselor aplicatiilor .NET

memorie, fire de executie, executia codului pe baza


unei masini virtuale, verificarea sigurantei codului,
alte servicii de sistem,…

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

Caracteristici ale CLR:


Implementeaza o infrastructura de verificare stricta
a tipurilor de date si codului
– CTS (Common Type System)
Independenta de limbajul de programare folosit
Programele sunt compilate in limbajul intermediar
MSIL (Microsoft Intermediate Language)
eventual “din zbor” – JIT (Just-in-Time) compilation;
codul este controlat (managed) la executie via CLR

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

Tipurile de date oferite pentru .NET 2.0

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

Componente:
Class Library
pune la dispozitie o colectie orientata-obiect
de tipuri reutilizabile, integrata cu CLR

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework


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.

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework


Tipurile de date, clasele – concrete sau abstracte –
si interfetele sunt standardizate
conform CLS (Common Language Specification)

numirea acestora se bazeaza pe o ierarhie


care le grupeaza in spatii de nume

tipurile fundamentale .NET


apartin spatiului de nume System (radacina)

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

Fiecare implementator poate oferi o biblioteca


de clase respectind conventia Companie.Tehnologie

exemple – pentru .NET Class Library:


Microsoft.Win32,
Microsoft.Csharp,
System.Runtime,
System.Net.Sockets,

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

O aplicatie .NET se executa pe o gazda in cadrul unui


domeniu (application domain) care ofera mediul propice
incarcarii & rularii codului in maniera izolata
(se asigura siguranta executiei codului managed)

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

O gazda (shell Windows, navigator Web, ASP.NET,…)


trebuie sa ofere suport pentru CLR

poate fi rulat si cod unmanaged


(ce nu poate fi controlat de CLR)
e.g., “vechile” aplicatii native Windows
(scrise, de exemplu, in C ori C++)

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

Blocul de baza .NET este assembly-ul


unitatea fundamentala pentru exploatarea,
reutilizarea, controlul versiunii, activarea si
managementul securizat al codului

un assembly este examinat de CLR pentru


a-i cunoaste tipurile de date si resursele – vazute ca un
ansamblu de functionalitati – necesare executiei de cod

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

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

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

.NET Framework 3.5


extinde .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

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

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 limbajul


de programare via .NET Framework la nivel de CLR,
folosind constructii declarative in stilul SQL/XQuery
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

LINQ (Language-Integrated Query)


acces transparent la diverse sisteme de tipuri de date:

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

LINQ to XML
ofera 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 aplicati


asupra oricarui obiect ce implementeaza interfata
IEnumerable <T>, unde T este un tip de data (aici, XML)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

Metode disponibile pentru traversarea documentului XML:


Clasa Metode
NextNode, PreviousNode, Ancestors,
XNode NodeAfterSelf, ElementsAfterSelf,
NodesBeforeSelf, ElementsBeforeSelf,…
XObject Document, Parent,…
XContainer Nodes, Elements, Element, Descendants,…
XElement AncestorsAndSelf, DescendantsAndSelf,…

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

Metode ce pot fi folosite la modificarea datelor XML:


Clasa Metode
XContainer Add, AddLast, AddFirst,…
XNode AddBeforeSelf, AddAfterSelf, Remove,…
RemoveAll, ReplaceAll,
XElement
AddBeforeSelf, AddAfterSelf,…

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

// cream un document XML via constructiile functionale oferite de LINQ


XNamespace sp = "http://www.antologie.info"; // adresa spatiului de nume
XDocument 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"), abordare
new XElement (sp + "vers", "Un singur vers.")), functionala
new XElement (sp + "poem", (expresii
lambda)
new XElement (sp + "titlu", "Alt poem"),
new XElement (sp + "vers", "Primul vers"),
new XElement (sp + "vers", "Al doilea vers"))));
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

// parcurgem documentul creat


foreach (XNode nod in doc.DescendantsAndSelf ()) {
Console.WriteLine (nod);
}
// ...si il salvam
doc.Save ("antologie.xml");

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

LINQ to XML
o expresie LINQ e compusa din trei parti: obtinerea sursei
de date, specificarea interogarii si executia interogarii

o interogare incepe cu from si se termina cu select/group


pot fi folosite clauze optionale: where, orderby, join, let
sau alte constructii from

tipul rezultatului poate fi dat explicit sau poate fi dedus


de compilator la momentul compilarii via var
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

XDocument proiecte = XDocument.Load ("projects.xml");


var proiecteA =
from p in proiecte.Descendants ("project") // preluam proiectele
where (String)p.Attribute ("class") == "A“
orderby (String)p.Element ("stud") // sortate dupa numar studenti
select (String)p.Element ("title"); // selectind doar titlul acestora
// afisam titlul proiectelor de clasa 'A'
foreach (var proiect in proiecteA)
Console.WriteLine (proiect);

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

// aceeasi constructie de mai sus, dar folosind XPath


var proiecteA2 = (IEnumerable) proiecte.XPathEvaluate
("//project[@class='A']/title");
// afisam titlul proiectelor de clasa 'A'
foreach (var proiect in proiecteA2)
Console.WriteLine (proiect); Va rezulta:
<title>NetChatS</title>
<title>NetChatC</title>
<title>CVSnet</title>
<title>Super Proiect</title>

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: context – .net framework

LINQ to Objects
ofera constructii pentru “interogarea” obiectelor
(siruri de caractere, structuri mai complexe etc.)
exemplu:
string[] mesaje = { "Salut Tuxy", "Salut Pingu", "Salut iar Tuxy" };
var salutari = from mesaj in mesaje
where mesaj.EndsWith ("Tuxy")
select mesaj;
foreach (var salut in salutari)
Console.WriteLine (salut);

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare

Beneficiaza de facilitatile .NET Framework:


CLR (Common Language Run-time)
biblioteci de clase dedicate
garbage collector
siguranta executiei

necesita prezenta unui server Web compatibil cu IIS


(e.g., ASP.NET Development Server)

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare

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)

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare

O aplicatie ASP.NET este compusa din pagini

fisiere text stocate la nivel de server, avind extensia .aspx

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare – sectiuni de pagina

Directive la nivel de pagina (page directives):

specifica mediul de executie/rulare + diverse setari

<%@ directiva %>

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare – sectiuni de pagina

Cod (code section):

include cod-sursa – inline sau salvat in fisiere separate –,


metode de tratare a evenimentelor etc.

<script runat="server"> cod </script>

codul este pre-compilat inainte de executie

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare – sectiuni de pagina

Aranjament (page layout):

defineste “scheletul” paginii

XHTML, text, controale Web la nivel de server etc.

<asp:control runat="server" …> … </asp:control>

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare

Fiecarui control – avind runat="server" –


ii corespunde o instanta a unei clase specifice,
responsabila cu modul de redare & interactiune
(look & feel) al acestuia

ii e asociat un identificator unic via atributul id

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare

La momentul rularii (run-time), codul-sursa


dintr-o pagina .aspx este “transformat”
intr-o instanta a unei clase .NET derivata din Page

o pagina ASP.NET in rulare  un obiect

pot fi folosite si marcaje/componente


specificate de dezvoltator

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare

Interactiunea Web este asigurata de controale


la nivel de server apartinind System.Web.UI

controale HTML

controale Web la nivel de server

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare

Controale HTML

clasice – le emuleaza pe cele din HTML

au asociate diverse proprietati:


InnerText, InnerHtml, Value, Attributes

a se consulta System.Web.UI.HtmlControls

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: caracterizare

Controale Web la nivel de server

ofera facilitati suplimentare privind interactiunea


– e.g., calendar, tree view, data grid etc. –,
fiind mult mai versatile

nu neaparat reflecta sintaxa HTML

vezi System.Web.UI.WebControls

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare

Stratul de prezentare:
se ofera o pleiada de controale de interactiune Web
(predefinite + create de programator: custom controls)

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

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare

Stratul de prezentare:
modul de redare e unul adaptiv
(dupa tipul de browser Web)

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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare
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" />

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare

Stratul de prezentare:
orice este inclus intr-o pagina ASP.NET
va fi procesat ca un control
validarea datelor poate fi realizata
via controalele de validare (validation controls)
CompareValidator, CustomValidator,
RangeValidator, RegularExpressionValidator,
RequiredFieldValidator

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare

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." />

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare

Page Framework:
ciclul de viata al unei pagini depinde de diverse
evenimente 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

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare
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 pagini master

Zone din pagina pot interactiona diferit


cu utilizatorul – managementul acestora
se realizeaza prin Web Parts
suport pentru integrarea cu servicii SharePoint

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare
Page Framework – directive uzuale:
@Import – indica un spatiu de nume
@Master – indica o pagina master
@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" %>

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare

Stratul sistem:
Aplicatiile Web pot fi configurate la nivel de:
sistem – fisierul machine.config documente
sit Web – fisierul web.config XML
modifica setarile implicite pentru o aplicatie
sau o parte a acesteia
Se ofera si un API pentru efectuarea unor operatii
la run-time – Provider Model
Se pot stabili si restrictii privitoare la securitate

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare

Accesul la baze de date se realizeaza via ADO.NET


Acces 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


Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: dezvoltare

Accesul la baze de date se realizeaza via ADO.NET


unele controale Web pot prelua date ale unei surse
via atributul datasource:

<asp:BulletedList ID="listaStudentilor" runat="server"


datasource="<%# GetData () %>">

</asp:BulletedList>

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: exploatare

O aplicatie ASP.NET este reprezentata din:

directorul ei virtual – locatia la nivel de server Web


continind toate fisierele din care este compusa

fisierul global.asax – include setari/cod responsabil


pentru tratarea evenimentelor emise de ASP.NET
sau de unele module HTTP

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: exploatare

Fiecarei aplicatii ii corespunde o instanta


a clasei HttpApplication avind proprietati precum:
Application – starea globala a aplicatiei
Context – contextul rularii
Request – cererea HTTP curenta
Response – date de raspuns HTTP trimise la client
Server – functionalitati pentru procesarea cererilor
Session – datele de tip sesiune
User – utilizatorul interactionind cu aplicatia

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: exploatare

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: alte facilitati

O aceeasi aplicatie poate fi scrisa in limbaje diferite


(module diverse compilate ca assembly-uri)
Asigurarea navigabilitatii via site map:
documentul Web.sitemap si/sau clasa SiteMap
Personalizarea aplicatiei Web via profile (informatii
despre utilizator, cookie-uri, starea sesiunii,…)
Suport pentru internationalizare:
fisiere de resurse .resx – vezi si System.Globalization
Dezvoltare facila de servicii Web – stocate ca .asmx

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: programare

Aplicatiile ASP.NET pot fi scrise (si) in limbajul C#

pur obiectual, inspirat din C, C++, Java si Perl

specificatie standardizata de ECMA

http://msdn.microsoft.com/vcsharp/programming/language/default.aspx

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: mvc

Alternativa la metoda conventionala de dezvoltare


a aplicatiilor ASP.NET

adopta o viziune inginereasca:


sablonul de proiectare MVC (Model-View-Controller)
scrierea testelor inainte de implementarea propriu-zisa
– TDD (Test Driven Development)
extensibil – mai ales pe baza interfetelor

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: mvc

Nu inlocuieste Web Forms de la ASP.NET clasic

Favorizeaza REST

URL-uri structurate, intuitive


asa-numitele user/SEO friendly

www.asp.net/mvc

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: ajax asp.net

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 controale


poate fi schimbat via control extenders

include si o biblioteca JavaScript


independenta de navigator
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: ajax asp.net

AJAX ASP.NET poate fi extins la rindul lui prin ACT (AJAX


Control Toolkit) – 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,…

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: ajax asp.net

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>

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: silverlight

Pentru .NET Framework 3.0+, se ofera suport


pentru RIA – Rich Internet Applications
via Silverlight – www.silverlight.net

alternativa la grafica vectoriala creata prin Flash ori SVG


parte din Windows Presentation Foundation
multi-platforma (actualmente: Windows & Mac OS X)
Moonlight – via Mono, pentru Linux

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: silverlight

Via o extensie a browser-ului Web, se ofera suport


pentru 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

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: silverlight

O aplicatie Silverlight ruleaza in cadrul browser-ului,


interactiunea cu utilizarea efectuindu-se via JavaScript

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: silverlight

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

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: silverlight

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.

conceperea interfetei se poate face cu instrumentul


Microsoft Expression Blend
interactiunea cu utilizatorul se poate realiza
via evenimente tratate local prin cod JavaScript
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: integrare

Aplicatiile Web bazate pe ASP.NET pot beneficia de diverse


tehnologii/servicii aditionale existente:

Live Services
disponibile in cadrul Cloud Live Operating Environment
via Live Framework – http://dev.live.com/
integrarea aplicatiilor – Web, desktop, mobile – pe baza
standardelor Atom, RSS, JSON etc.

mesh-enabled Web applications


Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: instrumente

Microsoft Visual Web Developer Express – mediu de


dezvoltare Web (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/
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

asp.net: instrumente

AJAX ASP.NET – framework AJAX oficial pentru ASP.NET:


http://ajax.asp.net/

AJAX Control Toolkit – componente aditionale AJAX:


www.codeplex.com/AtlasControlToolkit

NUnitAsp – instrument de testare:


http://sourceforge.net/projects/nunitasp/

a se urmari si initiativa Dream Spark


dedicata dezvoltatorilor Web
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

resurse
D. Esposito, Programming Microsoft ASP.NET 2.0.
Core Reference, Microsoft Press, 2006
C. Petzold, .NET Book Zero: www.charlespetzold.vom/dotnet
S. Robinson et al., Professional C#, Wiley, 2004
P. Pialorsi, M. Russo, Introducing Microsoft LINQ,
Microsoft Press, 2007
L. Moroney, Introducing Microsoft Silverlight,
Microsoft Press, 2008
S. Buraga, Tehnologii XML, Polirom, 2006
L. Alboaie, S. Buraga, Servicii Web, Polirom, 2006

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


<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

resurse

Situl ASP.NET oficial: www.asp.net/


Acces la cod-sursa: codeplex.com/aspnet
.NET Framework Developer Center:
http://msdn.microsoft.com/netframework/
GotDotNet: www.gotdotnet.com/
O’Reilly OnDotNET: www.ondotnet.com/
Silverlight: www.silverlight.net/
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

rezumat

Programare Web prin ASP.NET


Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
<?xml version=“1.0” ?>
Tehnologii Web <curs desc=“…” />

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

You might also like