2008-10-07 5 views
3

Je suis dans le démarrage d'un projet utilisant ASP.NET MVC et j'ai commencé à créer mes modèles. Depuis que je connais certains Ruby On Rails et voudrais utiliser un système similaire à Rails Enregistrement actif que possible.ASP.NET MVC + ORM

Avez-vous déjà utilisé Castle Projects Active Record dans une application ASP.NET MVC (ou toute autre application pertinente) et avez de l'expérience à partager?

Est-ce que MVC et Castle Active Record sont la bonne solution? Je vous conseille plutôt d'utiliser LinqToSql.

S'il vous plaît partagez vos pensées et expériences que vous pourriez avoir un gain.

Éditer: Pour clarifier; Je viens d'un arrière-plan ASP.NET et C# long mais j'ai regardé un peu à Rails et aime comment vous pouvez facilement créer l'ORM

Répondre

5

J'ai utilisé Castle Active Record avec ASP.NET MVC. J'encourage fortement ce modèle, car ActiveRecord/NHibernate sont beaucoup plus matures que LINQ to SQL ou Entity Framework.

Je pense que ASP.NET MVC a un brillant avenir et le recommande sur monorail pour de nouveaux projets. Cependant, comme je l'ai dit, ActiveRecord est (à mon avis) un ORM supérieur à LinqToSQL.

+0

Mike, comment avez-vous contourné le problème d'ASP.NET MVC nécessitant des assemblages fortement nommés pour l'échafaudage? THX. – ConsultUtah

2

En venant d'un fond de Rails, Castle Project AR se sentira plus près de ce que vous avez l'habitude , mais Linq to SQL est mieux intégré à l'ensemble de l'écosystème Microsoft et vous trouverez peut-être que cela vaut la peine de l'apprendre.

2

Linq to SQL a quelques pièces manquantes majeures, notables de nombreuses relations. Si vous allez sur la route "pure" Microsoft, regardez .net 3.5 sp1 et Linq to Entities, qui utilise le nouveau ADO.net Entity Framework.

+0

Sons intresting! – ullmark

+0

vous pouvez simuler plusieurs à plusieurs avec des extensions de méthode –

1

J'ai utilisé le Castle ActiveRecord avec MonoRail et il est assez facile à utiliser et intuitif, bien que les problèmes inévitables que vous rencontrerez sont souvent difficiles à diagnostiquer. Sa documentation n'est également pas la meilleure (comme pour de nombreux projets open source). Par défaut, il utilise NHibernate ORM ci-dessous, et si vous étiez spécifiquement après avoir utilisé un framework ORM, je crois qu'il y a eu quelques efforts pour supporter LINQ avec NHibernate, mais aucune idée de la distance.

Je pense que cela dépend aussi de la taille de l'application, si c'est un projet rapide qui ne sera pas nécessairement maintenu, alors la facilité d'utilisation d'ActiveRecord peut être utile, mais LINQ semble aussi assez facile soigné. Si c'était une application plus grande, je considérerais rouler votre propre couche de données en utilisant NHibernate, encore une fois si c'est spécifiquement l'ORM que vous voulez.

1

Avez-vous besoin de l'ORM pour être libre (comme dans la bière)/open source?

Si ce n'est pas le cas, je recommanderais fortement eXpress Persistent Objects de DevExpress.

Sinon, je ne pense pas que LINQ est similaire, je ne l'ai pas utilisé ActiveRecord du château, mais je suppose que c'est le plus semblable à RoR

0

MVC ne sait pas ce ORM que vous utilisez, ou est-il même un outil ORM derrière. Controller/Action doit envoyer des références d'objet à View, afin que l'objet puisse être simple int, string array, DataSet, objet Linq, objet ActiveRecord, peu importe, ce n'est pas grave pour voir comment un objet est rempli de données!

0

Préférez NHibernate comme couche de persistance.