Це дійсно залежить від того, чого ви намагаєтеся досягти, і скільки інфраструктури ви вже хочете, а також простоти, з якою ви можете знайти зразки, які допоможуть вам допомогти. Я збираюся заявити про інтерес тут, тому що я брав активну участь хоча б в одній рамці MVVM, і я мав внесок до інших людей через групу WPF Disciples, тому я трохи упереджений. Сказавши це, ось що:
Microsofts MVVM Toolkit - це ще дуже багато на альфа-етапах. Коли він був спочатку випущений, це потребувало трохи дикунів від учнів через те, що він не зробив. Сказавши це, МС намагається покращити цю рамку, тому її слід спостерігати - вона поки що ще не готова.
MVVM Foundation - ах рамка Джоша Сміта. Джош - один із татусів МВВМ і був величезним прихильником і вчителем зразка. Як результат, багато чого, що ви знайдете в інших рамах, має відбитки пальців Джоша по всьому. Ця рамка покликана забезпечити основи MVVM, а не вирішувати деякі більш езотеричні проблеми. Спочатку це було призначено лише для WPF, але такі люди, як Лоран Буньйон і я, додали функціональні можливості / проекти, які означають, що це буде також сумісна з Silverlight рамка.
WAF - цього немає досвіду, тому я не можу коментувати це, боюся.
MVVM Light - Laurent Bugnion взяв на себе його, і щойно оновлений до версії 2. Це дуже хороший фреймворк, але знову ж таки не призначений охоплювати кожен аспект додатків MVVM. З огляду на досвід Лоран, він має дуже сильну підтримку Silverlight та Blendability.
Оновлення Лоран щойно повідомив мені, що версії .NET 3.5 та .NET 4.0 сумісні з функціями. Вау, щоб поїхати Лоран.
Сінч - відмінна структура MVVM, що відповідає лише WPF, від Sacha Barber. Це охоплює більше місця, ніж рамки, про які я говорив вище. Це відмінна рамка, і він використовує переваги концепцій, висвітлених у Біллі Кемпфі проектом Onyx . Onyx призначений для доповнення фреймворків MVVM і додає функціональних можливостей, які люди, як правило, важко робити в MVVM / WPF. Знову ж таки, спочатку призначений був лише WPF, Onyx прогресував, включивши сумісність з SL - робота, в якій я особливо пишаюся тим, що брала участь.
Призма - знову ж таки, я ніколи його не використовував, але чув про це багато хорошого.
Океан - Карл Шиффлетт, керівник програми в команді Cider, нещодавно випустив повнофункціональну рамку WPF MVVM. Знову ж таки, це відмінна основа, і є багато що рекомендувати.
Суть полягає в тому, завантажте різні рамки, погляньте на них і розробіть, яка з них відповідає найбільш інтуїтивно, як ви думаєте, так і з вашими вимогами. Якщо ви думаєте, що, можливо, ви хочете підтримати Silverlight з тієї ж кодової бази, тоді слід скидати лише рамки WPF.