Sie sind auf Seite 1von 40

CodeFluent Entities

et l'ADO.NET
Entity Framework

Comprendre le positionnement relatif
Equipe R&D
Juillet 2014

Juillet 2014
CodeFluent Entities et Entity Framework Page 2
Table des matires

I. INTRODUCTION: OBJECTIFS DU DOCUMENT ............................................................................................ 3
II. VUE DENSEMBLE ..................................................................................................................................... 4
A. QUEST-CE QUADO.NET ENTITY FRAMEWORK ?................................................................................................. 4
B. QUEST-CE QUE CODEFLUENT ENTITIES ? ............................................................................................................ 5
C. EN RESUME.................................................................................................................................................... 6
D. FEUILLE DE ROUTE ACTUELLE ET PASSEE ............................................................................................................... 7
E. CE QUADO.NET ENTITY FRAMEWORK APPORTE ................................................................................................. 9
F. CE QUE CODEFLUENT ENTITIES APPORTE ............................................................................................................. 9
G. INTEGRATION DANS VISUAL STUDIO .................................................................................................................. 11
1. Entity Framework ................................................................................................................................ 11
2. CodeFluent Entities .............................................................................................................................. 11
III. COMPARAISON DES SCHEMAS DE REFERENCE ....................................................................................... 12
A. VUE DENSEMBLE DES CONCEPTS ...................................................................................................................... 12
1. Entity Framework ................................................................................................................................ 12
2. CodeFluent Entities .............................................................................................................................. 12
B. VUE D'ENSEMBLE DES CONCEPTS CLES ............................................................................................................... 13
1. Entity Framework ................................................................................................................................ 13
2. CodeFluent Entities .............................................................................................................................. 14
C. ATTRIBUTS DENTITE ET DE PROPRIETE ............................................................................................................... 15
1. Entit - Entity Framework .................................................................................................................... 15
2. Entit - CodeFluent Entities .................................................................................................................. 16
3. Proprit - Entity Framework............................................................................................................... 17
4. Proprit - CodeFluent Entities ............................................................................................................ 19
IV. FONCTIONNALITES EXCLUSIVES ......................................................................................................... 21
A. EDITEUR GRAPHIQUE ..................................................................................................................................... 21
1. Rendu vectoriel .................................................................................................................................... 21
2. Moteur de recherche de forme ............................................................................................................ 23
3. Modlisation Multi-Surface ................................................................................................................. 24
4. Model Grid ..................................................................................................................................... 25
B. MODELISATION AVANCEE ............................................................................................................................... 26
1. Format de stockage lisible ................................................................................................................... 26
2. Stockage Multi-Fichier ......................................................................................................................... 26
3. Editeur de rgles .................................................................................................................................. 27
4. Editeur de formulaire Indpendant de la plateforme .......................................................................... 28
5. Aspects et modlisation dynamique .................................................................................................... 29
C. DBA-FRIENDLY ....................................................................................................................................... 30
1. Gnration continue et Moteur de diffrence ..................................................................................... 30
2. Vues persistantes ................................................................................................................................. 31
3. Convention de nommage ..................................................................................................................... 31
V. DEFIS "OUVERTS" POUR ENTITY FRAMEWORK ET LES ORMS ................................................................. 32
VI. RESSOURCES ...................................................................................................................................... 40


Juillet 2014
CodeFluent Entities et Entity Framework Page 3
I. Introduction: Objectifs du document
En tant quditeur de logiciel offrant une solution complte pour le dveloppement dapplications
.NET, y compris pour la production d'une couche mtier relie la base de donnes, nous continuons
de recevoir des questions sur le positionnement de CodeFluent Entities par rapport ADO.NET Entity
Framework.
A vrai dire, on voit de plus en plus darticles positionnant Entity Framework comme tant la solution
ultime daccs aux donnes dans Microsoft .NET. La ralit sur le terrain est un peu diffrente car il y
a aujourd'hui de nombreuses solutions pour accder aux donnes en .NET, la plus utilise et la plus
prouve pour les applications de Business tant tout simplement l'ADO.NET "classique", sur laquelle
tous les outils peuvent reposer.
Les techniques de Mapping Objet Relationnel tant devenues populaires, ADO .NET Entity Framework
est susceptible de devenir l'ORM le plus populaire sur la plate-forme de Microsoft. Cependant, les
outils dORMs ne traitent qu'un aspect d'accs aux donnes. Au-del, vous devrez faire face
beaucoup de dfis techniques pour fournir des applications qui rpondent, de manire efficace, aux
besoins de vos utilisateurs.
Ce document va vous fournir plus de dtails la fois sur CodeFluent Entities et sur ADO .NET Entity
Framework dun point de vue technique. Cela vous permettra donc de mieux comprendre le
positionnement, et les diffrences entre ces deux produits.
SoftFluent 2011-2014 Ne pas copier sans autorisation.
CodeFluent Entities est une marque dpose de SoftFluent. Tous les autres noms de produits sont des
marques commerciales ou des marques dposes auprs de leurs dtenteurs respectifs.
Le contenu de ce prsent document est sujet par nature au changement, n'est pas contractuel et il est
diffus des fins d'information gnrale.

Juillet 2014
CodeFluent Entities et Entity Framework Page 4
II. Vue densemble
A. Quest-ce quADO.NET Entity Framework ?
"ADO.Net Entity Framework de Microsoft est un Framework de Mapping Objet Relationnel
(Object/Relational Mapping - ORM) qui permet aux dveloppeurs de travailler avec des donnes
relationnelles spcifiques au domaine mtier, ce qui permet dliminer la plupart du code de
plomberie daccs aux donnes que les dveloppeurs ont gnralement besoin d'crire. En utilisant
Entity Framework, les dveloppeurs utilisent des requtes LINQ, pour extraire et manipuler les
donnes sous forme dobjets fortement typs. La mise en uvre dEntity Framework fournit des
services comme le suivi des modifications, la rsolution d'identit, le Lazy Loading , et la traduction
des requtes (LINQ en SQL) afin que les dveloppeurs puissent se concentrer sur leur application
mtier plutt que sur les principes fondamentaux d'accs aux donnes.
Vue d'ensemble des possibilits offertes par Entity Framework :
* Fonctionne avec une diversit de serveurs de bases de donnes (incluant Microsoft SQL Server,
Oracle et DB2)
* Contient un moteur de mapping riche, qui permet de grer les schmas de bases de donnes et
fonctionne bien avec les procdures stockes
* Fournit des outils intgrs Visual Studio pour crer visuellement des modles d'entits et auto-
gnrer des modles partir d'une base de donnes existante. Les nouvelles bases de donnes
peuvent tre dployes partir d'un modle, et peuvent aussi tre modifies manuellement pour un
contrle total
* Fournit un environnement Code First pour crer des modles dentits partir de code source.
Code First peut tre li une base de donnes existante ou gnrer une base de donnes depuis
le modle.
* Sintgre tous les modles d'application .NET, incluant ASP.NET, Windows Presentation Foundation
(WPF), Windows Communication Foundation (WCF), et WCF Data Services (anciennement ADO.NET
Data Services)
Entity Framework est bas sur le modle de provider d'ADO.NET. Les providers existants sont
rgulirement mis jour pour prendre en charge les dernires fonctionnalits d'Entity Framework.
Ainsi, les applications bases sur ADO.NET peuvent tre facilement portes sur Entity Framework tout
en conservant un modle de programmation similaire ADO.NET
Source: http://msdn.microsoft.com/en-us/data/aa937709

