SlideShare une entreprise Scribd logo
1  sur  19
05 | Data Access with Entity Framework 
Bruno Terkaly | Technical Evangelist 
Bret Stateham | Technical Evangelist
Module Overview 
• Entity Data Models 
• Developer Workflows 
• WCF Data Services
Entity Data Models
Object/Relational Mappers (ORMs) 
Model / Classes 
Relational Database 
{;} {;} {;} 
Object/Relational Mapper
Entity Framework Designer Models 
Model / Classes 
Entity Framework 
Conceptual Schema Definition Language (CSDL) 
Mapping Specification Language (MSL) 
Store Schema Definition Language (SSDL) 
EDMX 
Relational Database 
{;} {;} {;}
Entity Framework Architecture 
Model / Classes 
Entity Framework 
Object Services (DbContext) 
Entity Client (ado.net / Entity SQL) 
Entity Framework Data Providers (SQL Server…) 
Relational Database 
{;} {;} {;}
Get it With NuGet. Got It? 
• Entity Framework 6 is RTM 
• EntityFramework.codeplex.com 
– Open Source 
– Nightly Builds 
– Accept pull requests from the community 
• Installable from NuGet 
– Release versions 
– Pre-Release if you choose to include them
Entity Framework Data Providers 
• Microsoft Ships support for 
– Microsoft SQL Server 
(Via the EntityFramework NuGet Package) 
– Microsoft SQL Server Compact Edition 
(Via the EntityFramework.SqlServerCompact NuGet Package) 
• 3rd Party Providers 
– DevArt dotConnect Data Providers (devart.com) 
• Oracle 
• MySQL 
• SQLite 
• others 
– Firebird (FirebirdSQL.org)
Developer Workflows
Entity Framework Workflows 
New Database 
Existing Database 
Use Designer Write Code 
Model First: 
• Create your model in the designer 
• Database is generated from model 
• Classes are generated from model 
• Can update model 
• Database updates replace old objects 
Database First: 
• Reverse engineer existing database 
• Designer generates model 
• Classes are generated off the model 
• You can update the database 
• You can modify the classes / mapping 
Code First: 
• Create your classes in code 
• Mappings are defined in code 
• Database is generated from code 
• Updates are done using “migrations” 
Code Second: (not an official name) 
• Create your classes in code 
• Use Entity Framework Power Tools 
• Reverse engineer model in designer
Database First 
New Database 
Existing Database 
Use Designer Write Code 
Model First: 
• Create your model in the designer 
• Database is generated from model 
• Classes are generated from model 
• Can update model 
• Database updates replace old objects 
Database First: 
• Reverse engineer existing database 
• Designer generates model 
• Classes are generated off the model 
• You can update the database 
• You can modify the classes / mapping 
Code First: 
• Create your classes in code 
• Mappings are defined in code 
• Database is generated from code 
• Updates are done using “migrations” 
Code Second: (not an official name) 
• Create your classes in code 
• Use Entity Framework Power Tools 
• Reverse engineer model in designer
DEMO 
Database First Workflow
Code First Workflow 
New Database 
Existing Database 
Use Designer Write Code 
Model First: 
• Create your model in the designer 
• Database is generated from model 
• Classes are generated from model 
• Can update model 
• Database updates replace old objects 
Database First: 
• Reverse engineer existing database 
• Designer generates model 
• Classes are generated off the model 
• You can update the database 
• You can modify the classes / mapping 
Code First: 
• Create your classes in code 
• Mappings are defined in code 
• Database is generated from code 
• Updates are done using “migrations” 
Code Second: (not an official name) 
• Create your classes in code 
• Use Entity Framework Power Tools 
• Reverse engineer model in designer
DEMO 
Code First Workflow
WCF Data Services
OData Where Art Though? 
• OData is a protocol for creating and consuming data APIs 
• Check it out at OData.org 
• Provides a standard way to use REST to expose & consume data
WCF Data Services 
• A convenient way to create OData services 
• Can expose most any model as Odata 
• Entity Framework is a great way to build your models 
• WCF Data Services 5.6.0 Available via NuGet 
– WCF Data Services Server – Microsoft.Data.Services 
– WCF Data Services Client – Microsoft.Data.Services.Client 
• Access Data using URIs or a Client Library 
– OData Query String Options
DEMO 
Creating and Consuming a WCF Data Service
©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in 
the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because 
Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information 
provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Contenu connexe

