Sunteți pe pagina 1din 87

Programare Web supliment ASP.

NET o prezentare generala


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

Dr. Sabin Buragawww.purl.org/net/busaco

Tehnologii Web

Orice inchisoare are fereastra ei.

Gilbert Gratiant

Dr. Sabin Buragawww.purl.org/net/busaco

ASP (Active Server Pages) .NET *


evolutie context caracterizare dezvoltare & exploatare alte facilitati instrumente & resurse multumiri absolventilor FII Gabriel Enea, Emil-Mircea Andriescu & Ionut Ignatescu
*

Dr. Sabin Buragawww.purl.org/net/busaco

asp.net: istoric
Dr. Sabin Buragawww.purl.org/net/busaco

ISAPI Internet Server API


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

asp.net: istoric
ASP Active Server Pages (1996)
extensie ISAPI suport pentru realizarea de aplicatii Web interactive
Dr. Sabin Buragawww.purl.org/net/busaco

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
ASP.NET
parte integranta din .NET Framework independenta de limbajul de programare
Dr. Sabin Buragawww.purl.org/net/busaco

codul aplicatiei Web este compilat

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 Buragawww.purl.org/net/busaco

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
Dr. Sabin Buragawww.purl.org/net/busaco

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

asp.net: context .net framework


Dr. Sabin Buragawww.purl.org/net/busaco

asp.net: context .net framework


Componente:
Dr. Sabin Buragawww.purl.org/net/busaco

CLR (Common Language Runtime)


+

Class Library

asp.net: context .net framework


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 Buragawww.purl.org/net/busaco

asp.net: context .net framework


Caracteristici ale CLR:
implementeaza o infrastructura de verificare stricta a tipurilor de date & 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 Buragawww.purl.org/net/busaco

asp.net: context .net framework


Tipurile de date oferite pentru .NET 2.0
Dr. Sabin Buragawww.purl.org/net/busaco

asp.net: context .net framework


Class Library
pune la dispozitie o colectie orientata-obiect de tipuri reutilizabile, integrata cu CLR
Dr. Sabin Buragawww.purl.org/net/busaco

asp.net: context .net framework


Class Library
suport pentru manipularea tipurilor de date comune (e.g., siruri de caractere) sau abstracte colectii de date, structuri generice
Dr. Sabin Buragawww.purl.org/net/busaco

acces de nivel inalt la resurse e.g., surse de date fisiere, baze de date, XML, conexiuni de retea

asp.net: context .net framework


Class Library
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 Buragawww.purl.org/net/busaco

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 Buragawww.purl.org/net/busaco

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 Buragawww.purl.org/net/busaco

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 Buragawww.purl.org/net/busaco

asp.net: context .net framework


O gazda (shell Windows, navigator Web, ASP.NET,) trebuie sa ofere suport pentru CLR
Dr. Sabin Buragawww.purl.org/net/busaco

poate fi rulat si cod unmanaged (ce nu poate fi controlat de CLR) de pilda, vechile aplicatii native Windows (scrise, de exemplu, in C ori C++)

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
Dr. Sabin Buragawww.purl.org/net/busaco

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

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 Buragawww.purl.org/net/busaco

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 Buragawww.purl.org/net/busaco

avansat

asp.net: context .net framework


LINQ (Language-Integrated Query)
Dr. Sabin Buragawww.purl.org/net/busaco

model comun de programare pentru acces la surse de date eterogene, provenite din obiecte .NET, baze de date, documente XML

avansat

asp.net: context .net framework


LINQ (Language-Integrated Query)
strat abstract intre aplicatia propriu-zisa si sursele de date
Dr. Sabin Buragawww.purl.org/net/busaco

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

avansat

asp.net: context .net framework


LINQ (Language-Integrated Query)
acces transparent la diverse sisteme de tipuri de date:
Dr. Sabin Buragawww.purl.org/net/busaco

avansat

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 Buragawww.purl.org/net/busaco

avansat
Dr. Sabin Buragawww.purl.org/net/busaco

avansat

asp.net: context .net framework