Juillet 2014
CodeFluent Entities et Entity Framework Page 5

B. Quest-ce que CodeFluent Entities ?
CodeFluent Entities est un produit unique, intgr Visual Studio 2008/2010/2012/2013, qui permet
aux dveloppeurs de gnrer des composants tels que des scripts de bases de donnes (T-SQL, PL/SQL,
MySQL, Pg/SQL, etc.), du code (C#, VB.NET), des services web (WCF, JSON/REST) et des interfaces
utilisateurs (Windows 8, ASP.NET, MVC, SharePoint, WPF).
Le processus de gnration du code est bas sur le principe Model-First et se passe en continu partir
de votre modle dclaratif, le mta-modle tant traduit en code grce des gnrateurs de code.
Plus de 20 gnrateurs de code (ou Producteurs) sont fournis et peuvent tre combins entre eux pour
crer vos propres applications qui suivent larchitecture que vous souhaitez, et tout cela en utilisant
les technologies de votre choix.
Le dveloppement de votre application est pilot par ce modle, votre logique mtier est dcouple
de la technologie et vous permet d'absorber rapidement et en douceur les changements. Appliquer
des modifications votre modle mettra jour automatiquement toutes vos couches en continu.
Ajouter ou changer une technologie se fait simplement, principalement en changeant la configuration
des gnrateurs de code.
CodeFluent Entities est conu pour la plate-forme .NET et permet aux utilisateurs de rationaliser les
dveloppements sur les plates-formes de Microsoft telles que SharePoint, SQL Server, C#, VB.NET,
WCF, ASP.NET, WPF, les plates-formes mobiles et bien plus encore.
Le produit stend aussi vers des territoires non-Microsoft, tels quOracle Database, MySQL et
PostgreSQL.
CodeFluent Entities peut tre vu comme un sur-ensemble de ce qu'Entity Framework fournit (bien que
CodeFluent Entities ne repose directement sur aucune partie dEntity Framework).
Larchitecte commence par dfinir un modle mtier dans un endroit centralis, il choisit ensuite une
plate-forme cible pour la gnration ou une technologie (ne se limitant pas l'accs aux donnes), il
ne lui reste alors plus qu gnrer, et il peut le faire en permanence autant de fois que ncessaire, au
fil de lvolution du modle et sans perdre les donnes prcdemment sauvegardes.
Les dveloppeurs nont plus qu crire du code focalis sur les aspects mtiers et des interfaces
utilisateurs personnalises, en s'appuyant la fois sur les objets fortement typs qui ont t gnrs
par CodeFluent Entities, et sur les nombreuses bibliothques de class et contrle d'IHM fournies dans
la bibliothque Runtime de CodeFluent Entities, une bibliothque disponible gratuitement.
Vue d'ensemble des possibilits offertes par CodeFluent Entities :
Dfinit plus de 40 concepts indpendants de la plate-forme pour la conception d'applications
(les entits, les proprits, les mthodes, les formulaires, les rgles, les instances ...),
Gnre automatiquement des fichiers spcifiques une plate-forme partir de ces concepts :
schmas de bases de donnes, tables, colonnes, contraintes, vues, procdures stockes et les
donnes dinitialisations, la couche .NET d'accs aux donnes correspondantes, les services
WCF, la configuration et les Proxies, les rgles, la documentation, les artefacts d'IHM,
Fonctionne et s'intgre avec une varit de technologies (qui comprend Microsoft SQL Server,
SQL Azure, Oracle Database, ASP.NET, SharePoint, Excel, WPF, Silverlight, Windows Forms,
WCF),
Juillet 2014
CodeFluent Entities et Entity Framework Page 6
Fournit des outils intgrs Visual Studio pour crer visuellement des modles, importer des
modles partir de modles existants (base de donnes, diagramme UML, et des modles
dEntity Framework), et enfin pour gnrer tous les fichiers spcifiques une plateforme
partir de ces modles,
Autorise l'architecte dfinir des Aspects pour dfinir des comportements et des contraintes
spcifiques aux entits du modle. Par exemple, l'Aspect localisation fourni dans
CodeFluent Entities permet la localisation des colonnes dans la base de donnes sans aucun
travail supplmentaire. Le principe d'un aspect est qu'il est dfini une seule fois et peut
s'appliquer sur l'ensemble du modle.


C. En rsum
LADO .NET Entity Framework est un ORM et cest une nouvelle solution fournie par Microsoft pour
accder aux donnes, au-dessus dADO.NET, en minimisant l'criture manuelle de SQL. Comme son
nom lindique, lADO.NET Entity Framework se concentre aujourdhui exclusivement sur la partie accs
aux donnes et en particulier pour SQL Server. D'autres implmentations de bases de donnes sont
fournies seulement par des tierces parties.
Bien qu'il soit un bon outil pour accder aux donnes, les dveloppeurs ont tout de mme besoin de
beaucoup plus que l'accs aux donnes bas sur du mapping pour disposer d'une application complte.
Et c'est l que CodeFluent Entities entre en jeu.
L'ide est que CodeFluent Entities va gnrer tout le code de bas niveau rcurrent, mais ncessaire,
de lapplication, et il peut galement gnrer toutes les couches de lapplication et la plomberie entre
chacune dentre elles. Il peut galement gnrer des fonctionnalits plus complexes telles que la
scurit, l'internationalisation, la mise en cache, la recherche, la validation des donnes, et bien plus
encore Et tout cela se fait sans aucune ligne de code et sans utiliser doutils supplmentaires.
En fin de compte, plus qu'un outil d'accs aux donnes, CodeFluent Entities vous permet de contrler
la production de code de toutes les couches de l'application, qui leur tour fournissent une structure
de travail pour l'quipe, ce qui minimise les risques et amliore la visibilit. En outre, grce son
modle centralis et indpendant de la plate-forme, votre logique mtier est dcouple de la
Juillet 2014
CodeFluent Entities et Entity Framework Page 7
technologie et vous permet d'absorber en douceur les changements fonctionnels, tout en tant prt
absorber les futurs changements technologiques.
CodeFluent Entities ne repose pas sur un ORM embarqu ni sur aucun outil tiers de ce type. Il ne se
base que sur ADO.NET. Pour des scnarios spcifiques qui ncessiteraient absolument la gnration
de SQL dynamique, le produit fournit en standard deux producteurs spcifiques :
1) Un producteur Linq-To-Sql , capable dajouter les attributs customs .NET ncessaire la
prise en charge de Linq-To-Sql, automatiquement,
2) Un producteur Entity Framework permettant de gnrer un fichier .EDMX
automatiquement partir dun modle CodeFluent Entities.
Un importeur Entity Framework est galement disponible, il permet de rutiliser le travail dj fourni
dans un modle Entity Framework existant.
D. Feuille de route actuelle et passe
CodeFluent Entities est prsent sur le march depuis 2005. Des clients ont donc en production des
applications dveloppes avec CodeFluent Entities depuis des annes et ils ont dj pu effectuer des
sauts technologiques facilits par l'approche de gnration. La feuille de route suivante (mise jour
Juin 2014) dmontre ltendue technologique couverte par le produit
Juillet 2014
CodeFluent Entities et Entity Framework Page 8