Tendances

Introducing the Entity Framework
Introducing the Entity FrameworkIntroducing the Entity Framework
Introducing the Entity FrameworkLearnNowOnline
 
Survey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data LandscapeSurvey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data LandscapeIke Ellis
 
U-SQL Learning Resources (SQLBits 2016)
U-SQL Learning Resources (SQLBits 2016)U-SQL Learning Resources (SQLBits 2016)
U-SQL Learning Resources (SQLBits 2016)Michael Rys
 
Providers
ProvidersProviders
ProvidersBeMyApp
 
Entity framework introduction sesion-1
Entity framework introduction   sesion-1Entity framework introduction   sesion-1
Entity framework introduction sesion-1Usama Nada
 
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014NoSQLmatters
 
NoSQL Now! Webinar Series: Innovations in NoSQL Query Languages
NoSQL Now! Webinar Series: Innovations in NoSQL Query Languages  NoSQL Now! Webinar Series: Innovations in NoSQL Query Languages
NoSQL Now! Webinar Series: Innovations in NoSQL Query Languages DATAVERSITY
 
JIRA Development
JIRA DevelopmentJIRA Development
JIRA DevelopmentSperasoft
 
SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.Denis Reznik
 
Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Ike Ellis
 
Entity Framework Core 2.1: Simple, Powerful Data Access for .NET
Entity Framework Core 2.1: Simple, Powerful Data Access for .NETEntity Framework Core 2.1: Simple, Powerful Data Access for .NET
Entity Framework Core 2.1: Simple, Powerful Data Access for .NETMicrosoft Tech Community
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDBIke Ellis
 
Slick - The Structured Way
Slick - The Structured WaySlick - The Structured Way
Slick - The Structured WayYennick Trevels
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework OverviewEyal Vardi
 

Tendances (20)

Introducing the Entity Framework
Introducing the Entity FrameworkIntroducing the Entity Framework
Introducing the Entity Framework
 
Survey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data LandscapeSurvey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data Landscape
 
U-SQL Learning Resources (SQLBits 2016)
U-SQL Learning Resources (SQLBits 2016)U-SQL Learning Resources (SQLBits 2016)
U-SQL Learning Resources (SQLBits 2016)
 
Providers
ProvidersProviders
Providers
 
Entity framework introduction sesion-1
Entity framework introduction   sesion-1Entity framework introduction   sesion-1
Entity framework introduction sesion-1
 
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
 
NoSQL Now! Webinar Series: Innovations in NoSQL Query Languages
NoSQL Now! Webinar Series: Innovations in NoSQL Query Languages  NoSQL Now! Webinar Series: Innovations in NoSQL Query Languages
NoSQL Now! Webinar Series: Innovations in NoSQL Query Languages
 
JIRA Development
JIRA DevelopmentJIRA Development
JIRA Development
 
SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.SQL vs. NoSQL. It's always a hard choice.
SQL vs. NoSQL. It's always a hard choice.
 
iForum 2015: SQL vs. NoSQL
iForum 2015: SQL vs. NoSQLiForum 2015: SQL vs. NoSQL
iForum 2015: SQL vs. NoSQL
 
Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4
 
Entity Framework Core 2.1: Simple, Powerful Data Access for .NET
Entity Framework Core 2.1: Simple, Powerful Data Access for .NETEntity Framework Core 2.1: Simple, Powerful Data Access for .NET
Entity Framework Core 2.1: Simple, Powerful Data Access for .NET
 
.Net Fundamentals
.Net Fundamentals.Net Fundamentals
.Net Fundamentals
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
 
Linq
LinqLinq
Linq
 
Slick - The Structured Way
Slick - The Structured WaySlick - The Structured Way
Slick - The Structured Way
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
 
Introduction to RavenDB
Introduction to RavenDBIntroduction to RavenDB
Introduction to RavenDB
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework Overview
 

En vedette

Introduction to C#
Introduction to C#Introduction to C#
Introduction to C#Vadym Melnyk
 
Control structures selection
Control structures   selectionControl structures   selection
Control structures selectionOnline
 
C++ programming program design including data structures
C++ programming program design including data structures C++ programming program design including data structures
C++ programming program design including data structures Ahmad Idrees
 
