Integrierte deklarative Abfragesprachen in imperativen Programmiersprachen am Beispiel von:
|
|
- Mareke Klaudia Stein
- vor 7 Jahren
- Abrufe
Transkript
1 1 Integrierte deklarative Abfragesprachen in imperativen Programmiersprachen am Beispiel von: Language INtegrated Query LINQ Datenabfragen in C# Proseminar Programmierparadigmen und Sprachen Christian Piechnick SS 2009
2 Agenda Wozu LINQ? 2. Was ist LINQ? 3. Woher kommt LINQ? 4. Welche Erweiterungen benötigt LINQ? 5. Wie funktioniert LINQ? 6. Warum LINQ / Warum Nicht?
3 01 Wozu LINQ? 03 Wie fragen wir normalerweise Daten ab? Liefere mir eine Liste Von allen Webseiten der Welt die etwas mit LINQ zu tun haben Ausgabeformat Datenquelle Einschränkungen - deklarativ - mengenorientiert
4 01 Wozu LINQ? 04 Abfragen von Datenbanken in SQL Syntax Liefere mir eine Liste Von allen Kunden Die mehr als 1000 bezahlt haben SELECT C.* FROM Customers C WHERE ( SELECT SUM(Price) * SUM(Quantity) FROM Orders O WHERE O.CustID = C.CustID ) > 1000
5 01 Wozu LINQ? 05 Abfragen in imperativen Programmiersprachen Liefere mir eine Liste Von allen Kunden Die mehr als 1000 bezahlt haben List<Customer> selectedcustomers = new List<Customer>(); foreach (Customer customer in context.getcustomers()) { int sum = 0; foreach (Order od in customer.orders) { sum += od.unitprice * Quantity; } if(sum > 1000) selectedcustomers.add(customer); }
6 01 Wozu LINQ? 06 Abfragen in LINQ var cust= from c in Customers where c.orders.sum(o => o.unitprice * o.quantity) > 1000 select c; deklerativ List<Customer> selectedcustomers = new List<Customer>(); foreach ( Customer customer in getcustomers() ) { int sum = 0; foreach (Order od in customer.orders) { sum += od.unitprice * Quantity; } if(sum > 1000) selectedcustomers.add(customer); } imperativ
7 01 Wozu LINQ? 07 Wie gehen wir mit heterogenen Datenquellen um? Objekte Datenbanken XML-Datein Web Services DB- Framework XML Library WS Library Programmcode
8 02 Was ist LINQ? 08
9 02 Was ist LINQ? 09 LINQ - Erweiterung des.net Frameworks und Spracherweiterungen der.net Sprachen - Typsichere Abfragesprache auf Ebene der Programmiersprache - SQL-ähnliche Syntax (Syntaxprüfung durch Compiler) - Wählt den Ansatz der deklarativen Programmierung (High-Level) C# Visual Basic Andere Sprachen.NET Language Integrated Query (LINQ).NET basierte Sprachen.NET Framework LINQ-fähige Datenquellen LINQ-fähiges ADO.NET LINQ Provider LINQ to Objects LINQ to Dataset LINQ to SQL LINQ to Entities LINQ to XML <Book> <author/> <Book> Datenquellen
10 02 Was ist LINQ? 10 LINQ - Frameworkprovider LINQ to Objects arbeitet auf IEnumerable LINQ to XML arbeitet auf XML Strukturen LINQ to SQL arbeitet auf dem Microsoft SQL Server LINQ to ADO.NET arbeitet auf ADO.NET Datenquellen LINQ to Entities arbeitet auf beliebigen relativen Datenbanken LINQ Weitere Provider LINQ to Amazon LINQ to NHibernate LINQ to Flickr LINQ to Google LINQ to LDAP
11 03 Woher kommt LINQ? 11
12 03 Woher kommt LINQ? 12 Die.NET Plattform -.NET ist eine von Microsoft entwickelte Software-Plattform erstmals veröffentlicht (zusammen mit Visual Studio als IDE) -.NET ist eine Implementierung der CLI (Common Language Infrastructure) - CLI ist ein ECMA Standard - soll sprach- und plattformunabhängige Entwicklung und Ausführung ermöglichen
13 03 Woher kommt LINQ? 13 Die.NET Plattform C# VB.NET C++ CLS Common Language Specification C# Compiler VB.NET Compiler C++ Compiler Zwischencode CIL Common Intermediate Language JIT Compiler für Windows JIT Compiler für anderes Betriebssystem CLR Common Language Runtime Maschinencode Maschinencode
14 04 Welche Erweiterungen benötigt LINQ? 14
15 04 Welche Erweiterungen benötigt LINQ? 15 Type Inference var name = Peter ; String var num = 25; int var num2 = 25.5; double var num3 = 25.5F; float var cust = new Customer(); Customer - deklarieren von Variablen ohne explizite Angabe des Typs - implizites Ableiten des Typs durch Deklaration (strenge Typisierung) - Type Inference sollte nicht aus Faulheit benutzt werden Verwendung 1. Deklaration von Annonyme Typen 2. Zur Vermeidung von sehr langen Typen (Rückgabetypen von LINQ-Statements) 3. Umgang mit wechselnden Typen während der Entwicklung
16 Compiler Was ist LINQ? - Sprachgrundlagen 16 Type Inference var name = Peter ; String var num = 25; Integer var num2 = 25.5; Double var num3 = 25.5F; Float var cust = new Customer(); Customer C# String name = Peter ; int num = 25; double num2 = 25.5; float num3 = 25.5F; Customer cust = new Customer(); Pseudo CIL
17 Was ist LINQ? - Sprachgrundlagen 17 Anonyme Typen var person = new { Name = Peter } Console.WriteLine( person.name ); - Klassen ohne vordefinierten Typ - besitzen nur lesbare Properties - Typ der Properties wird über Type Inference ermittelt - Anonyme Typen können nicht praktikabel als Parameter übergeben werden Verwendung - werden als temporäre Typen für kurze Verarbeitung genutzt
18 04 Welche Erweiterungen benötigt LINQ? 18 Extension Methods Erweiterungsmethoden - Klassen statisch um Funktionalität erweitern - Methoden zu Klassen hinzufügen ohne den Quellcode der Klasse zu manipulieren Konsequenzen - erhöht die Lesbarkeit des Quellcodes - ermöglicht Interfaces um Funktionalität zu erweitern
19 04 Welche Erweiterungen benötigt LINQ? 19 Extension Methods public static class MyExtensions { public static int Add(this int a, int b) { return a+b; } } int x = 12; int c = x.add( 10 ); //c = 22
20 04 Welche Erweiterungen benötigt LINQ? 20 Extension Methods Erweiterung von Interfaces public interface ICatalog { void AddItem( String itemname ); } public static class MyExtensions { public static void Sort(this ICatalog catalog) { //Implementierung der Sortierung } }
21 04 Welche Erweiterungen benötigt LINQ? 21 Wozu Extension Methods Statische Helper-Klassen vs. Extension Methods Szenario: - Personen die einen Namen und ein Gehalt haben - Man braucht Filter die eine Liste von Personen nach Namen und Gehalt filtern List<Person> filterbyname( List<Person> per, String name ) List<Person> filterbysalery( List<Person> per, int salery ) Mit Helper Klasse: MyHelper.filterByName( MyHelper.filterBySalery( persons,1000 ), Peter ); Mit Extension Methods: persons.filterbysalery( 1000 ).filterbyname( Peter );
22 04 Welche Erweiterungen benötigt LINQ? 22 Lambda Expressions Func<int, int, int> myfunction = (x,y) => x + y; myfunction(1,2); //3 - andere Syntax für annonyme Methoden auf Basis von Funktionszeigern (delegates) - Annonyme Methoden und Delegates wurden mit.net 2.0 eingeführt - Lambda Expressions sollen kürzere und besser lesbare Schreibweise darstellen - Parameters => Body - => ist der Lambda Operator - Func<int, int, int> symbolisiert eine Funktion, die 2 int Objekte als Eingabe auf ein int Objekt abbildet
23 04 Welche Erweiterungen benötigt LINQ? 23 Lambda Expressions High Order Functions Func<int, bool> greatertwo = x => x > 2; Func< Func<int,bool>, int, int > myfunction = (f, x) => f(x)? x + 1 : 1; myfunc( greatertwo, 1 ); // 2 myfunc( greatertwo, 2 ); // 1 - Methoden die andere Methoden als Eingabewerte haben - Über Funktionszeiger (delegates) ist es möglich Methoden als Parameter zu übergeben - strenge Typisierung über Generics
24 04 Welche Erweiterungen benötigt LINQ? 24 Expression Trees - Expression Trees überführen ausführbaren Code in Daten - Expression ist ein DOM für abstract syntax trees - Expression Trees sehen diesen Baum als Daten Expression Trees sind kein ausführbarer Code - können mit der Methode Compile() zur Laufzeit in ausführbaren Code überführt werden
25 04 Welche Erweiterungen benötigt LINQ? 25 Expression Trees Expr< Func< int, int, int > > myexpression = (x,y) => x + y; Expression Parameters Body Binary Expression x y Left Right Parameter Expression Node Type: Add Parameter Expression x y
26 05 Wie funktioniert LINQ? 26
27 05 Wie funktioniert LINQ? 27 Operatoren - jede Abfrage beginnt mit: from element in LINQ-fähige-Datenquelle Restriction Projection Ordering Grouping Quantifiers Paritioning Sets Elements Aggregation Conversion Where Select, SelectMany OrderBy, ThenBy GroupBy Any, All Take, Skip, TakeWhile, SkipWhile Distinct, Union, Intersect, Except First, FirstOrDefault, ElementAt Count, Sum, Min, Max, Average ToArray, ToList, ToDictionary
28 05 Was ist LINQ? - Sprachgrundlagen 28 Ergebnisberchnung - Datenquelle und select geben an welchen Typ das Ergebnis hat LINQ-to-Objects LINQ-to-XML in-memory IEnumerable Delegates LINQ-to-SQL LINQ-to-Entities LINQ-to-Dataset delegiert IQueryable Expression- Tree
29 05 Wie funktioniert LINQ? 29 Ergebnisberchnung mit IQueryable - Bei einer delegierten LINQ-Abfrage wird ein Objekt des Typs IQueryable zurückgegeben - IQueryable repräsentiert den ExpressionTree der Anfrage mit zusätzlichen Informationen - erst wenn man mit dem Resultat arbeitet wird der Expression Tree in ausführbaren Code übersetzt und die Anfrage ausgeführt var query = from entry in dbcontext.addressbook where entry.lastname.startswith( P ) select entry; PrintValues( query ); //Hans Pech, Max Proll dbcontext.addressbook.add( new Entry( Lisa, Pech ); PrintValues( query ); //Hans Pech, Max Proll, Lisa Pech
30 05 Wie funktioniert LINQ? 30 Abfragetransformation - LINQ Keywords sind keine reservierten Keywords sondern kontextuell Keywords - Jedes LINQ Keyword hat eine äquivalente ExtensionMethod - Jede LINQ-Abfrage ist in eine äquivalente Form mit ExtensionMethods überführbar var query = from customer in Customers where customer.name.startswith( A ) select customer; var query = Customers.Where( c => c.name.startswith( A ) ).Select( c => c ); static IEnumerable<T> Where( this IEnumerable<T> source, Func<T,bool> predicate )
31 delegiert In-memory 05 Wie funktioniert LINQ? 31 Anfragetransformation var cust = from c in context.customers where c.name = Peter select c; LINQ Statement var cust = context.customers.where( c => c.name == Peter ); Lambda Expression abstract syntax tree SELECT C.* FROM Customers C WHERE C.Name = Peter Datenquellabhängige Anfrage
32 05 Wie funktioniert LINQ? 32 PLINQ Parallel Linq - deklarativer oder funktionaler Code lässt sich einfacher automatisch parallelisieren - PLINQ wird Teil des.net Frameworks 4.0 sein - Parallelisieren der Anfrageausführung von in-memory-datenquellen (Objects, XML etc.) var query = ( from customer in Customers where customer.name.startswith( A ) select customer ).AsParallel(2);
33 06 Warum LINQ? 33 Vorteile - Datenquellenunabhängige Abfragesprache - Vom Compiler lesbar (syntaktische Fehler werden zur Compile-/Entwicklungszeit erkannt) - Vom Entwickler lesbar (kürzerer und klarerer Quellcode) Nachteile - Erlernen einer neuen Technologie - zum Teil bringen LINQ-Provider spezifische Technologien mit, die man verwenden muss - zur Zeit kann man in einer Query nur eine delegierende Datenquelle verwenden
Grundlagen in C# und.net
Grundlagen in C# und.net Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik:
MehrGrundlagen in C# und.net
Grundlagen in C# und.net Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik:
MehrLINQ. LANGUAGE INTEGREATED QUERY.net 3.5. Bernhard Grojer BernhardG@ppedv.de
LINQ LANGUAGE INTEGREATED QUERY.net 3.5 Bernhard Grojer BernhardG@ppedv.de Agenda Übersicht LINQ Basistechnologien Verschiedene Arten von LINQ LINQ (to Objects) LINQ TO SQL Übersicht LINQ Aggregationen
MehrLINQ & Streams. Arthur Zaczek
LINQ & Streams Arthur Zaczek Apr 2015 1 C# LINQ 1.1 LINQ Language Integrated Query Abfragen gegen beliebige Datenquellen möglich Listen von Objekten Datenbanken (Linq2SQL, Entity Framework, nhibernate)
MehrLINQ Verstehen und Einsetzen
LINQ Verstehen und Einsetzen Proseminar Objektorientiertes Programmieren mit.net und C# Georg Wagner Institut für Informatik Software & Systems Engineering Agenda 1 2 3 4 5 LINQ-Einführung (Motivation,
MehrInhalt. 1 LINQ Warum benötigen wir LINQ? WasistLINQ? Voraussetzungen für LINQ Wie ist das Buch aufgebaut?
Danksagung 11 1 LINQ 13 1.1 Warum benötigen wir LINQ? 14 1.2 WasistLINQ? 15 1.3 Voraussetzungen für LINQ 18 1.4 Wie ist das Buch aufgebaut? 19 2 UNOtoSOL 21 2.1 Entity-Klassen 22 2.1.1 Wichtige Attribute
MehrLeseprobe. Thorsten Kansy. Datenbankprogrammierung mit.net 3.5. Mehrschichtige Applikationen mit Visual Studio 2008 und MS SQL Server 2008
Leseprobe Thorsten Kansy Datenbankprogrammierung mit.net 3.5 Mehrschichtige Applikationen mit Visual Studio 2008 und MS SQL Server 2008 Herausgegeben von Holger Schwichtenberg ISBN: 978-3-446-41450-1 Weitere
MehrIch liebe Java && Ich liebe C# Rolf Borst
Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String
MehrEntwicklung der Programmiersprache C#
Language Day HDM 2015 Entwicklung der Programmiersprache C# Referent: Mikhail Orleanskiy, IT-Designers GmbH (orleanskiy@it-designers.de) Stand: 6. November 2015 Eine Präsentation der IT-Designers Gruppe
Mehr.NET als Microsofts Entwicklerplattform
.NET als Microsofts Entwicklerplattform Frank Prengel Technologieberater Microsoft Deutschland http://blogs.msdn.com/frankpr Agenda Was ist.net eigentlich? Microsoft.NET heute.net Framework 2.0, 3.0.NET
Mehr.NET und Language Integrated Query (LINQ) W3L AG info@w3l.de
1.NET und Language Integrated Query (LINQ) W3L AG info@w3l.de 2012 2 Inhaltsverzeichnis LINQ to Objects Vergleich mit Schleifen Abfrage-Syntax Erweiterungsmethoden-Syntax LINQ Abfrage Bestandteile Spracherweiterungen
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrDelegaten. d. h. eine Tätigkeitsanforderung wird weitergeleitet
Einführung Delegaten delegate ist ein Objekt, das delegiert == weiterleitet d. h. eine Tätigkeitsanforderung wird weitergeleitet - Weiterleitung erfolgt an eine Funktion - diese Funktion(en) wurde dem
MehrTypsystem Plattform- und Sprachenunabhängigkeit in.net
Typsystem Plattform- und Sprachenunabhängigkeit in.net C# J# VB.NET Zwischencode CIL Windows Unix Auf welchen Grundlagen basiert dies? Komponenten & Frameworks Seite 1 Typsystem Grundlagen - CLR Common
MehrLINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering
LINQ to SQL Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel Institut für Informatik Software & Systems Engineering Agenda 1. LINQ allgemein Vorteile Bausteine und Varianten
MehrHochschule Darmstadt Fachbereich Informatik
Hochschule Darmstadt Fachbereich Informatik WPF Routed Events, Datenbankanbindung 03.05.2010 63 Praktikum Tipp: Beispiellösungen zu P4: http://dotnet.jku.at/csbuch/solutions/ Projektvorschläge: Internet-Timeout
MehrGeschrieben von: Anson Horton Samstag, den 17. November 2007 um 17:35 Uhr - Aktualisiert Samstag, den 12. Januar 2008 um 05:47 Uhr
Dieser Artikel basiert auf einer Vorabversion von Visual Studio mit dem Codenamen Orcas. Er beschreibt das Feature LINQ das mit der kommenden Sprachversion C# 3.0 erscheinen wird. Der Artikel stammt teilweise
MehrRainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR
Rainer Stropek cubido Baumschule Expression Trees in C#, CLR und DLR Inhalt Als Anwendungsentwickler kommt man selten mit Expression Trees in Berührung. Sie sind ein Implementierungsdetail von LINQ. Ihre
MehrSeminar Softwarearchitekturen SoSe Martin Schrage
Seminar Softwarearchitekturen SoSe 2011 Martin Schrage Gliederung 1. Common Language Infrastructur 2. Microsoft.NET 2.1Common Language Runtime 2.2 Programmausführung 2.3 Framework Class Library 2.4 Programmiersprachen
MehrLambda Expressions in Java 8
Sie sind da Lambda Expressions in Java 8 Rolf Borst Lambda Expressions sind cool Aus dem Internet Stimmt das? Das total uncoole Beispiel Person nachname : String vorname : String alter : int plz : String
MehrPaolo Pialorsi, Marco Russo. Datenbankprogrammierung. mit Microsoft LINQ. Microsoft
Paolo Pialorsi, Marco Russo Datenbankprogrammierung mit Microsoft LINQ Microsoft Inhaltsverzeichnis Vorwort Einleitung Danksagung XV XVII XVIII Einführung Über dieses Buch Systemanforderungen Die Companion-Website
MehrOCP Java SE 8. Lambda
OCP Java SE 8 Lambda Lambda-Ausdruck sieht ähnlich wie eine Deklaration einer Methode ohne Name und Ergebnistyp aus (a, b) -> b.compareto(a) Lambda Vor Java 8 Ausführbarer Programmcode ( Verhalten ) nur
MehrOCP Java SE 8. Lambda
OCP Java SE 8 Lambda Lambda-Ausdruck sieht ähnlich wie eine Deklaration einer Methode ohne Name und Ergebnistyp aus (a, b) -> b.compareto(a) Lambda Vor Java 8 Ausführbarer Programmcode ( Verhalten ) nur
MehrBesonderheiten von C#
Besonderheiten von C# Wert- und Referenztypen int a, b; a = 3; b = a; a++; Debug.Assert( a==4 && b==3 &&!a.equals(b), "int ist doch kein Werttyp" ); RTyp ra, rb; ra = new RTyp(3); rb = ra; ra.inc(); Debug.Assert(
MehrLINQ im Einsatz HANSER. Fabrice Marguerie Steve Eichert Jim Wooley. щвщящ\ Mit einem Geleitwort on Watt Warren
Fabrice Marguerie Steve Eichert Jim Wooley щвщящ\ LINQ im Einsatz Mit einem Geleitwort on Watt Warren Deutsche Übersetzung von Walter Doberenz HANSER Inhaltsverzeichnis Geleitwort 15 Vorwort 17 Danksagung
MehrGrundlagen von C# - 1
Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften
MehrInhaltsverzeichnis. Teil A Schnell zurechtfinden... 1
Inhaltsverzeichnis Ein nicht ganz so ernst gemeintes Vorwort... http://www.activedevelop.de Ein wenig Werbung in eigener Sache... Codebeispiele... Support... Danksagungen... XIII XV XVI XVI XVII Teil A
MehrInhaltsverzeichnis. 1 Einleitung 1. 2 Einordnung 2 2.1 Geschichte und Entwicklung der Sprache... 2 2.2 Vorgängersprachen... 3 2.3 Paradigmen...
Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion Institut für Informatik Christian-Albrechts-Universität zu Kiel Seminararbeit C# - Die.NET Sprache Thoren Horstmann WS 2012/2013 Betreuer: Fabian
MehrMonaden in anderen Programmiersprachen
Monaden in anderen Programmiersprachen Themen Informatik-Seminar SS 2013: Programmiersprachen und Sprachsysteme Bei: Prof. Dr. Schmidt, FH Wedel inf9500 Sebastian Philipp Überblick Motivation Monaden in
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrEinleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders
Typisierung Effiziente Programmierung Thomas Schnieders Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2018-04-26 Thomas Schnieders Typisierung 1
MehrLINQ im Einsatz. von Walter Doberenz, Steve Eichert, Jim Wooley, Fabrice Marguerie. 1. Auflage. Hanser München 2008
LINQ im Einsatz von Walter Doberenz, Steve Eichert, Jim Wooley, Fabrice Marguerie 1. Auflage Hanser München 2008 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 41429 7 Zu Leseprobe schnell und
Mehr9.5 Microsoft.NET
9.5 Microsoft.NET http://www.microsoft.com/net http://msdn.microsoft.com/netframework Architektur: objektorientiert/fernaufrufe (8.1.6 ) IDL: (unsichtbare Metadaten, vom Übersetzer erzeugt) Dienste: (über
MehrNative Queries Datenbankabfragen in reinem Java. Carl Rosenberger Chief Software Architect, db4objects Inc. Java Forum Stuttgart 2006, 6.
Native Queries Datenbankabfragen in reinem Java Carl Rosenberger Chief Software Architect, db4objects Inc. Java Forum Stuttgart 2006, 6. Juli 2006 1 Herkömmliche Datenbankabfragen sind nicht objektorientiert
MehrGrundlagen der OO- Programmierung in C#
Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3
Mehrmitp Professional Visual C# 2012 Einstieg und Praxis von Christopher Martel 1. Auflage
mitp Professional Visual C# 2012 Einstieg und Praxis von Christopher Martel 1. Auflage Visual C# 2012 Martel schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Thematische Gliederung:
MehrNeue Features in C# 2.0
Neue Features in C# 2.0 (gekürzt) Generische Typen Iteratoren Vereinfachte Delegate-Erzeugung Anonyme Methoden Partielle Klassen Sonstiges University of Linz, Institute for System Software, 2004 published
MehrProgrammieren in Java
Programmieren in Java Vorlesung 09: Funktionen höherer Ordnung Prof. Dr. Peter Thiemann, Manuel Geffken Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann, Manuel Geffken (Univ. Freiburg)
MehrC#Objektorientierte. Aleksandra Maj. Programmiersprachen. Programmiersprachen am Beispiel C# Referat im Rahmen des Seminars. 15.
C#Objektorientierte Programmiersprachen am Beispiel C# Referat im Rahmen des Seminars Programmiersprachen 15.Juli 2004 Aleksandra Maj 1 1.Einleitung Kurze Geschichte und Ziele der neuen Programmiersprache
MehrValidation und Quick Fixing mit Xtend. 3. Dezember 2014
Validation und Quick Fixing mit Xtend 3. Dezember 2014 175 Überblick Tuning der Xtext-generierten Editoren Validierung mit OCL auf der abstrakten Syntax mit Xtend auf der konkreten Syntax Quick Fixes mit
MehrAktivitäten in C# /.NET umsetzen
Aktivitäten in C# /.NET umsetzen Grundlagen von C# Dr. Beatrice Amrhein Überblick Grundlagen der C# Syntax Visual C# Express Einfache Abläufe umsetzen 2 Grundlagen von C# 3 Merkmale von C# C# besteht aus
MehrDatenbankprogrammierung mit Microsoft LINQ
Datenbankprogrammierung mit Microsoft LINQ Leistungsfähige Datenmanipulation mit LINQ und Visual Basic und C# von Paolo Pialorsi, Marco Russo 1. Auflage Datenbankprogrammierung mit Microsoft LINQ Pialorsi
MehrProseminar: C# und.net. 6. Vortag Generische Klassen. Sebastian Wolf
Proseminar: C# und.net 6. Vortag Generische Klassen Sebastian Wolf 1 Gliederung: 1. Einleitung 2. C# 2.0 3. Beschränkte Generizität 4. Generische Methoden 5. Überladene generische Klassen 6. Was passiert
MehrSpracherweiterungen und LINQ
Teil L Spracherweiterungen und LINQ In diesem Teil: Spracherweiterungen von C# 3.5 1153 LINQ 1169 1151 Kapitel 45 Spracherweiterungen von C# 3.5 In diesem Kapitel: Lokale Typinferenz 1154 Erweiterungsmethoden
MehrObjektorientierte Datenbanken Back to the future
Objektorientierte Datenbanken Back to the future Stefan Edlich Eine (zukunfts)kritische Bestandsaufnahme am Beispiel von db4o 05.12.06 Speaker Professor fü r Softwaretechnik in Berlin Autor des Apress
MehrVorlesung Datenbanken II SS 2006
Vorlesung Datenbanken II SS 2006 1 Vorlesung Datenbanken II SS 2006 Sven Wachsmuth, Technische Fakultät, AG Angewandte Informatik Vorlesung Datenbanken II SS 2006 2 3.4 ODBMS: ODMG Datenmodell ODMG Interface
MehrAbschnitt 10: Typisierte Klassen
Abschnitt 10: Typisierte Klassen 10. Typisierte Klassen 10.1 Einführung: Grenzen der Typ-Polymorphie durch Vererbung 10.2 Grundlagen 10.3 Vererbung bei typisierten Klassen 10.4 Wildcards, obere und untere
Mehr11. Funktionale Programmierung Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
11. Funktionale Programmierung Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen zu Design Patterns Wozu werden Design Patterns verwendet? Wann
MehrObjektorientierte Programmierung II
Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem
Mehr8a. Exkurs.NET. 8a.1.NET Architektur
8a. Exkurs.NET Inhalt: 8a.1.NET Architektur 8a.2 Kooperation von Anwendungen über ADO -.NET 8a.3 Unterschiede gegenüber gewöhnlicher WIN32- Programmierung 1 8a.1.NET Architektur Bislang wurden die C/C++
Mehr13. Funktionale Konzepte in Java
Funktionale vs. Imperative Programmierung 13. Funktionale Konzepte in Java Funktionale Programmierung, Lambda Ausdrücke, Datenströme, Pipelines Imperative Konzepte Ausführen von Anweisungen Zustand (z.b.
Mehr2. Unterprogramme und Methoden
2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf
MehrC# - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue
C# - Einführung in die Programmiersprache Fehler abfangen Leibniz Universität IT Services Anja Aue Fehler in einem Programm Warnungen sind Hinweise auf eventuelle Fehler während der Laufzeit des Programms.
MehrÜberblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 16/ / 861
Überblick 9. 9.1 Vererbung, abstrakte Klassen, Polymorphismus 9.2 Interfaces 9.3 Ausnahmen 9.4 Peer Kröger (LMU München) Einführung in die Programmierung WS 16/17 790 / 861 Grundlegendes zu Typsystemen
MehrDelegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein
Delegates «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen 2 Definition 3 Definition Ein Delegat
MehrObjektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen
Agenda für heute, 1. April, 2010 Imperatives vs. objektorientiertes Programmieren Lesen Sie den Begleittext Seite 79 85 Eines der drei wichtigsten Programmierparadigmen (Paradigma: Denkmuster) Imperative
MehrMicrosoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler Inhalt Was ist.net Was steckt dahinter Warum ist.net so wie es ist Die Säulen von.net.net Framework 2.0 / VisualStudio 2005 Beispiel Referenzen & Links
MehrKapitel 10 Delegationsvariablen
Kapitel 10 Delegationsvariablen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Wie werden
MehrMethoden (fortgeschritten) in C# - 1
Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
Mehrim Rahmen des Seminars - Programmiersprachen Markus Nestvogel
C# im Rahmen des Seminars - Programmiersprachen Markus Nestvogel 2 Gliederung 1. Einführung 2. Microsoft.NET 3. C# 3 1 Einführung objektorientierte Programmiersprache für Microsoft.NET entwickelt Konkurrenz
MehrEinführung in die Programmiersprache C#
Einführung in die Programmiersprache C# C# Übersicht Einführung in das.net Framework Konzepte / Architektur Einführung in C#, speziell Unterschiede zu Java .NET: Framework, Sprachen und Werkzeuge .NET
MehrGrundlegende Datentypen
Grundlegende Datentypen Funktionale Programmierung Prof. Dr. Oliver Braun Letzte Änderung: 22.10.2018 10:53 Grundlegende Datentypen 1/21 Typen in Haskell ist alles streng typisiert Haskell verfügt über
MehrShort Introduction to C# C# (C SHARP) Microsofts Antwort auf Java
Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Standardisierung durch die ECMA und ISO Short Introduction to C# C# (C
MehrVergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware VDMS
Stephan Püngel Vergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware sübersicht Einstieg Vorstellung als Rich Internet Application Technologie
MehrObjektbasierte 1:n-Navigation: Ein Vergleich zwischen externer Iteration und LINQ
FernUniversität in Hagen Fakultät für Mathematik und Informatik Lehrgebiet Programmiersysteme Prof. Dr. Friedrich Steimann Objektbasierte 1:n-Navigation: Ein Vergleich zwischen externer Iteration und LINQ
MehrFaulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen
Faulheit professionell: Fertige Datenbehälter Das Java-Collections-Framework Typsicherheit Generische Klassen Das Java Collections Framework Grundlegende Interfaces Das Interface List Das Interface List
MehrPolymorphismus 44. Function.hpp. #include <string>
Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class
MehrPhysikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt
Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine
MehrDie Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten.
4.5.5 Rekursive Typen Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. datatype IntList = Nil Cons o f ( i n t IntList ) ; Damit
MehrÜberblick. Peter Sobe 1
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen
MehrEinleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrALP I. Funktionale Programmierung
ALP I Funktionale Programmierung Typ-Klassen und SS 2011 Überladung von Datentypen Funktionen sollen oft auf verschiedene Datentypen anwendbar sein, aber nicht auf beliebige Datentypen. Beispiel: Die (+)
MehrObjektorientiertes Programmieren mit.net und C# Proseminar im Wintersemester 2010/2011 LINQ Verstehen und Einsetzen
Objektorientiertes Programmieren mit.net und C# Proseminar im Wintersemester 2010/2011 LINQ Verstehen und Einsetzen Georg Wagner Technische Universität München Abstract: LINQ ist eine Sammlung von Spracherweiterungen
MehrProgrammieren in Java
Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics
MehrVariablen und Parameter
D3kjd3Di38lk323nnm Variablen und Parameter Eine Variable repräsentiert einen Speicherbereich, der einen veränderbaren Wert enthält. Eine Variable kann eine lokale Variable, ein Parameter (value, ref oder
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrFunktionale Programmierung in Java
Funktionale Programmierung in Java Lambda Calculus Übersicht Geschichte Konzepte Lambda-Ausdrücke funktionale Interfaces Streams + Operations Methodenreferenzen Geschichte der funktionalen Programmierung
MehrObjektorientierte Datenbanken
OODB 11 Slide 1 Objektorientierte Datenbanken Vorlesung 11 Sebastian Iwanowski FH Wedel OODB 11 Slide 2 Wesentliche Eigenschaften von Hibernate Transparente Persistenz Transitive Persistenz (Persistenz
MehrASP.NET 3.5 mit AJAX
ASP.NET 3.5 mit AJAX von Patrick A. Lorenz, Jana Frank, Dr. Holger Schwichtenberg 1. Auflage Hanser München 2008 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 41199 9 Zu Leseprobe schnell und
MehrSchwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen
Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de
Mehr101 011 Madrid 01110 Amsterdam 0110 010 011011011 01 0110 01111010 01101 011011 0110 011
101 011 01110 0110 010 011011011 01 0110 01111010 01101 011011 0110 011 10 01101110 Jürgen 01110 Kotz 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 0110 0110 01110 011011101
MehrDatenbank-Programmierung mit Visual Basic 2012 (Buch + E-Book)
Datenbank-Programmierung mit Visual Basic 2012 (Buch + E-Book) Grundlagen, Rezepte, Anwendungsbeispiele von Walter Doberenz, Thomas Gewinnus 1. Auflage Datenbank-Programmierung mit Visual Basic 2012 (Buch
MehrObjektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen
Agenda für heute, 26. März, 2009 Imperatives vs. objektorientiertes Programmieren Lesen Sie den Begleittext Seite 79 85 Eines der drei wichtigsten Programmierparadigmen (Paradigma: Denkmuster) Imperative
Mehr~±] Inhalt. 1.1 Ähnlichkeiten zwischen C# und Java Unterschiede zwischen C# und Java Das.NET-Framework 4 1.
~±] 1 C# und das.net-framework 1 1.1 Ähnlichkeiten zwischen C# und Java 1 1.2 Unterschiede zwischen C# und Java 2 1.3 Das.NET-Framework 4 1.4 Übungsaufgaben 9 2 Erste Schritte 11 2.1 Hello World 11 2.2
MehrEin XML Dokument zeichnet sich im Wesentlichen durch seine baumartige Struktur aus:
RDF in wissenschaftlichen Bibliotheken 5HWULHYDODXI5') Momentan existiert noch keine standardisierte Anfragesprache für RDF Dokumente. Auf Grund der existierenden XML Repräsentation von RDF liegt es jedoch
MehrProf. Dr. Uwe Schmidt. 17. August Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353)
Prof. Dr. Uwe Schmidt 17. August 2010 Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353) Zeit: 150 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre
Mehr.NET 3.5. VB 008 d P. J HANSER WP,, I 008
Walter Doberenz, Matthias Fischer Jana Frank, Thomas Gewinnus Jorg Krause, Patrick A. Lorenz Jorg Neumann, Holger Schwichtenberg.NET 3.5 WP,, I 008 VB 008 d P. J HANSER 1.NET 3.5 und Visual Studio 2008
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrStack stack = new Stack(); stack.push ("Würstchen"); string s = (string) stack.pop(); Console.WriteLine (s);
D3kjd3Di38lk323nnm Der Typ object object (System.Object) ist die Ausgangsbasisklasse für alle Typen. Jeder Typ kann per Upcast in ein object umgewandelt werden. Um zu zeigen, wie das nützlich sein kann,
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
MehrInhaltsverzeichnis .NET 3.5. WPF, WCF, LINQ, C# 2008, VB 2008 und ASP.NET AJAX. Herausgegeben von Holger Schwichtenberg ISBN: 978-3-446-41045-9
sverzeichnis Walter Doberenz, Matthias Fischer, Jana Frank, Thomas Gewinnus, Jörg Krause, Patrick A. Lorenz, Jörg Neumann, Holger Schwichtenberg.NET 3.5 WPF, WCF, LINQ, C# 2008, VB 2008 und ASP.NET AJAX
MehrInhaltsverzeichnis. Vorwort... 15
Vorwort..................................................... 15 Kapitel 1.NET Framework.................................. 19 1.1 Geschichte................................... 19 1.2 Aufbau des.net Framework..................
MehrEinführung in die Programmierung
Einführung in die Programmierung Teil 10: Typsicherheit durch generische Typen Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Grundlagen 2. Typvariablen 3.
MehrDynamische Webseiten mit PHP. Oder: LAMP - The open way
Dynamische Webseiten mit PHP Oder: LAMP - The open way Verbreitung Neben ASP verbreitetste Web-Scripting-Umgebung LAMP (Linux, Apache, mysql, PHP): freie Alternative zu M$ Überblick Dynamische Webseiten
MehrEinführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
Mehr