2009-05-15 4 views
2

J'utilise l'approche Subsonic 3 ActiveRecord et je me demandais ce qui était le plus efficace en termes de publication de données. Voici les 2 scénarios:ASP.Net MVC FormCollection VS ModelBinding Efficacité

i)

public ActionResult Edit(Person PostedItem) 
{ 
     Person p = new Person(PostedItem.ID); 
     p.Name = PostedItem.Name; 
     p.Update(); 
} 

ii)

public ActionResult Edit(FormCollection PostedItem) 
{ 
     Person p = new Person(PostedItem["ID"]); 
     p.Name = PostedItem["Name"]; 
     p.Update(); 
} 

J'imagine la FormCollection est plus efficace que le processus de réflexion modelbinding n'a pas besoin de se produire mais son plus agréable à avoir quelque chose de fortement typé.

Existe-t-il une approche alternative? Y a-t-il autre chose qui peut être mis dans les paramètres d'édition qui transmettent les données publiées?

Merci

Répondre

3

je pense que la performance de réflexion est tout à fait sans importance ici. Heck, il pourrait même être plus rapide que l'indexation de chaîne - je n'ai jamais pris la peine de mesurer. Quel que soit le coût réel, il sera presque certainement éclipsé par le coût de sauvegarde des modifications apportées à la base de données. En outre, les modifications (par opposition aux chargements de page) ne se produisent pas si souvent que quelques millisecondes chargeront votre serveur.

La première règle de l'optimisation réelle est de profiler votre application et d'optimiser uniquement les parties qui sont réellement lentes!