2012-03-28 37 views
0

我正在處理.net MVC項目組,我們在其中編寫頁面映射代碼以將視圖模型映射到域對象和域對象到DTO(我們使用Java Web服務),反之亦然。由於性能問題,我們的架構師排除了automapper。我們剩下幾十個「幫手」班,以適應必須手寫和維護的映射。這是非常麻煩的。我想要的是一個工具,可以在設計時自動生成具有automapper功能的類型之間的映射函數(使用基於約定的映射等)。我找不到一個。有沒有人有任何想法?我的雙手依靠使用基於反射的映射工具,如automapper。 我欣賞任何意見。 謝謝Asp .NET MVC。在設計時生成映射代碼以將視圖模型映射到域對象

+1

與建築師交談。他的裁決是無稽之談。 – 2012-03-28 11:13:20

+0

我不認爲你會發現比AutoMapper更好的東西。實際上,在引導之後,AutoMapper速度非常快,我在幾個項目中使用了它,並且我們從未遇到由它引起的任何perfo問題。 – 2012-03-28 11:30:34

+0

謝謝。我贊成引入Automapper,但是當發佈一些測量結果報告將自動映射器和手動映射之間的映射性能降低了7倍時,很難爭論它! [AutoMapper](http://www.codeproject.com/Articles/61629/AutoMapper])。我正在研究t4來自動生成代碼,但不喜歡編寫複雜算法來識別類型之間_類似屬性的挑戰。 CustomerID和Customer_ID。 – 2012-03-29 08:22:56

回答

0

手動映射比任何自動映射框架都快。這就是說,AutoMapper速度非常快。是的,使用大量數據操作時速度較慢,但​​這是.NET中的限制,而不是AutoMapper。

如果我想處理異常大量的數據,我會使用本機代碼(如C++)代替。

但是,在大多數情況下,您將永遠不會遇到大量的數據。在整個網絡中進行的大部分「性能」測試,都是通過數十億個對象來完成的,以便獲得幾秒鐘的差異。所以除非你真的想要數十億個對象,否則不要丟棄AutoMapper。日常使用幾乎沒有任何折衷。