C# 3.0 e LINQ

Post on 05-Jul-2015

450 views 2 download

description

"Microsoft .NET Framework tra presente e futuro", DotNetToscana http://www.dotnettoscana.org/net-presente-futuro.aspx

Transcript of C# 3.0 e LINQ

Microsoft .NET Framework tra presente e futuro

Andrea AngellaDott. in Ingegneria InformaticaEmail: andrea.angella@dotnettoscana.orgBlog: http://blogs.ugidotnet.org/angellaa

Introduzione a LINQ

Rapida rivisitazione di C# 2.0

Nuove caratteristiche di C# 3.0

LINQ to Object

LINQ to SQL

Altre implementazioni di LINQ

Domande e risposte

2

3

C# 3.0 VB 9.0 Altri…

.NET Language Integrated Query

LINQ to Objects LINQ to SQL LINQ to Xml LINQ to X

Grafo di oggetti

DatabaseSQL Server

<university><studente /><studente />

</university>

Documento XML

?

4

5

Introduzione a LINQ

Rapida rivisitazione di C# 2.0

Nuove caratteristiche del C# 3.0

LINQ to Object

LINQ to SQL

Altre implementazioni di LINQ

Domande e risposte

6

TypeInference

7

8

AnonymousMethod

9

Introduzione a LINQ

Rapida rivisitazione del C# 2.0

Nuove caratteristiche di C# 3.0

LINQ to Object

LINQ to SQL

Altre implementazioni di LINQ

Domande e risposte

10

11

12

13

14

15

Lo sviluppatore non conosce il nome del tipo

generato

16

17

Cosa fà questo statement ?

18

19

Local TypeInference

ExtensionMethods Anonymous

Type

Lambda Expression

Object InitializationExpression

20

Introduzione a LINQ

Rapida rivisitazione di C# 2.0

Nuove caratteristiche del C# 3.0

LINQ to Object

LINQ to SQL

Altre implementazioni di LINQ

Domande e risposte

21

Extension Methodssu IEnumerable<T>

22

Proiezione: select

Restrizione: where

Ordinamento: orderby

Raggruppamento: group by

Di join: join

Insiemistici: Distinct, Union, Intersect, Except

Aggregazione: Count, Sum, Min, Max, Average, Aggregate

Generazione: Range, Repeat, Empty

Quantificazione: Any, All, Contains

Partizionamento: Take, TakeWhile, Skip, SkipWhile

Elemento: First, Last, Single, ElementAt, DefaultIfEmpty

Conversione: AsEnumerable, ToArray, ToList, ToDictionary, ToLookup, OfType, Cast

Supportati dalle Query Expression

23

Proiezione di una

collection

24

Operatori logici

SubQuery

25

Ordinamento multiplo

26

Campo di raggruppamento

27

28

Operatore di aggregazione

Operatori di partizionamento

29

Modifica della sorgente dati

30

Operatore di conversione

31

32

33

Introduzione a LINQ

Rapida rivisitazione di C# 2.0

Nuove caratteristiche del C# 3.0

LINQ to Object

LINQ to SQL

Altre implementazioni di LINQ

Domande e risposte

34

LINQ to SQL

Schema del databaseModello a oggetti

Mapping 1 a 1

35

36

Pensando in SQL (approccio relazionale)◦ Utilizzando operatori di join

Pensando in LINQ (approccio object oriented)◦ Navigando tra le entity sfruttando le relazioni

37

Inserimento

Modifica

Conferma le modifiche

38

Introduzione a LINQ

Rapida rivisitazione di C# 2.0

Nuove caratteristiche del C# 3.0

LINQ to Object

LINQ to SQL

Altre implementazioni di LINQ

Domande e risposte

39

Supportate da Microsoft◦ LINQ to Dataset◦ LINQ to XML◦ LINQ to Entities◦ Parallel LINQ

Supportate dalla community◦ LINQ to Amazon◦ LINQ to Flickr◦ LINQ to Google◦ LINQ to Active Directory◦ LINQ to Lucene◦ LINQ to Excel◦ LINQ to WMI◦ …

40

1. LINQ mi offre un modello uniforme per interrogare qualsiasi sorgente dati

2. LINQ mi permette di scrivere le query con un approccio dichiarativo e naturale

3. LINQ è completamente supportato da VisualStudio 2008 e questo aumenta in maniera eccezionale la mia produttività

4. LINQ to SQL mi offre la possibilità di pensare in modo object-oriented quando interagisto con il database relazione SQL Server

Percorso formativo“LINQ e le novità dei linguaggi .NET”◦ http://msdn.microsoft.com/it-it/vbasic/cc299390.aspx

LINQ Italia◦ http://www.linqitalia.com/

“Programming Microsoft LINQ”◦ Paolo Pialorsi e Marco Russo

◦ Disponibile anche in Italiano

41

Andrea AngellaDott. in Ingegneria InformaticaEmail: andrea.angella@dotnettoscana.orgBlog: http://blogs.ugidotnet.org/angellaa