Когда должен Вы пользоваться библиотекой или платформой по сравнению с Вашей собственной реализацией. Например. MVVM, я должен использовать Платформу Cinch/MVVM или прокрутить мой собственный код?
Лично я бы рекомендовал начать с MVVM и WPF без фреймворка.
Как только вы увидите «мертвые» точки, различные фреймворки начнут иметь гораздо больший смысл. Помните, что различные фреймворки для MVVM призваны быть «помощниками» для облегчения некоторых проблем при работе с MVVM (таких как обработка диалогов / служб, обмен сообщениями и т. Д.).
При этом многие из фреймворков (например, Cinch) действительно направляют вас к работе определенным образом, который может быть или не быть идеальным с учетом ваших обстоятельств.
Лично я не использую какой-то один фреймворк. Я позаимствую идеи и вдохновение из фреймворка, если потребуется, но обнаружил, что большинство фреймворков пытаются сделать слишком много.
При этом, если вы понимаете различные фреймворки, они очень полезны при условии, что тот, который вы выбираете, соответствует вашим целям развития. Например, MVVM Light предоставляет фантастическую, хорошо продуманную и протестированную среду обмена сообщениями, которая значительно упрощает многие сложные задачи в MVVM, так что это отличный способ получить некоторые функциональные возможности, которые являются довольно надежными.
Используйте фреймворк. Написание собственного фреймворка для проекта, у которого есть крайний срок, в большинстве случаев не очень хорошая идея. Да, почему бы не создать фреймворк для хобби-проекта. В вашем случае вы можете посмотреть здесь:
https://stackoverflow.com/questions/1280462/what-mvvm-framework-are-you-using
Если вам разрешено использовать Framework для проекта, а размер сборки на самом деле не так важен, я почти всегда рекомендую использовать этот каркас (академические проекты не включены).
Вы получите что-то, что (обычно) тщательно протестировано и задокументировано, вместо того, чтобы экспериментировать и устранять неполадки в вашей собственной версии, созданной вручную.