Serait NHibernate être utilisé dans des projets d'envergure comme par exemple facebook? (Pour des arguments)

voix
4

Pour ceux qui connaissent les rouages ​​de NHibernate, pensez-vous d'une grande application web à grande échelle comme disent facebook / myspace utiliserait NHibernate?

Ou bien est NHibernate adapté pour plus de sites à faible trafic tels que les sites de l'entreprise, etc? à-dire pas prêts pour les entreprises en raison de sa nature bavarde?

Créé 18/05/2009 à 12:42
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
9

NHibernate n'est pas bavard du tout. A propos de l' évolutivité, il y avait déjà une question sur les groupes NH , ce qui était plus sur la complexité de la base de données, le trafic, mais pourrait encore être intéressant pour vous.

Même s'il y a toujours des plaintes de requêtes inutiles au sujet de chaque ORM, en raison de la nature générique d'un ORM, cela ne signifie pas qu'il est bavard. D'autre part, il permet d'optimiser les situations où il serait trop complexe pour optimiser par écrit à la main DAL de. Par exemple. lots de requête ou le chargement différé.

NHibernate est tout à fait léger par rapport aux autres de ORM et par rapport à ses caractéristiques puissantes.

NHibernate (comme tout autre ORM) pourrait être considéré comme excessif s'il n'y a pas de modèle d'affaires orienté objet, mais vous devez optimiser pour des performances maximales. Je ne pense pas que Google pourrait utiliser NHibernate pour son moteur de recherche, par exemple.


Modifier:

La performance et la puissance de NHibernate ne sont pas entièrement gratuitement. Il exige que les développeurs comprennent au moins les notions de base sur les bases de données relationnelles. L'essai des autres ORM pour cacher toute la problématique relationnelle, ce qui conduit à un comportement beaucoup plus unoptimized.

Créé 18/05/2009 à 13:05
source utilisateur

voix
1

NHibernate est une blague professionnelle. Dans mon entreprise, son utilisation a été interdite par plusieurs raisons. Comme outil est tout à fait improductif; vous allez passer d'innombrables heures à essayer de comprendre, ou de trouver d'autres stratégies dans une documentation rare.

Beaucoup mieux, utilisez votre propre produit DAL et SPs pour atteindre la haute performance. Vous aurez un plan d'exécution mis en cache, et à la fin qui est ce qui importe vraiment.

NHibernate n'a pas de support avancé pour memcached, qui est spécialement ce que vous allez utiliser si vous voulez construire une solution Web évolutive, comme Facebook.

Je travaille pour une entreprise de jeux sociaux, et nous avons spécialement interdit d'utiliser NHibernate en particulier.

Créé 11/12/2012 à 13:54
source utilisateur

voix
0

NHibernate prend en charge la mise en cache de requête, la mise en cache de niveau 2 en fonction des clés primaires, et aussi cache de session pour les coups répétés sur la même entité au sein de la même session.

C'est tout d'une grande aide, mais aussi longtemps que vous frappez une base de données avec une grande charge, vous allez avoir des problèmes d'échelle. La meilleure façon d'escalader une base de données est de minimiser la quantité de temps que vous avez réellement l'utiliser. cache distribué, comme memcache, et la mise en cache de vos sorties (soit vues post-datacrunched ou html) sont les meilleures façons d'échelle d'une application. Si les clients arrivent sur la base de données régulièrement, vous le faites mal, ORM ou non. Dans une application .NET, comme une application MVC typique, présente les avantages d'être en mesure d'utiliser varyby la mise en cache de sortie, beignet et cache-trou de beigne, ainsi que des clients pour memcache à utiliser avec NHibernate et pour vos ViewModels.

Créé 06/03/2013 à 20:58
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more