IPRO - PC Magazine Romania, Martie 2003
SOLUȚII PENTRU PROGRAMATORII ȘI DESIGNERII WEB Servicii
web realizate cu ASP.NET
Realizarea de aplicații-consumatori de servicii Web
Mircea Scărlătescu
Am discutat în numărul trecut despre cât de ușor este de implementat un
serviciu Web în ASP.NET (cu VB.NET). Următorul pas pentru a folosi serviciile
Web este de a realiza consumatori pentru acestea. Consumatorii de servicii
Web sunt, în esență, aplicații care folosesc informațiile furnizate de către
aceste servicii. Dacă, spre exemplu, în România INMH (Institutul Național
de Meteorologie și Hidrologie) ar realiza un serviciu Web prin care ar fi
prezentate temperaturile în marile orașe ale țării, atunci portalurile românești
și nu numai, ar putea introduce în structura lor acest serviciu Web, datele
de pe situri actualizându-se fără intervenția celor care le întrețin. În
cazul prezentat, portalurile reprezintă consumatorii de servicii Web.
După ce am schițat o astfel de aplicație, să ne aducem aminte că în articolul
anterior am realizat un serviciu Web care prezintă ultima știre (cronologic)
dintr-o bază de date SQL Server 2000. Ceea ce vom realiza în continuare
este un consumator de servicii care folosește datele furnizate de serviciul
nostru.
Primul pas în realizarea unui client (consumator) este de a creea o clasă
proxy pentru serviciul nostru. Pentru aceasta, folosim utilitarul wsdl.exe,
inclus în pachetul .NET. Acest utilitar se rulează din linia de comandă,
iar o listă completă de parametri este disponibilă în documentația .NET
(on-line sau varianta pe CD-uri). Odată realizat acest pas, utilizarea
metodelor definite
în serviciul Web este la fel de simplă ca și utilizarea metodelor din
clasele existente în sistem. Acest lucru este deosebit de folositor pentru
programatori,
fiind de fapt esența avantajului pe care Microsoft l-a subliniat deseori:
usurința în programarea și utilizarea serviciilor Web cu ajutorul .NET.
După ce am realizat clasa proxy pentru a publica serviciul Web, tot ce
mai rămâne de făcut este să-l integrăm într-o aplicație Web realizată
cu ASP.NET.
Iată pașii necesari pentru a realiza acest lucru:
1. Deschidem aplicația
VisualStudio.NET și selectăm opțiunea New Project: ASP.NET Web Application.
Odată ce stabilim numele aplicației, după
ce se vor seta de către mediul de programare opțiunile necesare avem
în
Solution
Explorer componentele aplicației noastre, inițial vide.
2. Fișierul WebForm1.aspx este fișierul implicit de start al aplicației
Web pe care o realizăm. Putem redenumi acest fișier ca index.aspx
Ca o paranteză,
fișierul de start al aplicației poate fi schimbat după preferințe
. Aici vom scrie codul pentru a consuma serviciul Web.
Odată acești doi pași parcurși, putem trece la scrierea efectivă
a aplicației. Deci, edităm în primul rând fișierul styles.css (creat
automat de către
sistem la inițializarea aplicației și scriem următorul text:
.bodyColor
{
background-color: #336699;
}
.newsText
{
font-family: Verdana;
font-size: 11px;
font-weight: normal;
color: #ffffff
}
Prin aceste declarații am stabilit de fapt două stiluri CSS prin care precizăm
următoarele:
1. culoarea de fond a paginii va fi cea descrisă de codul #336699; declarația
din pagina HTML pentru acest lucru se realizează sub forma:
<body class='bodyColor'....>
2. Pentru afișarea textului vom folosi un paragraf cu parametrii specificați
de .newsText. În acest caz, ca și cod HTML, definiția arată astfel: <p class='newsText'>
Odată stabilite aceste detalii grafice, este timpul ca pe partea de scripting
să realizăm afișarea textului întors de serviciul Web.
Primul pas este reprezentat de adăugarea unei referințe Web către serviciul
creat de noi. Acesta se realizează prin selectarea opțiunii Add Web Reference
din meniul Project al aplicației. Se va scrie în bara de adrese URL-ul serviciului
nostru de Web și apoi se va selecta acest serviciu prin intermediul butonului
AddReference. Apoi, programarea se reduce la simpla utilizare de obiecte
în VB.NET. Din fereastra ToolBox alegem adăugarea în pagina index.aspx a
unui
obiect de tip "Label". Proprietatea cssClass se setează către clasa newsText
pe care am definit-o mai devreme. Acesta va fi obiectul definit pentru afișarea
textului. Legarea lui de serviciul Web se va realiza în procedura Page_Load.
Această procedură este predefinită de către sistem, și reprezintă setul de
operații ce se efectuează de fiecare dată când această pagină se încarcă.
Codul pe care va trebui să-l scriem acolo este:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim pcm1 As New PCMagazine1()
newsLabel.Text=pcm1.getLatestHeadLine();
End Sub
Tot ce face acest cod este să instanțieze un obiect de tipul "serviciu Web"
și apoi să utilizeze metodele definite de el, pentru a obține informațiile
necesare.
newsLabel.Text=pcm1.getLatestHeadLine(); este linia care leagă eticheta
newsLabel definită mai sus de metoda getLatestHeadLine() care întoarce în
servicul
Web ultima știre din baza de date.
Așa am realizat primul consumator de servicii Web realizat în ASP.NET.
Un aspect foarte important care trebuie subliniat aici este faptul că,
bazându-se pe SOAP (Simple Object Acces Protocol), serviciile web realizate
cu ASP.NET
nu sunt accesibile doar aplicațiilor realizate în ASP.NET, ci se adreseaza
oricărui limbaj de programare Web, deci orice sit realizat în ASP, ASP.NET,
PHP, JSP, etc poate accesa un astfel de serviciu. Se deschide astfel
calea de la situri care prezintă o informație (static în trecut, dar mai
nou
dinamic) la situri care interconectează organzații. Și dacă este să reținem
că, după
unii specialiști TI, viitoarele aparate ce se vor conecta la internet
vor avea încorporate doar un editor simplu de text și un browser, atunci
e
ușor de imaginat cât de folosite pot deveni serviciile web.
Într-un articol viitor ne propunem să realizăm un serviciu Web ceva mai
complex, unde vom exemplifica utilizarea funcțiilor ASP.NET pentru
e-mail și vom privi
mai îndeaproape tratarea erorilor în ASP.NET, o parte foarte importantă
în programarea unei aplicații. Vom încerca să realizăm împreună un
serviciu Web care permite unei organizații să utilizeze servicii de Email
în propriul
sit, servicii furnizate de o altă firmă prin intermediul serviciilor Web.
|