Gazette de l'ESI N5-Oct.2015 | Page 17

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