Anwendbarkeit der funktionalen Transformation (C#)Applicability of Functional Transformation (C#)

Reine funktionale Transformationen können in vielen Situationen angewendet werden.Pure functional transformations are applicable in a wide variety of situations.

Funktionale Transformationen sind hervorragend für das Abfragen und Bearbeiten strukturierter Daten geeignet, sodass dieser Ansatz gut zu LINQ-Technologien passt.The functional transformation approach is ideally suited for querying and manipulating structured data; therefore it fits well with LINQ technologies. Die Palette der Anwendungsmöglichkeiten der funktionalen Transformation ist aber viel größer als die bloße Verwendung mit LINQ.However, functional transformation has a much wider applicability than use with LINQ. Alle Prozesse, bei denen es hauptsächlich um das Transformieren von Daten von einer Form in eine andere Form geht, sollten als potenzielle Kandidaten für die funktionale Transformation angesehen werden.Any process where the main focus is on transforming data from one form to another should probably be considered as a candidate for functional transformation.

Dieser Ansatz ist auf viele Probleme anwendbar, die zunächst als nicht geeignet erscheinen mögen.This approach is applicable to many problems that might not appear at first glance to be a candidate. Funktionale Transformationen können – in Verbindung mit oder separat von LINQ – für die folgenden Bereiche in Erwägung gezogen werden:Used in conjunction with or separately from LINQ, functional transformation should be considered for the following areas:

  • XML-basierte Dokumente:XML-based documents. Wohlgeformte Daten eines beliebigen XML-Dialekts können durch funktionale Transformation leicht bearbeitet werden.Well-formed data of any XML dialect can be easily manipulated through functional transformation. Weitere Informationen finden Sie unter Functional Transformation of XML (C#) (Funktionale Transformation von XML (C#)).For more information, see Functional Transformation of XML (C#).

  • Andere strukturierte Dateiformate:Other structured file formats. Angefangen bei Windows.ini-Dateien bis hin zu Nur-Text-Dokumenten besitzen die meisten Dateien eine gewisse Struktur, die zu Analyse- und Transformationszwecken verwendet werden kann.From Windows.ini files to plain text documents, most files have some structure that lends itself to analysis and transformation.

  • Datenstreamingprotokolle:Data streaming protocols. Das Codieren von Daten in und das Decodieren von Daten aus Kommunikationsprotokollen kann häufig als einfache funktionale Transformation dargestellt werden.Encoding data into and decoding data from communication protocols can often be represented by a simple functional transform.

  • RDBMS- und OODBMS-Daten:RDBMS and OODBMS data. Relationale und objektorientierte Datenbanken sind, wie XML, häufig verwendete strukturierte Datenquellen.Relational and object-oriented databases, just like XML, are widely-used structured data sources.

  • Mathematische, statistische und naturwissenschaftliche Lösungen:Mathematic, statistic, and science solutions. In diesen Bereichen werden gern große Datensätze bearbeitet, um den Benutzer bei der Visualisierung, Schätzung oder eigentlichen Lösung schwieriger Probleme zu unterstützen.These fields tend to manipulate large data sets to assist the user in visualizing, estimating, or actually solving non-trivial problems.

Wie in Refactoring Into Pure Functions (Refactoring in reine Funktionen (C#)) beschrieben, ist die Verwendung von reinen Funktionen ein Beispiel für die funktionale Programmierung.As described in Refactoring Into Pure Functions (C#), using pure functions is an example of functional programming. Neben ihren unmittelbaren Vorteilen sorgt die Verwendung reiner Funktionen auch für wertvolle Erfahrungen, wenn es darum geht, Probleme aus der Perspektive einer funktionalen Transformation zu betrachten.In additional to their immediate benefits, using pure functions provides valuable experience in thinking about problems from a functional transformation perspective. Dieser Ansatz kann sich auch signifikant auf die Programm- und Klassenentwicklung auswirken.This approach can also have major impact on program and class design. Dies gilt insbesondere dann, wenn sich ein Problem für eine Datentransformationslösung geradezu anbietet (siehe oben).This is especially true when a problem lends itself to a data transformation solution as described above.

Da eine weitere Erläuterung dieses Themas den Rahmen dieses Lehrprogramms sprengen würde, sei hier nur so viel gesagt: Entwürfe, die von der Perspektive der funktionalen Transformation beeinflusst sind, sind tendenziell mehr auf Prozesse als auf Objekte als Hauptakteure ausgerichtet. Die sich so ergebende Lösung wird zumeist als Serie groß angelegter Transformationen implementiert, statt in Form individueller Objektzustandsänderungen.Although they are beyond the scope of this tutorial, designs that are influenced by the functional transformation perspective tend to center on processes more than on objects as actors, and the resulting solution tends to be implemented as series of large-scale transformations, rather than individual object state changes.

Vergessen Sie bei allem nicht: C# unterstützt sowohl den imperativen als auch den funktionalen Ansatz. Der beste Entwurf für Ihre Anwendung ist daher möglicherweise ein Entwurf, der beide Elemente beinhaltet.Again, remember that C# supports both imperative and functional approaches, so the best design for your application might incorporate elements of both.

Siehe auchSee Also

Introduction to Pure Functional Transformations (C#) (Einführung in reine funktionale Transformationen (c#))Introduction to Pure Functional Transformations (C#)
Funktionale Transformation von XML (c#)Functional Transformation of XML (C#)
Refactoring in reine Funktionen (C#)Refactoring Into Pure Functions (C#)