Ils n'ont presque aucune valeur aujourd'hui si vous travaillez avec une base de données moderne. Le SQL paramétré utilisant un bon ORM vous donnera les mêmes plans d'exécution mis en cache et les mêmes avantages de sécurité que vous recherchez avec les procédures stockées.
Je recommanderais parce que c'est une bien meilleure façon de parvenir à l'ignorance de la persistance. Et à mon humble avis, c'est l'objectif de quiconque conçoit un modèle. Vous devriez penser d'abord à l'objet au lieu des données d'abord.
La meilleure ressource est autour d'une série screencast par Steve Bohlen « The summer of nhibernate »
également LINQ to NHibernate est disponible et fonctionne très bien pour toute requête dynamique que vous pourriez avoir besoin d'écrire. La seule douleur que vous remarquerez avec NHibernate est le XML, mais si vous aimez vraiment l'ORM, vous pouvez écrire une interface fluide à la place en utilisant FNH.
J'ai trouvé que NHibernate était le meilleur outil pour modéliser un domaine car vos objets sont 100% sans infrastructure et cela vous permet de faire tout ce que vous voulez sans avoir à vous soucier de la base de données. Aussi, si vous êtes dans les tests unitaires de quelque nature que cela rendra votre vie beaucoup plus facile: P
Modifier
Une partie de la raison pour laquelle je répondu à votre question est que j'ai construit beaucoup un système utilisant des procédures stockées et trouvé à regretter cette décision plus tard. Mais dans ma situation j'avais une exigence par un dba afin que je ne pouvais pas m'éloigner de la norme.
Si vous êtes déjà en train de regarder LINQ to SQL, je vous encourage simplement à regarder NHibernate comme une autre bonne option pour atteindre l'objectif de l'ignorance de la persistance. Quand j'ai évité de penser aux données du problème, cela m'a permis de travailler à un niveau beaucoup plus élevé et de profiter de la plate-forme .net pour résoudre les problèmes. TSQL a sa place mais si vous écrivez une application et que vous voulez la conserver, essayez de penser à la manière dont les objets de votre domaine fonctionneront ensemble en mémoire en premier.
Edit 2
Je ne sais pas pourquoi je suis un vote vers le bas pour suggérer NHibernate -. Après tout, vous dit que vous étiez ouvert à autre chose que L2S
« Tous et toutes les idées sont les bienvenues Si J'utilise même LINQ to SQL? Devrais-je concevoir mes procédures stockées pour ne renvoyer qu'un résultat? Je me sens un peu perdu. "
Le point de ma réponse était juste cela - pour fournir une « bienvenue » idée ...
Personnellement, je trouve NHibernate maintenant beaucoup moins convaincant qui existe LINQ. LINQ-to-SQL peut être un excellent ORM pour beaucoup de gens – ryber
Bien sûr, mais vous pouvez faire exactement la même chose maintenant que NHibernate a un fournisseur LINQ avec l'avantage supplémentaire que vous pouvez travailler avec des mappages plus complexes. Par exemple: si vous avez des données parent dans une table séparée de l'enfant, nhibernate est cool avec ça. Mais avec LINQ to SQL, vous devez avoir tout dans une table. Donc, pour des situations comme celle-ci où vous avez besoin de plus de flexibilité ou si vous savez que la complexité du modèle (ou de la base de données) est grande - IMHO NHibernate est le meilleur outil pour le travail. –
C'est utile seulement si c'est utile pour vous. Si vous n'avez jamais besoin de ces fonctionnalités avancées, alors c'est juste une autre bibliothèque que vous devez suivre. Je ne l'ajouterais probablement jamais à un projet avant qu'il ne soit évident que ce serait utile. Notez que je ressens la même chose à propos des bases de données. Je pense que pour de nombreux projets .net d'entreprise (la plupart du temps des CMS et des outils de processus améliorés), c'est probablement exagéré. Je ne dis pas que c'est mauvais ou quoi que ce soit, c'est juste que LINQ est déjà là et bien documenté et bien supporté sur les blogs et SO. Donc, si un débutant m'a demandé avec lequel aller, je dirais probablement LINQ – ryber