Selection Statements in C Programming
Selection Statements in C ProgrammingSelection Statements in C Programming
Selection Statements in C ProgrammingKamal Acharya
 

En vedette (6)

Introduction to C#
Introduction to C#Introduction to C#
Introduction to C#
 
Control structures selection
Control structures   selectionControl structures   selection
Control structures selection
 
C++ programming program design including data structures
C++ programming program design including data structures C++ programming program design including data structures
C++ programming program design including data structures
 
Electrical circuit
Electrical circuitElectrical circuit
Electrical circuit
 
Selection Statements in C Programming
Selection Statements in C ProgrammingSelection Statements in C Programming
Selection Statements in C Programming
 
Microsoft C# programming basics
Microsoft C# programming basics  Microsoft C# programming basics
Microsoft C# programming basics
 

Similaire à 05 entity framework

Entity Framework Core 1.0
Entity Framework Core 1.0Entity Framework Core 1.0
Entity Framework Core 1.0Senthil Kumar
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...Malin Weiss
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...Speedment, Inc.
 
Making Data Scientists Productive in Azure
Making Data Scientists Productive in AzureMaking Data Scientists Productive in Azure
Making Data Scientists Productive in AzureValdas Maksimavičius
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsTeamstudio
 
201908 Overview of Automated ML
201908 Overview of Automated ML201908 Overview of Automated ML
201908 Overview of Automated MLMark Tabladillo
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Talbott Crowell
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesVagif Abilov
 
An introduction to QuerySurge webinar
An introduction to QuerySurge webinarAn introduction to QuerySurge webinar
An introduction to QuerySurge webinarRTTS
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government DevelopersFrank La Vigne
 
Making Data Science Scalable - 5 Lessons Learned
Making Data Science Scalable - 5 Lessons LearnedMaking Data Science Scalable - 5 Lessons Learned
Making Data Science Scalable - 5 Lessons LearnedLaurenz Wuttke
 
Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the DatabaseMichaela Murray
 
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkSandeep Adwankar
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity frameworkMaxim Shaptala
 
How to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseHow to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseSpeedment, Inc.
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSpeedment, Inc.
 

Similaire à 05 entity framework (20)

Entity Framework Core 1.0
Entity Framework Core 1.0Entity Framework Core 1.0
Entity Framework Core 1.0
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
 