2005-2006
CodeFluent 1.0 (SQL
Server, modle objet,
cache, producteur web
1.0)
Mise jour du moteur
CodeFluent Entities
Producteur WebService
V1.0
Synchronisation MS Excel
Producteur de Templates
(gnrique)
2007-2008
Mise jour du moteur
Rgles mtiers (validation,
etc)
Producteur WCF
Dynamic Modeling et
localisation
LinqToSQL et SQL Server
2008
Synchronisation MS
Access 2007
Importeurs SQL Server,
Orable, OleDB, Access et
SQL CE
Providers Membership,
Role et Profile (ASP.NET,
WCF)
2009
Producteur client
intelligent / WPF
Producteur WSS 3.0
Producteur Silverlight
Importeur Sparx
Enterprise Architect
Support 64-bit
2010
Producteur Oracle
Importeur Entity
Framework
Importeur UML/XMI
Synchronisation MS
Access & Excel 2010
Support de SharePoint
2010
Modeleur CodeFluent
Entities Beta RC
2011
Producteur Entity
Framework
Producteur d'auto
documentation
Producteur SQL Server et
BLOB pour Azure
Producteur SharePoint
Support des plateformes
mobiles (JSON/REST)
Importeur MySQL
CodeFluent Entities
Modeler 1.0
Support et gnration de
VB.NET
2012
Producteur Windows
Store
Producteur Oracle, SQL
Azure (moteur de diff.)
Producteur MySQL,
PostgreSQL
Producteur ASP.NET 2.5
(ajax, forms, mvc)
Producteur WCF (ajax)
Importeur MySQL,
PostgreSQL, SQLite
CodeFluent Entities
Modeler et Importer
(amliorations et
VisualStudio 2013)
Producteur SQL Server
2012
Aspects personnaliss
2013-2014
Amliorations sur
CodeFluent Entities
Modeler
Producteur Pivot Sql
Server
Producteur SQL Server
2014
Mise jour de CodeFluent
Runtime Client
Producteur MariaDB
Support Visual Studio
2013
Juillet 2014
CodeFluent Entities et Entity Framework Page 9
E. Ce quADO.NET Entity Framework apporte
"Entity Framework vous permet de crer un modle en crivant du code ou en utilisant des botes et
des lignes grce au Designer Entity Framework. Ces deux approches peuvent tre utilises pour cibler
une base de donnes existante ou crer une nouvelle base de donnes."
(Source: http://msdn.microsoft.com/en-us/data/ee712907)

"Utiliser lEntity Framework pour crire des applications orientes donnes offre les avantages
suivants:
* Temps de dveloppement rduit : le Framework fournit les fonctionnalits daccs aux donnes
fondamentales pour que les dveloppeurs puissent se concentrer sur la partie mtier.
* Les dveloppeurs peuvent travailler autour dun modle de donnes orient application, incluant les
types et lhritage, les membres complexes, et les relations. Dans le Framework .NET 4, Entity
Framework prend en charge la Persistence Ignorance au travers des classes Plain Old CLR Objects
(POCO).
* Les applications ne contiennent plus de code spcifique li un moteur de donnes particulier ou
un schma de stockage.
* Le mappage entre le modle conceptuel et le schma de stockage spcifique lapplication peut
changer sans avoir besoin de modifier du code.
* LINQ fournit une validation de la syntaxe des requtes lors de la compilation pour le modle
conceptuel.
Entity Framework utilise lEntity Data Model (EDM) pour dcrire les objets ou les modles conceptuels
spcifiques lapplication pour laquelle le dveloppeur programme. LEDM se construit sur le modle
largement connu de lEntity Relationship (introduit par le Dr Peter Chen) pour lever le niveau
dabstraction au-dessus du schma logique de la base de donnes. LEDM a t dvelopp par
Microsoft avec pour but premier de devenir le modle de donnes commun une suite de
technologies serveur et doutils de dveloppement. Par consquent un EDM cr pour tre utilis avec
Entity Framework peut aussi tre utilis avec WCF Data Services (anciennement ADO.NET Data
Services), Windows Azure Table Storage, SharePoint 2010, SQL Server Reporting Services, et SQL Server
PowerPivot pour Excel, et bien dautres venir."
Source: http://msdn.microsoft.com/en-us/data/aa937709

F. Ce que CodeFluent Entities apporte
videmment, Entity Framework comprend une partie commune avec CodeFluent Entities concernant
laccs aux donnes, mais CodeFluent Entities ne sarrte pas sur ce seul point et fournit en plus :
Des blocs de code complet permettant de grer : la scurit, le tri, la pagination, la liaison de
donnes, l'internationalisation, la mise en cache, la recherche, le streaming d'objets binaires
volumineux, l'intgration dans Office, etc...
Juillet 2014
CodeFluent Entities et Entity Framework Page 10
Un contrle sur la gnration de code : plus de contrle sur les dlais et les cots tout en
assurant une qualit de code homogne, en minimisant le travail sur le socle de lapplication
ainsi que sur dventuels "frameworks" internes.
Une structuration pour le travail en quipe : la cohrence de programmation dans l'quipe
de dveloppement en dfinissant implicitement comment les choses doivent tre faites et
ainsi viter le "syndrome de Superman".
L'absorption des changements fonctionnels : le processus de production en continu permet
d'absorber les changements fonctionnels en douceur. Vous amliorez ainsi votre flexibilit et
renforcez vos relations avec vos utilisateurs et partenaires.
Le dcouplage de la technologie : ceci scurise votre investissement en autorisant des
changements technologiques, car il vous suffit d'ajouter votre projet des plates-formes cibles
diffrentes pour supporter de nouveaux scnarios y compris ceux qui ne sont pas encore
identifis aujourd'hui.
Dun point de vue purement technique, CodeFluent Entities supporte les technologies suivantes (en
plus de SQL Server, pour l'accs aux donnes) :
Base de donnes Oracle,
SQL Azure,
WCF,
ASP.NET WebForms & MVC,
Silverlight,
WPF
SharePoint,
Office,
MySQL,
PostgreSQL
MariaDB
SQLite
Du point de vue de l'architecture, Entity Framework ne prend pas en charge les couches autres que la
base de donnes et le modle objet. Vous pouvez bien sr les dvelopper vous-mme ou utiliser des
outils externes mais cela apportera des cots et des risques supplmentaires votre projet.
De son ct, CodeFluent Entities peut gnrer les couches suivantes qui seront, bien sr, 100%
fonctionnelles :
La couche de service
La couche dinterface utilisateur
Et le plus important : une cohrence entre toutes les couches.

Juillet 2014
CodeFluent Entities et Entity Framework Page 11
G. Intgration dans Visual Studio
1. Entity Framework
Entity Framework 6 est intgr Visual Studio 2012 et 2013 travers un type de projet appel Entity
Data Model. Il existe aussi des versions sous Visual Studio 2008 et 2010 qui utilisent une version
antrieure dEntity Framework, mais celle-ci natteint pas les fonctionnalits de la version 2013.
Dans la pratique, lEntity Data Model est intgr un projet en C# ou en VB.NET, par consquent, il
n'est pas compltement model-first car il est dj li un langage. En outre, cela dmontre quEntity
Framework est plus un nouveau modle d'accs aux donnes qui est une surcouche dADO.NET
(rappelez-vous son nom "ADO.NET Entity Framework"), plutt quune solution complte pour
construire le socle dune nouvelle application.
2. CodeFluent Entities
CodeFluent Entities est prsent sur le march depuis 2005 et est compos de deux modules principaux
:
Le Modeleur de CodeFluent Entities : il fournit une interface graphique totalement intgre
Visual Studio 2008/2010/2012/2013 et possde les mmes fonctionnalits de .NET 2.0 .NET
4.5. Dans la pratique, il ajoute un nouveau type de projet Visual Studio avec lequel vous
pourrez concevoir vos modles, importer des modles, et gnrer les fichiers correspondants
en utilisant comme cibles dautres projets de la solution Visual Studio.

Le Meta Compilateur de CodeFluent Entities : cest un moteur de gnration de code via des
producteurs dont le code gnr est prt tre utilis pour les technologies suivantes : scripts
(T/SQL, PL/SQL, MySQL, PostgreSQL, MariaDB, SQLite), classes C#, interfaces WCF
(Silverlight, .NET), webParts SharePoint, WPF, synchronisation de List Office, WebControls
ASP.NET & Site Web. Le code source produit par ce compilateur, parfaitement clair et lisible,
est gnr avec de bonnes pratiques utilisant des patrons de conception. Il est de plus crit
pour tre testable, facilement maintenable et performant.
Juillet 2014
CodeFluent Entities et Entity Framework Page 12
III. Comparaison des schmas de rfrence
Rappelons qu'Entity Framework est un ORM alors que CodeFluent Entities est une usine logicielle
complte qui permet de faire du dveloppement orient Model-First. Par consquent, CodeFluent
Entities couvre des zones beaucoup plus vastes quEntity Framework. Ci-aprs, la liste des attributs et
des copies dcrans permettant de se faire une ide sur le nombre de concepts disponibles entre les
deux produits.
A. Vue densemble des concepts
1. Entity Framework
Entit
Proprit
Type complexe
Association (1-N, N-1, N-N, hritage)
Fonction
Enumration
Paramtre
2. CodeFluent Entities
Entit
Entit allge (Lightweight Entity)
(reprsente des objets lgers, tel que
des structures ou des class non
persistantes)
Enumration (incluant le multi-valeur)
Proprit
Mthode
Paramtre
Instance (reprsente une ligne de
donnes et peut tre utilise pour
initialiser la base de donnes gnre)
Schma (traduit en schmas SQL par le
producteur de persistance)
Stockage (un modle peut avoir
plusieurs sources de donnes)
Espace de nommage (un modle peut
avoir plusieurs espaces de nommage)
Catgorie (Utilis par les producteurs
IHM pour regrouper les entits)
Relation (1-1, 1-N, N-1, N-N, non
persistante, hritage)
Type utilisateur (dfinis des types de
donnes personnalises par
lutilisateur)
Moteur de rendu (indique comment
sont rendus les lments de la couche
d'interface utilisateur)
Attribut (traduit en attributs .NET par
le producteur de Business Object
Model)
Argument dAttribut
Aspect (permet aux dveloppeurs de
travailler sur le modle infr de faon
effectuer des modifications travers
toutes les couches de lapplication, par
exemple pour activer la localisation
des donnes)
Rgles (vnement, transaction,
validation, autorisation,
implmentation, personnalisation)
Vues (et les vues persistantes)
Message (localisation, documentation,
ressources)
Formulaire (le design est indpendant
de la plate-forme, qui sera ensuite
traduit par des formulaires spcifiques
dans les couches dinterface
utilisateur)
Onglet (dun formulaire)
Zone (dun formulaire)
Colonne (dun onglet)
Juillet 2014
CodeFluent Entities et Entity Framework Page 13
Champ (dune colonne)

B. Vue d'ensemble des concepts cls
1. Entity Framework
Entity Framework ne traite que des donnes lies des lments, ce qui est normal tant donn que
ce nest quun ORM.


Voici un exemple de deux entits lies. Nous ne pouvons visualiser que les proprits (de type
standard, complexe ou navigation) :



Juillet 2014
CodeFluent Entities et Entity Framework Page 14
2. CodeFluent Entities
Voici le schma quivalent (en style Modern UI car lutilisateur peut configurer le rendu des surfaces
graphiques) dans une surface CodeFluent Entities :

Et le mme schma comprenant un certain nombre dautres concepts grs par le produit et rendus
visuellement :

Juillet 2014
CodeFluent Entities et Entity Framework Page 15
Points dimportance :
Les entits peuvent tre groupes en namespaces (deux namespaces sont montrs ici)
La bote Customer nest en fait pas une bote, mais une Tree View complte dmontrant un
ensemble de concepts soigneusement hirarchiss. Par exemple, le concept Property a aussi
des sous concepts de type Attribute, ou Rule, comme le concept Entity.
Le concept dInstance est un des concepts exclusifs au produit. Cest une manire puissante
de dcrire les donnes associes une entit donne. Dans notre cas, les instances Bill et
Joe dfinies au niveau du modle permettront de les persister automatiquement en tant
que lignes de la table Customer.
Le concept de Form reprsente une manire indpendante de la plateforme de dcrire des
formulaires IHM qui deviendront des formulaires spcifiques la cible aprs gnration (Web,
WPF, etc.)

C. Attributs dentit et de proprit
Les copies dcran qui suivent visent dmontrer la diffrence d'approches entre les deux produits,
une diffrence qui peut tre facilement justifie par le fait quEntity Framework est clairement
positionn et limit laspect "mapping" de la couche de donnes.
Nous ne comparons que les concepts dentit et de proprit, car ce sont quasiment les seuls concepts
manipuls par Entity Framework, alors que CodeFluent Entities reconnait plus de 40 concepts.
1. Entit - Entity Framework
Voici les lments que vous obtenez au niveau dune entit dans Entity Framework :


Juillet 2014
CodeFluent Entities et Entity Framework Page 16
2. Entit - CodeFluent Entities
Voici les lments que vous obtenez au niveau dune entit dans CodeFluent Entities ( gauche ceux
de base, droite une partie des lments avancs, une partie seulement car il faudrait une capture
d'cran supplmentaire pour toutes les afficher) :

Vue Simple

Vue avance
Juillet 2014
CodeFluent Entities et Entity Framework Page 17
3. Proprit - Entity Framework
Voici les attributs que vous obtenez au niveau des proprits dune entit dans Entity Framework. Il
est intressant de noter que le champ Type ne contient que des Types de SQL Server :



Juillet 2014
CodeFluent Entities et Entity Framework Page 18
Et voici la liste des types pris en charge par Entity Framework (elle reprend en fait les types grs par
SQL Server, noter que les nouveaux types spatiaux occupent la majeure partie de la liste) :



Juillet 2014
CodeFluent Entities et Entity Framework Page 19
4. Proprit - CodeFluent Entities
Voici les attributs que vous obtenez au niveau des proprits dune entit dans CodeFluent Entities
(une partie seulement est visible car tant limite par la taille de la page, la grille des proprits aurait
besoin de deux pages pour tre affiche entirement):

Vue Simple

Vue avance

Juillet 2014
CodeFluent Entities et Entity Framework Page 20
Et voici la liste des types pris en charge par CodeFluent Entities :


Il faut noter que tout type CLR existant et srialisable peut aussi tre utilis comme type de proprit.
Tout comme Entity Framework, il est possible dutiliser les types SqlGeography, SqlGeometry et
SqlHierarchyId (http://www.softfluent.com/forums/codefluent-entities/sql-server-2008-geography-
type).
Juillet 2014
CodeFluent Entities et Entity Framework Page 21
IV. Fonctionnalits exclusives
Voici quelques fonctionnalits exclusives du produit :
A. Editeur Graphique
1. Rendu vectoriel
Contrairement lditeur graphique dEntity Framework bas sur la technologie DSL-tools
obsolte, le modeler graphique CodeFluent Entities utilise un rendu graphique vectoriel bas sur le
moteur de composition de WPF, prenant donc en charge lacclration matrielle. Voici un exemple
dune surface rendu au sein de Visual Studio avec un effet de zoom important :

Au contraire, tout ce qui sort du cadre textuel est rapidement dgrad avec le Designer dEntity
Framework. De plus, le niveau de zoom est limit :

Juillet 2014
CodeFluent Entities et Entity Framework Page 22
Lutilisateur a aussi accs un menu lui permettant de customiser le rendu des surfaces graphiques,
laide de styles prdfinis ou spcifiques :



Juillet 2014
CodeFluent Entities et Entity Framework Page 23
2. Moteur de recherche de forme
Le Shape Search Engine permet une recherche visuelle rapide travers plusieurs dizaines de formes
graphiques :




Juillet 2014
CodeFluent Entities et Entity Framework Page 24
3. Modlisation Multi-Surface
Lutilisateur peut dfinir autant de surfaces de travail graphiques quil le souhaite. Chaque surface est
dfinie par une liste de selectors . Chaque slecteur dtermine quelles formes seront slectionnes
pour tre dessines sur cette surface. Par exemple dans limage ci-dessous, lutilisateur est en train de
crer une surface qui ne comprendra que les formes dans un namespace nomm Sales:



Juillet 2014
CodeFluent Entities et Entity Framework Page 25
4. Model Grid
La Model Grid est une fonctionnalit ddition spcifique et exclusive qui combine une Tree View
et une List View et permet une dition de masse travers lensemble des concepts du modle, avec
une navigation au clavier possible. En utilisant les boutons gauche (des boutons customs peuvent
tre ajouts), lutilisateur peut slectionner (on/off) les concepts qui doivent tre ajouts la grille ou
pas. La grille utilise les mmes diteurs que la Property Grid standard de Visual Studio. Dans lexemple
ci-dessous, lutilisateur est en train de modifier linstance Bill de lentit Customer :



Juillet 2014
CodeFluent Entities et Entity Framework Page 26
B. Modlisation avance
1. Format de stockage lisible
Un modle CodeFluent Entities est entirement stock dans un ou plusieurs fichiers XML. Le schma
XML utilis est facile comprendre et le XML rsultant lisible par des humains. Il est aussi facile
modifier avec un diteur XML standard en dehors de Visual Studio. Voici titre dexemple un modle
dfinissant deux entits dans deux namespaces diffrents, avec quelques proprits, dont une
relation (Orders <-> Customer), et deux instances de lentit Customer :

2. Stockage Multi-Fichier
Le format de stockage est XML mais un modle CodeFluent Entities peut tre stock physiquement sur
plusieurs fichiers XML. Cest lutilisateur de dcider quel concept sera stock dans quel fichier. Par
exemple, on peut associer les fichiers aux namespaces , ou spcifier un fichier par concept, ou tout
autre dcoupage appropri lorganisation du projet.
Cette fonctionnalit est extrmement utile dans un contexte de travail en quipe (chaque quipe est
alors responsable de certains fichiers), ou quand les modles ont une taille importante (plusieurs
centaines dentits), ou dans des environnements de travail sous contrle de source (le fichier devient
lunit de travail/checkout/checkin).

Juillet 2014
CodeFluent Entities et Entity Framework Page 27
3. Editeur de rgles
Le sous-concept de Rule dans CodeFluent Entities peut sappliquer aux concepts Project, Entity,
Method, et Property. On trouve non seulement les rgles de validation (IDataError, Data Annotations,
etc.) sur les proprits mais aussi des rgles de transaction, de scurit, de cycle de vie, ou des rgles
spcifiques dveloppes dans le cadre du projet, etc.
Le modeler graphique inclut un diteur de rgles complet qui prend ces concepts en charge
intgralement :

Le producteur Business Object Model (celui qui gnre les classes .NET principales) se base entre
autres sur ces rgles pour gnrer du code automatiquement.

Juillet 2014
CodeFluent Entities et Entity Framework Page 28
4. Editeur de formulaire Indpendant de la plateforme
CodeFluent Entities dfinit un ensemble de concepts orients IHM : Form, Tab, Zone, Column, Field,
etc.
Ces concepts sont pris en charge par les producteurs IHM rcents livrs en standard : Producteur
ASP.NET V2 (avec 3 modles : Ajax/JQuery/jqGrid, ASP.NET MVC 3 and ASP.NET WebForms classic),
Producteur Smart Client, et Producteur SharePoint WebParts.
Le modeler graphique inclut un diteur de formulaire indpendant de la plateforme qui permet un
dveloppeur la modlisation de formulaire attachs une entit donne :


Juillet 2014
CodeFluent Entities et Entity Framework Page 29
5. Aspects et modlisation dynamique
CodeFluent Entities introduit une fonction unique, les CodeFluent Aspects. Les aspects sont des
programmes .NET, crits par un utilisateur du produit (en gnral un architecte), qui vont fonctionner
pendant la phase dinfrence dun modle, avant la gnration de code proprement parler. Le nom
vient de limpact important quils peuvent avoir sur le comportement des concepts quils prennent en
charge.
Par exemple, si un aspect custom ajoute une proprit MyProp dynamiquement et par
programmation toutes les entits dun modle, le moteur dinfrence va ajouter automatiquement
tous les artefacts correspondants dans toutes les couches gnres, comme les colonnes aux tables,
les paramtres au procdures stockes, les expressions au code des procdures, le code .NET de
sauvegarde dans les classes mtier, les arguments aux interfaces WCF, etc., de la mme manire que
si la proprit avait t ajoute manuellement par lutilisateur laide du modeleur graphique toutes
les entits du modle.
Les aspects permettent rellement de mettre en uvre le concept de Software Factory, avec
lautomatisation de tout comportement commun plusieurs concepts. Les modles de taille
importante bnficient normment de cette fonctionnalit.
Ces programmes Aspect (C# ou VB.NET) peuvent tre stocks directement dans le XML ( laide de
morceaux de code snippet ), ou peuvent tre compils dans des assemblies externes,
ventuellement dans la mme solution Visual Studio. Ils peuvent aussi parfaitement tre partags
entre plusieurs modles, si leur propos est gnrique et rutilisable travers diffrents scenarios. Pour
fonctionner, ils utilisent lAPI de CodeFluent Entities ( M3 ). Les Aspects peuvent tre eux-mmes
auto-descriptifs laide de mtadonnes, afin de permettre leur accs au sein de Visual Studio au
dveloppeur qui na pas crit laspect mais qui lutilise, comme le montre limage ci-dessous.
Le produit est livr en standard avec des aspects officiels. Un des plus utilis est laspect Localization
qui permet la localisation de la base de donnes pour les proprits dune entit. Laspect se charge
automatiquement de la cration des tables localises, des colonnes, des vues persistantes, des
procdures stockes, et du code .NET permettant de stocker les variantes localises dune proprit
donne.
Pour activer cet aspect sur une proprit donne, un dveloppeur se contente dajouter laspect au
projet, et de dclarer quelles proprits seront localisables :

1) Add the aspect
2) Select a Property
3) Choose the
blueprint Aspect tab
4) Set the Is Localizable
property to True
Juillet 2014
CodeFluent Entities et Entity Framework Page 30
C. DBA-Friendly
CodeFluent Entities nest pas un ORM. Cest un outil model-first . Cela signifie que la base de
donnes na pas besoin dtre modlise part, et le code .NET non plus, car loutil va en fait gnrer
lensemble du code ncessaire (SQL, .NET, autre) automatiquement partir dun modle unique et
centralis.

