Je crée une application à 3 niveaux. Fondamentalement, il vaAbstraction correcte du niveau de base de données dans un système à 3 niveaux?
client -> (via le serveur facultatif à être un client léger) -> Business Logic -> Base de données couche
Et essentiellement faire en sorte qu'il n'y ait jamais de sauter autour. En tant que tel, je veux que toutes les requêtes SQL et autres soient dans le calque de base de données.
Eh bien, maintenant je suis un peu confus. J'ai fait quelques classes statiques pour commencer le niveau de base de données mais que dois-je faire pour les connexions de base de données? Devrais-je simplement créer une nouvelle connexion à la base de données à chaque fois que j'entre dans la couche de base de données ou est-ce que ce serait gaspillage? Est-ce que Connection.Open() prend du temps chaque fois que vous avez un ConnectionPool? Pour moi, il ne convient pas que le niveau Business doive transmettre un objet IdbConnection au niveau Base de données. Il semble que le niveau Base de données doit gérer tout le code spécifique à la base de données. Qu'est-ce que tu penses? Comment puis-je le faire de la bonne façon tout en restant pratique?
Y a-t-il une raison particulière pour laquelle vous n'utilisez pas un ORM? Je trouve que cela me permet d'économiser entre 20 et 50% du temps de développement pour ne pas avoir à écrire des requêtes SQL à la main, sans parler de la gestion des connexions, de la mise en cache et de tous les autres avantages secondaires. –
Parce que c'est un processus trivial de prendre notre ancien projet avec une charge de merde de SQL et l'apporter au nouveau projet. – Earlz
L'une des réponses ci-dessous vous at-elle aidé? – JonH