Making Data Scientists Productive in Azure
Making Data Scientists Productive in AzureMaking Data Scientists Productive in Azure
Making Data Scientists Productive in Azure
 
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 2
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 2(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 2
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 2
 
70487.pdf
70487.pdf70487.pdf
70487.pdf
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
 
201908 Overview of Automated ML
201908 Overview of Automated ML201908 Overview of Automated ML
201908 Overview of Automated ML
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class Libraries
 
An introduction to QuerySurge webinar
An introduction to QuerySurge webinarAn introduction to QuerySurge webinar
An introduction to QuerySurge webinar
 
Ow
OwOw
Ow
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
 
Making Data Science Scalable - 5 Lessons Learned
Making Data Science Scalable - 5 Lessons LearnedMaking Data Science Scalable - 5 Lessons Learned
Making Data Science Scalable - 5 Lessons Learned
 
Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the Database
 
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and Framework
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity framework
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity framework
 
How to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseHow to generate customized java 8 code from your database
How to generate customized java 8 code from your database
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
 

Plus de Bat Programmer

04 data accesstechnologies
04 data accesstechnologies04 data accesstechnologies
04 data accesstechnologiesBat Programmer
 
02 hosting servicesinwindowsazure
02 hosting servicesinwindowsazure02 hosting servicesinwindowsazure
02 hosting servicesinwindowsazureBat Programmer
 
1. WCF Services - Exam 70-487
1. WCF Services - Exam 70-4871. WCF Services - Exam 70-487
1. WCF Services - Exam 70-487Bat Programmer
 
Guide to MCPD - Web Developer 4
Guide to MCPD - Web Developer 4Guide to MCPD - Web Developer 4
Guide to MCPD - Web Developer 4Bat Programmer
 

Plus de Bat Programmer (7)

07 advanced topics
07 advanced topics07 advanced topics
07 advanced topics
 
06 web api
06 web api06 web api
06 web api
 
04 data accesstechnologies
04 data accesstechnologies04 data accesstechnologies
04 data accesstechnologies
 
03 data storage
03 data storage03 data storage
03 data storage
 
02 hosting servicesinwindowsazure
02 hosting servicesinwindowsazure02 hosting servicesinwindowsazure
02 hosting servicesinwindowsazure
 
1. WCF Services - Exam 70-487
1. WCF Services - Exam 70-4871. WCF Services - Exam 70-487
1. WCF Services - Exam 70-487
 
Guide to MCPD - Web Developer 4
Guide to MCPD - Web Developer 4Guide to MCPD - Web Developer 4
Guide to MCPD - Web Developer 4
 

05 entity framework

  • 1. 05 | Data Access with Entity Framework Bruno Terkaly | Technical Evangelist Bret Stateham | Technical Evangelist
  • 2. Module Overview • Entity Data Models • Developer Workflows • WCF Data Services
  • 4. Object/Relational Mappers (ORMs) Model / Classes Relational Database {;} {;} {;} Object/Relational Mapper
  • 5. Entity Framework Designer Models Model / Classes Entity Framework Conceptual Schema Definition Language (CSDL) Mapping Specification Language (MSL) Store Schema Definition Language (SSDL) EDMX Relational Database {;} {;} {;}
  • 6. Entity Framework Architecture Model / Classes Entity Framework Object Services (DbContext) Entity Client (ado.net / Entity SQL) Entity Framework Data Providers (SQL Server…) Relational Database {;} {;} {;}
  • 7. Get it With NuGet. Got It? • Entity Framework 6 is RTM • EntityFramework.codeplex.com – Open Source – Nightly Builds – Accept pull requests from the community • Installable from NuGet – Release versions – Pre-Release if you choose to include them
  • 8. Entity Framework Data Providers • Microsoft Ships support for – Microsoft SQL Server (Via the EntityFramework NuGet Package) – Microsoft SQL Server Compact Edition (Via the EntityFramework.SqlServerCompact NuGet Package) • 3rd Party Providers – DevArt dotConnect Data Providers (devart.com) • Oracle • MySQL • SQLite • others – Firebird (FirebirdSQL.org)
  • 10. Entity Framework Workflows New Database Existing Database Use Designer Write Code Model First: • Create your model in the designer • Database is generated from model • Classes are generated from model • Can update model • Database updates replace old objects Database First: • Reverse engineer existing database • Designer generates model • Classes are generated off the model • You can update the database • You can modify the classes / mapping Code First: • Create your classes in code • Mappings are defined in code • Database is generated from code • Updates are done using “migrations” Code Second: (not an official name) • Create your classes in code • Use Entity Framework Power Tools • Reverse engineer model in designer
  • 11. Database First New Database Existing Database Use Designer Write Code Model First: • Create your model in the designer • Database is generated from model • Classes are generated from model • Can update model • Database updates replace old objects Database First: • Reverse engineer existing database • Designer generates model • Classes are generated off the model • You can update the database • You can modify the classes / mapping Code First: • Create your classes in code • Mappings are defined in code • Database is generated from code • Updates are done using “migrations” Code Second: (not an official name) • Create your classes in code • Use Entity Framework Power Tools • Reverse engineer model in designer
  • 13. Code First Workflow New Database Existing Database Use Designer Write Code Model First: • Create your model in the designer • Database is generated from model • Classes are generated from model • Can update model • Database updates replace old objects Database First: • Reverse engineer existing database • Designer generates model • Classes are generated off the model • You can update the database • You can modify the classes / mapping Code First: • Create your classes in code • Mappings are defined in code • Database is generated from code • Updates are done using “migrations” Code Second: (not an official name) • Create your classes in code • Use Entity Framework Power Tools • Reverse engineer model in designer
  • 14. DEMO Code First Workflow
  • 16. OData Where Art Though? • OData is a protocol for creating and consuming data APIs • Check it out at OData.org • Provides a standard way to use REST to expose & consume data
  • 17. WCF Data Services • A convenient way to create OData services • Can expose most any model as Odata • Entity Framework is a great way to build your models • WCF Data Services 5.6.0 Available via NuGet – WCF Data Services Server – Microsoft.Data.Services – WCF Data Services Client – Microsoft.Data.Services.Client • Access Data using URIs or a Client Library – OData Query String Options
  • 18. DEMO Creating and Consuming a WCF Data Service
  • 19. ©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Notes de l'éditeur

  1. 1