Ceci tant dit, le code gnr (base de donnes, et.NET) a t soigneusement revu et optimis pour se
rapprocher le plus possible de ce quun humain pourrait crire la main , mais avec moins de risques
derreur.
Cela signifie aussi que ce code en question va tre gnr au moment de la modlisation (ou de la
gnration), et non lexcution. CodeFluent Entities ne repose pas sur du code dynamique cryptique
(.NET ou SQL) que vous naurez jamais loccasion de comprendre, de dboguer, ou mme de remplacer
si vous ne laimez pas. Puisque le code est gnr lavance, vous pourrez lanalyser et le comprendre.
Puisque le produit repose sur lutilisation des procdures stockes pour laccs aux donnes, (sur SQL
Server, Oracle Database et MySQL), vous pourrez aussi choisir de rcrire certaines des procdures
gnres si vous pensez pouvoir faire un meilleur travail que la machine.
1. Gnration continue et Moteur de diffrence
Le producteur SQL Server est quip dun moteur de diffrence qui permet une gnration continue
partir du modle, avec conservation des donnes existantes. Autant que possible, ce systme va juste
crer les tables, ajouter les nouvelles colonnes, supprimer les anciennes, ainsi que les contraintes
dintgrit ncessaires au modle en cours, sans toucher aux donnes dj crites dans la base de
dveloppement.
Juillet 2014
CodeFluent Entities et Entity Framework Page 31
2. Vues persistantes
Le concept de View dans CodeFluent Entities est assez large. Une vue modlise peut tre traduite par
le moteur dinfrence en une vue persistante (mais pas ncessairement, par exemple les producteurs
orients IHM utilisent les vues directement, non les vues persistantes). Le produit est donc fourni avec
un diteur de vue :


