MonoCross is a very thin layer on top of Xamarin's code。 (請參閱右上角的Xamarin貼紙?)
它們提供在不同實現中重複使用相同的MVC代碼,如MonoTouch和MonoDroid。
抽象掉MVC適用於小樣本,但這些傢伙似乎宗教相信100%的代碼共享,這是我不同意。這是一個美麗的概念,但它從未在現實生活中發揮過作用。
製作優秀的應用程序很難,但我不認爲這很難,因爲數據庫技術不同,或者因爲您必須爲ASP .NET MVC,MonoTouch或MonoDroid編寫類似的類。如果這是軟件開發的真正挑戰,那麼我們很多年前就已經解決了它。
MonoCross似乎是premature generalisation的一個練習,它是所有程序員都喜歡的東西。
但是抽象不是免費的。由Eric Gunnerson考慮這個軼事:
我已經知道團隊中這種滾雪球 - 他們結束了與在很多不同的場景中使用的「瑞士軍刀」的組成部分。像許多組件一樣,它很大,很複雜,並且有很多難以理解的行爲。 但開發它是一個有趣的開發人員涉及的技術挑戰(讀作「對他們的職業有趣」)
問題出現時,團隊發現一個操作花了約4倍的時間正如它應該。但是由於組件執行操作的廣義性質,沒有簡單的方法來優化它。
如果該操作是在不使用「超級組件」的情況下從頭開始開發的,那麼將會有幾種簡單的優化方法可供使用。但是這些都不適用於廣義組件,因爲你不能只在一個場景中實現優化 - 它必須適用於所有場景。你無法承擔開發成本,無法讓它在任何地方都能正常工作,在這種情況下,即使可能,也會導致其他情況下的性能下降。
(重點是我的。)
雖然MonoCross developers seem enthusiastic about it,似乎沒有要圍繞項目的社區,我找不到建立在iFactr或MonoCross的上方設置了一個應用程序。
這就是說,我不認爲他們提供超過MonoTouch或MonoDroid的任何有價值的東西。
在旁註中,Miguel approves :-)。
我不知道MonoCross,但爲了代碼重用而犧牲用戶體驗非常少*您需要什麼。不同的平臺不僅具有不同的小部件 - 它們也有不同的約定,內容呈現樣式等。使用所有平臺的最低公分母很少有理由。 –