Dela via


Användbarhet för funktionell transformering (LINQ till XML)

Rena funktionella transformeringar gäller i en mängd olika situationer.

Metoden för funktionell transformering passar perfekt för att fråga efter och manipulera strukturerade data. därför passar den bra med LINQ-teknik. Funktionell transformering har dock en mycket bredare tillämplighet än användning med LINQ. Alla processer där huvudfokus ligger på att omvandla data från ett formulär till ett annat bör förmodligen betraktas som en kandidat för funktionell transformering.

Den här metoden gäller för många problem som kanske inte visas vid första anblicken för att vara en kandidat. Funktionstransformeringen används tillsammans med eller separat från LINQ och bör övervägas för följande områden:

  • XML-baserade dokument. Välformulerade data för alla XML-dialekter kan enkelt manipuleras genom funktionell transformering. Mer information finns i Funktionell transformering av XML.
  • Andra strukturerade filformat. Från Windows.ini filer till oformaterade textdokument har de flesta filer viss struktur som lämpar sig för analys och omvandling.
  • Protokoll för dataströmning. Kodning av data till och avkodning av data från kommunikationsprotokoll kan ofta representeras av en enkel funktionell transformering.
  • RDBMS- och OODBMS-data. Relations- och objektorienterade databaser, precis som XML, är ofta använda strukturerade datakällor.
  • Lösningar för matematik, statistik och vetenskap. Dessa fält tenderar att manipulera stora datauppsättningar för att hjälpa användaren att visualisera, uppskatta eller faktiskt lösa icke-triviala problem.

Som beskrivs i Refactor till rena funktioner är användning av rena funktioner ett exempel på funktionell programmering. Utöver deras omedelbara fördelar ger användning av rena funktioner värdefull erfarenhet av att tänka på problem ur ett funktionellt transformeringsperspektiv. Den här metoden kan också ha stor inverkan på program- och klassdesign. Detta gäller särskilt när ett problem lämpar sig för en datatransformeringslösning enligt beskrivningen ovan.

Även om de ligger utanför den här självstudiekursen tenderar design som påverkas av det funktionella transformeringsperspektivet att fokusera på processer mer än på objekt som aktörer, och den resulterande lösningen tenderar att implementeras som en serie storskaliga transformeringar snarare än enskilda objekttillståndsändringar.

Kom återigen ihåg att C# och Visual Basic stöder både imperativa och funktionella metoder, så att den bästa designen för ditt program kan innehålla element i båda.

Se även