3. Convention de nommage
Puisque CodeFluent Entities est un outil orient DBA, et model-first , il permet de choisir une
convention de nommage adapte pour le code SQL gnr. Par dfaut, le produit est livr avec des
conventions de nommage standard, mais vous pouvez crire une convention spcifique ou drive
dune convention existante. Cette option se trouve dans les proprits du Project CodeFluent Entities :

Juillet 2014
CodeFluent Entities et Entity Framework Page 32
V. Dfis "ouverts" pour Entity Framework et les ORMs
En prenant Entity Framework comme exemple, nous avons compil une srie de questions et de
discussions qui dmontrent que le chemin qui permettra de dmocratiser lapproche du
dveloppement des applications business via des ORMs est encore long, si tant est qu'il permettrait
de rsoudre toutes les difficults inhrentes aux applications.
Les questions ci-dessous sont extraites de sites en anglais et montrent les enjeux qui restent "ouverts"
pour les utilisateurs qui tentent d'appliquer une approche purement base sur un ORM.

Comment utiliser EF6 pour mettre jour table ayant une relation Many-to-Many, Entity
Framework : mapper une procdure stocke sur une entit EF existante
SQL Variant dans EF, SQL Server 2008 types de donnes et EF
Entity Framework CTP5 - Comment appeler une procdure stocke ?
http://stackoverflow.com/questions/21289340/how-can-i-use-ef6-to-update-a-many-to-many-table
http://stackoverflow.com/questions/4739806/entity-framework-mapping-sproc-results-to-existing-
ef-entity
http://stackoverflow.com/questions/4789788/entity-framework-ctp5-how-to-call-stored-procedure
http://social.msdn.microsoft.com/Forums/eu/adonetefx/thread/0862812c-b9a8-451f-ad1d-
af478a21cce0
http://www.codeproject.com/KB/database/sql_variant_in_ef.aspx
http://thedatafarm.com/blog/data-access/sql-server-2008-data-types-and-entity-framework-4/
Entity Framework est trs limit par les types quil prend en charge. En effet, il ne prend pas en charge
compltement les numrations .NET, les types dfinis par l'utilisateur dans SQL Server (UDT), les
types "sql_variant" dans SQL Server, les objets .NET personnalisables (mme ceux srialisables).
CodeFluent Entities fait tout cela.

