Rapidité de développement
• En général un processus de développement avec E.F est plus rapide.
• Le développement avec SQL natif est plus rapide lors du développement des
applications de Reporting et tableau de Bord et les applications de maintenance
de la base de données.
Maintenabilité du code
• Le code E.F est plus maintenable ; car il est basé sur une architecture modulaire
(un patron de conception).
• La maintenabilité du code peut être assuré en respectant le coding style de
Microsoft et les normes de code et ce pour le «E.F» et le «SQL natif».
Flexibilité
• Les procédures stockées du SQL sont plus flexibles. Elles peuvent être appelées
par le «SQL natif» et par le «E.F».
Sécurité
• Le problème de sécurité est un problème majeur dans tout processus de
développement. Les injections SQL arrivent souvent lorsqu’on stocke des données
sur une base de données.
• Les injections SQL arrivent souvent lorsqu’on utilise du code SQL natif
Exemple:
Query = « Select * From users Where id= » ;
WhereCondition = « 1 ; DROP TABLE users » ;
Query += WhereCondition ;
Connexion.execute(Query) ;
Le code précédent montre comment on a pu faire une injection SQL sur la table
users à travers la donnée saisie par l’utilisateur c’est-à-dire le «WhereCondition».
• Les injections SQL sont moins présentes dans le «E.F» car il utilise les requêtes
paramétrées ; ou les chaînes d’injection seront interprétées comme du texte
simple et non pas comme du code SQL.
Exemple:
Query:
SELECT * FROM users WHERE id = ?
Parameter 1:
1 ; DROP TABLE users
Dans cet exemple le DROP sera traité comme une chaîne de caractères et non pas un code SQL, le
résultat sera alors 0 lignes sélectionnées.
Conclusion
Nous avons effectué une étude comparative sur l’utilisation du code SQL natif et l’Entity Framework
pour le développement des applications .net utilisant une base de données. Nous pouvons synthétiser
notre étude par :
• Il ne faut pas tomber dans le piège qu’une technologie est meilleur que l’autre.
• Il faut choisir la technologie adéquate pour le problème adéquat. Pour des opérations SELECT
de grande masse il faut choisir Entity Framwork ; pour les opérations UPDATE on doit choisir les
procédures stockées.
• On peut utiliser les deux technologies dans la même application.
• Il est fortement conseillé d’utiliser Entity Framework avec comme data des procédures
stockées afin de bénéficier des puissances des deux technologies.
17