2009-11-03 5 views
1

La question est de savoir s'il est préférable d'encapsuler le code de données générales dans un contrôle serveur ou de lier les données au contrôle du client?Le serveur personnalisé doit-il accéder aux données ou être entièrement lié au client?

Le contrôle sera utilisé par diverses applications différentes et les données sont généralement uniquement pour le contrôle. Donc, la question est, plutôt que de dupliquer le code pour lier le contrôle dans chaque client, serait-il préférable de laisser le contrôle accéder aux données lui-même?

EDIT: Si le contrôle obtient directement des données, quel serait le meilleur moyen de passer une connexion NHibernate?

+0

Bonne question, au fait. – David

Répondre

0

Cela dépend de la situation. Une règle générale que je suis consiste à utiliser l'approche qui utilise le code le moins répété.

Dans votre situation, il semble que cela devrait être dans le contrôle.

Le but de cette philosophie est un entretien plus facile:

Si les modifications des sources de données, ou les modifications de la requête, je veux changer dans le code aussi peu d'endroits que possible, donc si vous pouvez le changer UNE FOIS en changeant le contrôle, c'est beaucoup plus facile que de changer des choses dans toutes les pages qui utilisent le contrôle.

Edition - a ajouté

Mieux encore serait d'avoir le contrôle appelant une procédure stockée, car il est généralement plus facile de modifier une procédure stockée que de code de redéployer qui a été modifié dans un environnement réel. Bien sûr, le code pour appeler la procédure stockée pourrait être dans le contrôle dans votre situation. Encore une fois, se référer à l'objectif de la philosophie.

+0

C'était aussi ma façon de penser. Je ne sais pas encore si j'utiliserai des procédures, car je pourrais utiliser nHibernate puisque la logique et le code de données pour le contrôle seraient encapsulés et utilisés uniquement dans le contrôle. L'ORM aiderait à réduire les lignes pour obtenir et récupérer, cartographier, mettre en cache, etc. – suedeuno

Questions connexes