EF Performance : ComputeHashValue() lors de la compilation dune requte
Pourquoi mon code fait toujours du Lazy Loading alors que jai dsactiv toutes les options
possibles ?
Lordre des clauses LINQ devrait-il influer sur les performances dEntity Framework ?
Le temps dexcution de LINQ to SQL est 50 fois suprieur celui dune requte SQL dans le SSMS
http://stackoverflow.com/questions/23360660/ef-performance-computehashvalue-in-query-
compilation
http://stackoverflow.com/questions/22626976/why-is-my-code-doing-lazy-loading-even-after-i-
turned-it-off-at-every-possible-p
http://stackoverflow.com/questions/17323547/should-the-order-of-linq-query-clauses-affect-entity-
framework-performance
http://stackoverflow.com/questions/14928939/linq-to-sql-execution-time-is-50x-longer-than-ssms-
sql
Juillet 2014
CodeFluent Entities et Entity Framework Page 33
La gnration du code produit par CodeFluent Entities est parfaitement prdictible et il est possible
dagir sur celle-ci afin de rsoudre dventuels problmes de performances. Cet article,
http://blog.codefluententities.com/2014/03/27/fetch-performance-of-codefluent-entities/, illustre
parfaitement les capacits dadaptation de CodeFluent Entities du point de vue de la gnration.

Meilleure option pour supprimer en cascade dans Entity Framework
Comment fonctionnent rellement les suppressions en cascade dans EF
Suppression en cascade sur les entits drivs
http://stackoverflow.com/questions/22582585/best-option-to-cascade-delete-in-entity-framework
http://blogs.msdn.com/b/alexj/archive/2009/08/19/tip-33-how-cascade-delete-really-works-in-
ef.aspx
http://stackoverflow.com/questions/13461534/cascading-deletes-on-derived-entities
http://social.msdn.microsoft.com/Forums/en-US/040e7eaa-a561-4c3b-84af-851e5ec67c60/delete-
does-not-cascade-to-inherited-entity-tables?forum=adodotnetentityframework
Les suppressions en cascade sont pleinement supportes par CodeFluent Entities.

