Programmazione funzionale e programmazione procedurale (LINQ to XML)
Sono disponibili diversi tipi di applicazioni XML:
In alcune applicazioni da documenti XML di origine vengono prodotti nuovi documenti XML con una forma diversa.
In alcune applicazioni da documenti XML di origine vengono prodotti documenti risultanti in un formato completamente diverso, ad esempio file di testo CSV o HTML.
In alcune applicazioni da documenti XML di origine vengono inseriti record in un database.
In alcune applicazioni dai dati di un'altra origine, ad esempio un database, vengono creati documenti XML.
Quelli elencati non sono tutti i tipi di applicazioni XML disponibili, ma sono rappresentativi dei tipi di funzionalità che i programmatori XML devono implementare.
Con tutti questi tipi di applicazioni, gli sviluppatori possono adottare due approcci completamente diversi:
Costruzione funzionale utilizzando un approccio dichiarativo.
Modifica della struttura ad albero XML in memoria utilizzando codice procedurale.
In LINQ to XML sono supportati entrambi gli approcci.
Quando si utilizza l'approccio funzionale, vengono scritte trasformazioni che dai documenti di origine generano documenti completamente nuovi con la forma desiderata.
Quando si modifica una struttura ad albero XML sul posto, viene scritto un codice che attraversa e si sposta attraverso i nodi in una struttura ad albero XML in memoria, inserendo, eliminando e modificando i nodi secondo necessità.
È possibile utilizzare LINQ to XML con uno di questi due approcci.Si utilizzano le stesse classe e in alcuni casi gli stessi metodi.Tuttavia, la struttura e gli obiettivi dei due approcci sono molto diversi.In situazioni diverse, ad esempio, un approccio offre in genere prestazioni più elevate dell'altro e utilizza una quantità maggiore o minore di memoria.Inoltre, un approccio sarà più facile da scrivere dell'altro e produrrà codice più facilmente gestibile.
Per informazioni sulle differenze tra i due approcci, vedere Differenze tra la modifica dell'albero XML in memoria e la costruzione funzionale (LINQ to XML).
Per un'esercitazione sulla scrittura di trasformazioni funzionali, vedere Trasformazioni funzionali pure di XML.