Metode disponibile pentru traversarea documentului XML: Clasa Metode NextNode, PreviousNode, Ancestors, NodeAfterSelf, ElementsAfterSelf, NodesBeforeSelf, ElementsBeforeSelf, Document, Parent, Nodes, Elements, Element, Descendants, AncestorsAndSelf, DescendantsAndSelf,
Dr. Sabin Buragawww.purl.org/net/busaco

XNode
XObject XContainer XElement

avansat

asp.net: context .net framework


Metode ce pot fi folosite la modificarea datelor XML: Clasa XContainer XNode XElement Metode Add, AddLast, AddFirst, AddBeforeSelf, AddAfterSelf, Remove, RemoveAll, ReplaceAll, AddBeforeSelf, AddAfterSelf,
Dr. Sabin Buragawww.purl.org/net/busaco

avansat // cream un doc. 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"), 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"))));

abordare functionala (expresii lambda)

Dr. Sabin Buragawww.purl.org/net/busaco

avansat

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 Buragawww.purl.org/net/busaco

avansat

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
Dr. Sabin Buragawww.purl.org/net/busaco

avansat

asp.net: context .net framework


LINQ to XML
o interogare incepe cu from si se termina cu select/group pot fi folosite clauze optionale: where, orderby, join, let sau alte constructii from
Dr. Sabin Buragawww.purl.org/net/busaco

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

avansat
Dr. Sabin Buragawww.purl.org/net/busaco

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);

avansat

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);
De exemplu, va rezulta: <title>NetChatS</title> <title>NetChatC</title> <title>CVSnet</title> <title>Super Proiect</title>
Dr. Sabin Buragawww.purl.org/net/busaco

avansat

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 Buragawww.purl.org/net/busaco

asp.net: caracterizare
Beneficiaza de facilitatile .NET Framework:
CLR (Common Language Run-time) biblioteci de clase dedicate garbage collector siguranta executiei
Dr. Sabin Buragawww.purl.org/net/busaco

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

asp.net: caracterizare
Ofera o stiva stratificata pentru dezvoltarea aplicatiilor Web:
strat de prezentare + controale Web
cadru de lucru la nivel de pagina (page framework) servicii de nivel scazut (de sistem)
Dr. Sabin Buragawww.purl.org/net/busaco

Dr. Sabin Buragawww.purl.org/net/busaco

asp.net: caracterizare
Dr. Sabin Buragawww.purl.org/net/busaco

O aplicatie ASP.NET este compusa din pagini


fisiere text stocate la nivel de server extensia .aspx

asp.net: caracterizare sectiuni de pagina


Directive la nivel de pagina (page directives):
specifica mediul de executie/rulare + diverse setari <%@ directiva %>
Dr. Sabin Buragawww.purl.org/net/busaco

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>
Dr. Sabin Buragawww.purl.org/net/busaco

codul este pre-compilat inainte de executie

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 Buragawww.purl.org/net/busaco

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 Buragawww.purl.org/net/busaco

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
Dr. Sabin Buragawww.purl.org/net/busaco

pot fi folosite si marcaje/componente specificate de dezvoltator

asp.net: caracterizare
Interactiunea Web este asigurata de controale la nivel de server apartinind System.Web.UI
controale HTML
Dr. Sabin Buragawww.purl.org/net/busaco

controale Web la nivel de server

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 Buragawww.purl.org/net/busaco

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
Dr. Sabin Buragawww.purl.org/net/busaco

nu neaparat reflecta sintaxa HTML vezi System.Web.UI.WebControls

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 Buragawww.purl.org/net/busaco

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
Dr. Sabin Buragawww.purl.org/net/busaco

interactiunea are loc intr-un element <form runat="server"></form> utilizat pentru propagarea starii aplicatiei Web

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 Buragawww.purl.org/net/busaco

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 Buragawww.purl.org/net/busaco

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 Buragawww.purl.org/net/busaco

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 Buragawww.purl.org/net/busaco

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
Dr. Sabin Buragawww.purl.org/net/busaco

asp.net: dezvoltare
Page Framework
zone din pagina pot interactiona diferit cu utilizatorul
Dr. Sabin Buragawww.purl.org/net/busaco

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

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 Buragawww.purl.org/net/busaco