Entity Framework 4 Manipulation de gros modles de donnes (plus de 1000 tables) ?
Plusieurs diagrammes dans un modle, un gros fichier EDMX, plusieurs fichiers EDMX [] Quelle
est la meilleure option ?
http://stackoverflow.com/questions/2981054/entity-framework-4-handling-very-large-1000-tables-
data-models
http://stackoverflow.com/questions/14956785/multiple-diagrams-in-model-vs-one-large-edmx-vs-
multiple-edmx
Nous avons des clients qui utilisent CodeFluent Entities (mme la version 32 bits) avec des modles
contenant plus de 600 entits.

Entity Framework 4 : gnrer une base de donnes partir dun Model avec de multiple Schmas
http://stackoverflow.com/questions/3669766/entity-framework-4-generate-database-from-model-
with-multiple-schemas
Entity Framework ne prend pas en charge les fonctionnalits de regroupement que ce soit sur des
schmas de base de donnes ou des namespaces .NET. CodeFluent Entities le prend en charge
aussi bien pour les schmas de bases de donnes que pour les namesapces .NET, et offre en plus
la possibilit de les mapper automatiquement.


Juillet 2014
CodeFluent Entities et Entity Framework Page 34
Entity framework: Besoin d'une solution facile, pour la migration de bases de donnes
EF Recrer la base de donnes si le modle change
Garder le contenu dune base de donnes lors du changement dun modle
http://stackoverflow.com/questions/4580776/entity-framework-need-a-easy-going-clean-database-
migration-solution
http://stackoverflow.com/questions/5463121/keep-database-content-on-model-change
Entity Framework ne permet pas dappliquer la diffrence de structure entre deux versions de modle
de base de donnes. CodeFluent Entities est capable de mettre jour une base de donnes SQL Server
en continu pour chaque modification apporte au modle, tout en prservant les donnes existantes
(ds lors que cest techniquement possible).

Comment viter dcrire beaucoup de code rptitif pour la mise en place du mapping ?
http://stackoverflow.com/questions/4542561/how-to-evade-writing-a-lot-of-repetitive-code-when-
mapping
C'est la principale raison pour laquelle nous avons cr CodeFluent Entities. Quel que soit l'outil dORM
que vous allez utiliser, vous aurez toujours beaucoup de code rptitif crire, ou allez devoir dfinir
des modles personnaliss complexes que vous aurez par la suite besoin de maintenir, ou encore
dutiliser divers outils de tierce partie ce qui va introduire une gestion des dpendances dans votre
organisation.


Juillet 2014
CodeFluent Entities et Entity Framework Page 35
OptimisticConcurrencyException ne fonctionne pas dans Entity Framework dans certaines
situations
Dans Entity Framework les relations, plusieurs plusieurs (n-n) sont extrmement lentes
Pourquoi EF gnre ce SQL lors de la comparaison dune proprit ?
http://stackoverflow.com/questions/4402586/optimisticconcurrencyexception-does-not-work-in-
entity-framework-in-certain-situa
http://stackoverflow.com/questions/4531128/entity-framework-many-to-many-relationship-
include-extremely-slow
http://stackoverflow.com/questions/4829286/why-does-ef-generate-this-sql-when-quering-
reference-property
Parce quEntity Framework est bas sur des techniques "meta", et de code gnr dynamiquement, il
peut tre parfois trs difficile dboguer et comprendre, comme de nombreux outils dORM de
manire gnrale. Le code gnr par CodeFluent Entities est parfaitement lisible par un humain
tous les niveaux. Par exemple sur la 3me question, en utilisant CodeFluent Entities, pourrait tre
ralise tout simplement avec le modle suivant (version XML) :
<Employee>
<Id />
<Contact typeName="Contact" />
<cf:method name="LoadCustom" body="load where contact.FirstName = 'A' or
contact.FirstName = 'B' or contact.FirstName = 'C' " />
</Employee>
<Contact>
<Id />
<FirstName />
</Contact>

Le code SQL de la procdure stocke gnr serait tout simplement :
SELECT DISTINCT
[Employee].[Employee_Id],[Employee].[Employee_Contact_Id],[Employee].[_trackLastWri
teTime],[Employee].[_trackCreationTime],[Employee].[_trackLastWriteUser],[Employee]
.[_trackCreationUser],[Employee].[_rowVersion]
FROM [Employee]
Left Outer Join [Contact] On ([Employee].[Employee_Contact_Id] =
[Contact].[Contact_Id])
WHERE (([Contact].[Contact_FirstName] = 'A') Or
(([Contact].[Contact_FirstName] = 'B') Or ([Contact].[Contact_FirstName] = 'C')))

Comment mettre jour une entit nouvellement cre partir dune nouvelle entit, Y a-t-il une
solution pour faire des copies en cascade dentits avec Entity Framework ?
http://stackoverflow.com/questions/2358575/how-to-update-entity-from-new-created-detached-
entity
http://stackoverflow.com/questions/7326489/is-there-a-way-to-accomplish-cascading-copies-of-
entities-in-entityframework
CodeFluent Entities implmente automatiquement les mthodes Clone et CopyTo dans vos entits.

Juillet 2014
CodeFluent Entities et Entity Framework Page 36
Manipulation de BLOB dans la version 4.0 dEntity Framework
http://stackoverflow.com/questions/4784367/handling-blobs-in-entity-framework-4-0-in-a-stream-
fashion
CodeFluent Entities dfinit des types avancs tels que "fichier", "image", "vido", "audio" et "blob".
Lorsque ces types sont utiliss dans des proprits, le producteur va gnrer du code dans toutes les
couches de lapplication qui apporteront des capacits de dveloppement supplmentaires, tels que
le streaming de bout en bout (y compris les accs squentiels partir dune base de donnes), la mise
en cache, les mtadonnes (nom de fichier, taille du fichier, les attributs, le type de contenu), la
cration de vignettes, et le Binding automatique (Winforms, WPF). Il n'existe pas ce jour sur le
march d'autre outil permettant lquivalent.

Comment crer une entit en lecture seule avec Entity Framework ?
http://stackoverflow.com/questions/4828935/how-to-create-read-only-entity-in-entity-framework
Cela dmontre qu'Entity Framework a t dvelopp essentiellement en ayant lesprit le concept
d'accs aux donnes. CodeFluent Entities supporte quant lui les Entits non persistantes.

Comment sen sort EF4 compar NHibernate ?
http://stackoverflow.com/questions/4847210/how-does-ef4-compare-with-nhibernate
Cet article dtaille certains points noirs propos dEntity Framework.
CodeFluent Entities ne prsente aucune de ces faiblesses :
Il dispose dune prise en charge complte des numrations. Vous pouvez modliser et
gnrer une numration ou en rutiliser une existante partir d'une Assembly dj compile
Il dfinit la notion de convention de nommage, et est livr avec quelques-unes dentre elles.
Vous pouvez bien sr dvelopper les vtres
Il gnre du code humainement lisible
Il prend en charge les traitements par lots de suppressions (batchs)
Il supporte les volutions du modle et les compilations continues
Il possde de nombreux points d'extension tous les niveaux

Stack trace apparemment infinie dans EF 4.0 et performances moyennes des requtes lors de la
monte en charge, LINQ to SQL remonte une StackOverflowException
http://stackoverflow.com/questions/6978207/seemingly-infinite-stack-trace-in-ef-4-0-and-poor-
query-performance-under-load
http://stackoverflow.com/questions/5744764/linq-to-sql-throwing-a-stackoverflowexception
Ces articles dmontrent quels points il peut tre difficile de dboguer du code daccs aux donnes
qui a t gnr lexcution et de manire dynamique. Cest pourquoi CodeFluent Entities gnre
des procdures stockes claires, prdictibles et humainement lisibles, que lon appelle tout
simplement via des mthodes .NET.

