Generale, DotNetDecember 10, 2007 10:34 pm
Correggo leggermente il tiro rispetto al post precedente.
E’ capitato di discutere con Alessio sull’utilizzo di LINQ to SQL e più in generale della famiglia “LINQ to”. Mentre su LINQ to SQL non mi sbilancio ancora, mi trovo in disaccordo con lui sulla bontà di LINQ to XML. Personalmente trovo sia un modo intuitivo e decisamente versatile per gestire il “formato” XML. Capisco, come sostiene lui, che xpath fornisca tutto il necessario per la gestione di dati in formato XML, ma credo che LINQ to XML sia un passo in più.
Questo, ad esempio è il codice da scrivere per estrarre da un file XML, i contatti con id minore di 4:
//Loading from a file, you can also load from a stream
XDocument loaded = XDocument.Load(@”C:\contacts.xml”);
// Query the data and write out a subset of contacts
var q = from c in loaded.Descendants(”contact”)
where (int)c.Attribute(”contactId”) < 4
select (string)c.Element("firstName") + “ “ +
(string)c.Element("lastName");
Sinceramente trovo "affascinante" (passatemi il termine) la query sintax e come il linguaggio si trasformi in dichiarativo.
Se poi a questo aggiungiamo le caratteristiche che mette a disposizione LINQ to XSD, ecco come va a semplificarsi la "query integrata nel linguaggio":
//Loading from a file, you can also load from a stream
var xmlSource = contacts.Load(@"../../Contacts.xml");
var q = from c in xmlSource.contact
where c.contactId < 4
select c.firstName + " " + c.lastName;
beh credo che i vantaggi, rispetto a utilizzare xpath, diventino notevoli, in termini di leggibilità, mantenibilità e numero di righe di codice
Gli esempi sono pre si da questo articolo, di cui ovviamente consiglio la lettura.