![]() |
Pe HaiSaRadem.ro vei gasi bancuri, glume, imagini, video, fun, bancuri online, bancuri tari, imagini haioase, videoclipuri haioase, distractie online. Nu ne crede pe cuvant, intra pe HaiSaRadem.ro ca sa te convingi. |
O data cu aparitia noului Visual Studio 2008 Microsoft a introdus un nou concept de programare. Daca in general in ultimii douazeci de ani dezvoltatorii s-au orientat catre limbajele de programare OO incercand sa dezvolte clase si metode noi care sa usureze procesul de programare a sosit momentul in care acestea au ajuns la un maxim de versatilitate. Ultimele tendinte par sa fie orientate catre tehnologiile de acces la informatii: baze de date relationale si arhi-cunoscutul XML omni prezent in toate interfetele evoluate.
Abordarea Microsoft a fost sa pastreze stadiul actual al facilitatiilor oferite de limbajele programare adaugand odata cu proiectul LINQ o noua abordare generala a felului in care se executa queryu-rile in .NET Framework asupra tuturor surselor de informatie. Folosirea termenului de language integrated query indica faptul ca un query este o parte integrata primara a limbajului de programare (Visual C#, Visual Basic). Limbajele integrate permit expresii bogate de metadate, corectare de sintaxa la compilare si IntelliSense care era pana acum disponibil numai la partea imperativa a limbajului. Language integrated query permite facilitati declarative generale sa fie aplicate tuturor informatiilor din memorie nu numai asupra celor provenite din surse externe. .NET Language-Integrated Query defineste un set general de operatori standard de interogare ce permit obtinerea operatoriilor relationali standard (proiectie, selectie, jonctiune) toate acestea intr-un mod declartiv in orice limbaj .NET. Operatorul standard de interogare permite query-urilor sa fie aplicate asupra oricarei structuri ce implementeaza IEnumerable. Tot odata LINQ permite providerilor externi sa mareasca setul standard de operatori cu noi operatori specifici tehnologiei pe care o dezvolta. Producatori de SGBD-uri pot inlocui si operatorii standard cu propriile lor implementari care pot aduce facilitatii noi optimizari sau evaluari remote (direct in SGBD) Extensibilitatea arhitecturii de interogare folosita in LINQ permite ca aceasta implementare sa functioneaze atat asupra XML-ului cat si asupra datelor SQL. Operatorii de interogarea asupra XML folosesc o metoda eficienta si usor de folosit pentru a permite functionalitati XPath/XQuery direct in limbajul de programare.
LINQ in XML reprezinta o noua mainera de construire, scriere si citire a datelor XML din .NET Framework. Noul API simplifica lucrul cu date XML fara sa fie nevoie de alte limbaje cu sintaxa aditionala precum XPath sau XSLT. LINQ nu este un inlocuitor pentru nici un model DOM sau clasa cu functii XML desi in multe cazuri functionalitatile acestora se suprapun. Scopul LINQ este sa ofere dezvoltatorului un set nou defacilitati puternice si in aceelasi timp sa permita vechiului cod sa functioneze. O facilitate foarte importanta a LINQ este aceea ca permite scrierea de Query Expressions si in acelasi timp permite imbricarea acestora cu orice alta tehnologie. Pentru a putea vedea ce inseama pentru cei de la Microsoft Standard Query Operators / Expressions click pe link.
LINQ in XML are un model relative simplut pentru construirea de documente XML de mana. Fie ca sursa este un stream sau un fisier sau un XML creat on the flie exista decat cateva timpuri de date ce trebuiesc intelese. Cele mia folosite sunt XDocument, XElement and XAttribute. In figura alaturata poate fi vazuta intreaga structura de clase.
Cu toate ca XElement apare in partea de jos a ierarhiei de clase el reprezinta elemental cheie. Arborii XML sunt in general compusi dintr-o in lantuire de XElements si XAttributes ce reprezinta perechi nume-valoare asociate cu XElement. XDocuments sunt create numai daca este necesara retinerea informatiilor precum DTD sau a altor instructiuni de procesare XProcessingInstruction. Toate celelalte XNode pot fi decat noduri frunze sub un tag XElement sau posibil XDocument.