Juillet 2014
CodeFluent Entities et Entity Framework Page 37
Comment stocker des images en utilisant Entity Framework Code-First de la CTP 5 ?
Enregistrer un fichier dans une base de donnes SQL Server 2008 avec Entity Framework
http://stackoverflow.com/questions/4653095/how-to-store-images-using-entity-framework-code-
first-ctp-5
http://stackoverflow.com/questions/5370351/save-a-file-in-sql-server-2008-database-with-entity-
framework
Les Blobs (par exemple les images, les vidos, les documents, laudio) sont des types natifs dans
CodeFluent Entities, la manipulation des proprits de type Blob est totalement transparente travers
toutes les couches de lapplication. En outre, les blobs sont manipuls laide de streams travers
toutes les couches de votre application (et non des tableaux doctets).

Comment puis-je ajouter des contraintes une entit ADO.NET ?
http://stackoverflow.com/questions/1963829/how-can-i-add-constraints-to-an-ado-net-entity
CodeFluent Entities supporte ces caractristiques depuis le premier jour.

EF avec Azure Mix SQL Server et Windows Azure Storage
http://stackoverflow.com/questions/7580649/ef-with-azure-mixing-sql-server-and-windows-azure-
storage
Une autre caractristique fournie par dfaut dans CodeFluent Entities et qui ne ncessite aucune ligne
de code supplmentaire fournir par le dveloppeur. Les dveloppeurs peuvent choisir de stocker
leurs blobs dans la base de donnes (par dfaut), dans Windows Azure Blob Storage, ou dans un
rpertoire NTFS sur un serveur.

Ajouter une documentation XML, des commentaires aux proprits et aux champs dans les classes
gnres par EF
http://stackoverflow.com/questions/7672627/add-xml-documentation-comments-to-properties-
fields-in-ef-generated-classes
En utilisant CodeFluent Entities vous pouvez documenter le code gnr, sans avoir utiliser dautre
outil, ni devoir crer des modles personnaliss.

Comment faire pour ajouter des lignes dans lordre avec EntityFramework
http://stackoverflow.com/questions/5159824/how-to-make-entityframework-add-rows-in-order
Lenregistrement dans des champs de type auto-incrmental est entirement pris en charge dans
CodeFluent Entities.

Juillet 2014
CodeFluent Entities et Entity Framework Page 38
Comment dois-je faire pour grer les colonnes CreatedOn et ModifiedOn avec EF 4.1 ?
http://stackoverflow.com/questions/5543639/how-should-i-annotate-createdon-and-modifiedon-
columns-with-ef-4-1
Le suivi des colonnes est automatiquement gnr (par dfaut) et intgralement pris en charge dans
CodeFluent Entities.

Internationnalisation du contenu dans Entity Framework
http://stackoverflow.com/questions/11085205/internationalization-of-content-in-entity-framework
Laspect de Localisation fournit en standard dans CodeFluent Entities permet de mettre en place un
systme linguistique simplement et de manire relativement transparente au niveau du modle de
donnes.

Horodatage gnr automatiquement dans le gestionnaire de l'entit
http://stackoverflow.com/questions/6087083/autogenerated-timestamp-in-entity-manager
CodeFluent Entities gnre automatiquement une colonne timestamp (ou rowversion) qui est
disponible sur toutes les plateformes (exemple Oracle, SQL Server, SQL Azure) et qui ne ncessite
aucune ligne de code pour tre implment.

Traiter avec DateTime l'aide de mthodes Linq
http://stackoverflow.com/questions/6253905/dealing-with-datetime-using-linq-methods
Avec CodeFluent Entities, les valeurs dans la base de donnes sont automatiquement converties en
valeurs du modle objet et vice versa, et toutes ces conversions utilisent des valeurs par dfaut afin
que les dveloppeurs naient jamais lutter avec les nulls ou DbNulls.

LINQ Excuter une requte avec une clause WHERE sur environ 6000 enregistrements
http://stackoverflow.com/questions/8730879/linq-querying-about-6000-unique-records-by-where-
clause
Les requtes de ce type sont parfaitement prises en charge par CodeFluent Entities et ne ncessitent
aucune ligne de code supplmentaire.

LINQ to Entities ne reconnat pas la mthode Parse(System.String) du type Double, et cette
mthode ne peut pas tre traduite en une expression de base de donnes, problme lors de la
suppression en cascade avec Entity Framework
http://stackoverflow.com/questions/5971521/linq-to-entities-does-not-recognize-the-method-
double-parsesystem-string-met
Juillet 2014
CodeFluent Entities et Entity Framework Page 39
http://stackoverflow.com/questions/6297657/ef4-1-fluent-api-sqlquery-configuration-mappings-
when-calling-sproc-data
http://stackoverflow.com/questions/6443917/problem-of-cascade-delete-in-entity-framework
Ces articles montrent quels points les ORMs gnrent du code qui dplait en gnral aux DBAs.
CodeFluent Entities, pour sa part est conu pour tre apprci des DBAs grce au code clair quil
gnre, ces sujets tant tous grs nativement et sans ncessit de code supplmentaire.

Entity Framework T4 objets POCO remonte une exception dans WCF
http://stackoverflow.com/questions/7073147/entity-framework-t4-poco-objects-raising-exception-
in-wcf
En utilisant CodeFluent Entities, les classes .NET gnres peuvent tre utilises sur toutes les plates-
formes ct client et serveur (comme par exemple Windows Forms, WPF, ASP.NET, ASP.NET MVC,
WCF, WF, Silverlight, SharePoint).

Mise jour vers la dernire version de EF (4.1) partir de la CTP - Comment faire pour remplacer
les Under scores gnr dans les cls trangres
http://stackoverflow.com/questions/7487746/upgraded-to-the-latest-ef-4-1-from-ctp-how-do-we-
override-underscores-genera
CodeFluent Entities permet aux dveloppeurs de personnaliser comme ils le souhaitent les
conventions de nommage, ce qui leur permet de changer la manire dont tous les objets sont nomms
(comme par exemple les tables, les procdures stockes, les colonnes, les vues, les contraintes).
Juillet 2014
CodeFluent Entities et Entity Framework Page 40
VI. Ressources
Page daccueil du produit :
http://www.softfluent.com/products/codefluent-entities

Obtenez une version dessai (complte et gratuite pour un usage personnel) :
http://www.softfluent.com/store/codefluent-entities-personal

Pourquoi CodeFluent Entities (avec des exemples) ?
http://www.softfluent.com/products/codefluent-entities/why/examples

Dmarrez avec CodeFluent Entities (Utilisez les assistants, Importez des modles existants) :
http://www.softfluent.com/products/codefluent-entities/get-started
Le Blog CodeFluent Entities (plus de 350 articles !) :
http://blog.codefluententities.com/
Forums :
http://forums.softfluent.com/
Documentation de rfrence :
http://www.softfluent.com/community-support/codefluent-entities/documentation
Les questions/rponses de la plateforme StackOverflow :
http://stackoverflow.com/search?q=codefluent+entities

Das könnte Ihnen auch gefallen