C# LINQ Funktionen höherer Ordnung. Allgemein ● Language Integrated Query ● Verfahren von Microsoft zum Zugriff auf Daten ● Hauptentwickler Erik Meijer.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Object Relational Mapping
Datenbankzugriff über ISAPI-Webservererweiterungen
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Datenbanken Einführung.
JPQL Java Persistence Query Language
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
On a Buzzword: Hierachical Structure David Parnas.
SendEplanung Datenbank
FH-Hof Tools Richard Göbel. FH-Hof Tools für die Veranstaltung JUnit: Testen ANT: Build-Tool Eclipse: Entwicklungsumgebung.
FH-Hof Einbindung von JavaScript Anweisungen
Java: Dynamische Datentypen
FH-Hof SQLJ Richard Göbel. FH-Hof SQLJ - Idee Erweiterung von Java um SQL Die Verwendung von SQL-Anweisungen innerhalb einer Programmiersprache wird vereinfacht.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
MySQL Der Einstieg.
Deklaratives Debugging (Seminar Software Engineering) Tim Sender Deklaratives Debugging Seminar Software Engineering.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
EXtensible Server Pages von Belrhiti El mostafa. Inhalt Was ist XSP ? Wichtige XSP Tags Erstellungsmöglichkeiten Die Basis der XSP.
Vortrag: Ingo Gensch, Mathias Reich am:
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Rekursion Richard Göbel.
Einfach verkettete Listen (OOP)
... und alles was dazugehört
ODBC (Open Database Connectivity)
Internet-Datenbanken und ASP Eine Einführung von J.Sommer & A.Vortisch.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Java programmieren mit JavaKara
Wir bauen uns eine Webapplikation!
Proseminar an der TU München Martin Levihn
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Parallel Matrix Multiplication
1 Softwareentwicklung mit.NET Teil 5 Datenzugriff mit ADO.NET Dr. Ralph Zeller.
SQL Überblick Abfragen aus einer Tabelle
CGI (Common Gateway Interface)
Jan-Cornelius Molnar Student Partner.
Softwaresponsoren Mediasponsoren. Vorstellung KnowledgeCenter Neue Sprachfeautres in VB 9.0 LINQ to SQL in der Praxis.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Compiled Queries: LINQ-Abfragen mit Pegasus-Stiefeln © msg systems ag, August Gordon Breuer IT Consultant & Software Engineer Travel & Logistics.
Aggregatsfunktion SQL = Structured Query Language.
Von Isabelle Spörl und Simon Schausberger
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Objectives Verstehen was unterDelegate verstanden wird
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
Structured Query Language
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Parallele Programmierung im.NET Framework Darmstadt, Präsentation am Beispiel von C-Sharp (C#)  Wichtige Grundlagen  Generika, Delegate, Lambda,
Sprachneuerungen des .NET Frameworks 3.5
Quelle: xkcd.com SQL Injections.
Sammlungsklassen Array.
SQL - Structured Query Language  AIFB SS (1/6) Spezielle Anfragen an eine Relation(1/6) projekt P-NAMEP-NRP-FILIALEP-LEITER p Karlsruhe3115.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Datenbanken abfragen mit SQL
Microsoft Student Partner
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.
Wiederholte Programmausführung
Das IT - Informationssystem
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Tutorstunde 10.
Gliederung Einführung Binary Tree Binary Search Tree Binary Heap
Arrays of Objects, a 3 part process
 Präsentation transkript:

C# LINQ Funktionen höherer Ordnung

Allgemein ● Language Integrated Query ● Verfahren von Microsoft zum Zugriff auf Daten ● Hauptentwickler Erik Meijer

Aufbau

Arbeitsweise ● Linq Anweisungen werden zu Quellcode übersetzt. ● Abfrageergebnisse übergibt Linq typisiert. ● Die Linq Provider übersetzten die Anfragen in spezielle Zugriffsmethoden. ● Provider: Linq to Objects,... ● Drittanbeiter: Linq to Amazon

Ziel ● Verschiedene Datenquellen mit den selben Zugriffsmethoden zu nutzen. ● Datenquellen: Object (Listen) SQL XML ● Es werden keine unübersichtlichen Schleifen mehr benötigt. ● Der zugriff auf Daten in einer Liste wird verkürzt. ● Im Linq Teil des Programmcodes können keine Seiteneffekte auftreten. ● Compiler hat bessere Optimierungsmöglichkeiten.

Notationsformen var v = from i in zahlen select i * i; var v = zahlen.Select(i => i * i); var v = zahlen.Select(SelectFkt); int SelectFkt(int i) { return i * i; }

Typbeziehungen einer Abfrage

Aufbau einer Funktion höherer Ordnung Haskell: map :: (Int -> Int) -> [Int] -> [Int] map f (x:xs) = (f x) : map f xs Linq: IEnumerable Map(Func fkt, int[] zahlen) { return from i in zahlen select fkt(i); }

Typbeziehungen bei Funkionen höherer Ordnung Haskell: map :: (Int -> Int) -> [Int] -> [Int] map f (x:xs) = (f x) : map f xs Linq: IEnumerable Map(Func fkt, int[] zahlen) { return from i in zahlen select fkt(i); }

Foldl / Foldr Foldl (-) 0 [ 9, 4, 11, 3, 5] -32 new int[] { 9, 4, 11, 3, 5 }.Aggregate(0, (r, i) => r – i); -32 Foldr (-) 0 [ 9, 4, 11, 3, 5] 18 new int[] { 9, 4, 11, 3, 5 }.Aggregate(0, (r, i) => i - r); 18

Foldl / Foldr Unterschied zu Haskell: Die Aggregate Funktion benötigt keinen Startwert. In diesem Fall wird beim ersten Aufruf der übergebenen Funktion mit dem ersten und zweiten Element der Liste begonnen. new int[] { 9, 4, 11, 3, 5 }.Aggregate((r, i) => r – i); -14 (((9 – 4) – 11) – 3) - 5

Vorteile oder Nachteile von Linq ● Es ist nicht möglich komplett mit Linq zu programmieren, da es nur für Listen unterschiedlicher Art zur Verfügung steht. ● In den benötigten C# Teilen treten Seiteneffekte auf. ● Nachteile: ● Keine unendlichen Listen ● Bei zu großen Listen Stackoverflow Exception

Fazit Linq ist noch nicht ausgereift aber die Verwendung kann sich durchaus lohnen.

Quellen DownloadArticle.aspx?id= LINQ-Samples-3fb9811b de-de/library/bb aspx /03/third-party-linq-providers.html