asp.net: dezvoltare
Stratul sistem:
Aplicatiile Web pot fi configurate la nivel de: sistem fisierul machine.config documente XML sit Web fisierul web.config modifica setarile implicite pentru o aplicatie sau o parte a acesteia
Dr. Sabin Buragawww.purl.org/net/busaco

Se ofera si un API pentru efectuarea unor operatii la run-time Provider Model Se pot stabili si restrictii privitoare la securitate

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>,
Dr. Sabin Buragawww.purl.org/net/busaco

Pentru .NET 3.5+, se poate recurge direct la LINQ

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 Buragawww.purl.org/net/busaco

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 Buragawww.purl.org/net/busaco

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 Buragawww.purl.org/net/busaco

asp.net: exploatare
Dr. Sabin Buragawww.purl.org/net/busaco

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
Dr. Sabin Buragawww.purl.org/net/busaco

asp.net: alte facilitati


Personalizarea aplicatiei Web via profile (informatii despre utilizator, cookie-uri, starea sesiunii,) Suport pentru internationalizare: fisiere de resurse .resx vezi si System.Globalization
Dr. Sabin Buragawww.purl.org/net/busaco

Dezvoltare facila de servicii Web stocate ca .asmx

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 Buragawww.purl.org/net/busaco

avansat

asp.net: mvc
Alternativa la metoda conventionala de dezvoltare a aplicatiilor ASP.NET adopta o viziune inginereasca:
MVC (Model-View-Controller) scrierea testelor inainte de implementarea propriu-zisa TDD (Test Driven Development) extensibil mai ales pe baza interfetelor
Dr. Sabin Buragawww.purl.org/net/busaco

avansat

asp.net: mvc
Nu inlocuieste Web Forms de la ASP.NET clasic
Favorizeaza REST URL-uri structurate, intuitive asa-numitele user/SEO friendly
Dr. Sabin Buragawww.purl.org/net/busaco

www.asp.net/mvc

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
Dr. Sabin Buragawww.purl.org/net/busaco

include si o biblioteca JavaScript independenta de navigator

avansat

asp.net: ajax asp.net


AJAX ASP.NET poate fi extins la rindul lui prin ACT (AJAX Control Toolkit) www.codeplex.com/AtlasControlToolkit
Dr. Sabin Buragawww.purl.org/net/busaco

se ofera extenders precum Animation, AutoComplete, Calendar, DragPanel, DropDown, DynamicPopulate, ModalPopup, NumericUpDown, PasswordStrength, ResizeableControl, Slider, ToggleButton, ValidatorCallout controale noi: Accordion, Rating, ReorderList, TabContainer,

avansat

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 Buragawww.purl.org/net/busaco

avansat

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 Buragawww.purl.org/net/busaco

avansat

asp.net: silverlight
Via o extensie a navigatorului 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 desktop, Web, mobil
Dr. Sabin Buragawww.purl.org/net/busaco

avansat
Dr. Sabin Buragawww.purl.org/net/busaco

avansat

asp.net: silverlight
O aplicatie Silverlight ruleaza in cadrul browser-ului, interactiunea cu utilizarea efectuindu-se via JavaScript
Dr. Sabin Buragawww.purl.org/net/busaco

avansat

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 Buragawww.purl.org/net/busaco

avansat

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.
Dr. Sabin Buragawww.purl.org/net/busaco

avansat

asp.net: silverlight
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 Buragawww.purl.org/net/busaco

avansat

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 Buragawww.purl.org/net/busaco

asp.net: instrumente
Dr. Sabin Buragawww.purl.org/net/busaco

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

Microsoft WebMatrix sistem integrat pentru dezvoltarea facila de aplicatii Web: http://www.microsoft.com/web/webmatrix/

asp.net: alte instrumente


Dr. Sabin Buragawww.purl.org/net/busaco

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: alte instrumente


Dr. Sabin Buragawww.purl.org/net/busaco

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

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 Buragawww.purl.org/net/busaco

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/ OReilly OnDotNET: www.ondotnet.com/ Silverlight: www.silverlight.net/
Dr. Sabin Buragawww.purl.org/net/busaco

rezumat

Programare Web prin ASP.NET


Dr. Sabin Buragawww.purl.org/net/busaco

Dr. Sabin Buragawww.purl.org/net/busaco