Пользовательская реализация MVVM Vs. PRISM

Этот вопрос вызван этим закрытым вопросом:

Что на самом деле предлагает Prism разработчику? И стоит ли оно того?

Я уже реализовал свои собственные реализации MVVM в корпоративных приложениях. Мне интересно знать:

  • Почему я должен изучать PRISM (особенно PRISM, а не другие инфраструктуры MVVM)?
  • Преимущества PRISM по сравнению с индивидуальной реализацией MVVM и
  • Стоит ли инвестировать в изучение PRISM?

Я надеюсь, что этот вопрос не субъективен, и, пожалуйста, не вдавайтесь в споры :)

25
задан Community 23 May 2017 в 11:52
поделиться

2 ответа

Как и во многих средах, которые выполняют общую задачу для вас, вы получаете:

  1. Проверено гораздо большим количеством глазных яблок : чем просто вы. Это (надеюсь) включает в себя модульные тесты, которые вы можете или не можете делать при построении вашей собственной платформы.
  2. Более читабельно для других разработчиков : никто другой не имеет опыта работы с вашей пользовательской средой MVVM. Но если другой разработчик присоединяется к вашему проекту, или присоединяется к вашей команде, или присоединяется к вашей компании, они могут сразу перейти к коду Prism.
  3. Лучшее документирование : В том же духе любой новый участник, скорее всего, должен выучить веревки, вручную собирая коллективные знания из своего мозга и любых других пользователей в команде, а также просматривая источник. код. У сторонних фреймворков есть своя собственная документация, и в блогах публикуется больше постов в блогах.
  4. Лучшее сообщество : Вы можете задать вопросы на StackOverflow о том, «как мне сделать X с Prism?» Вы не можете спросить об этом с помощью вашей пользовательской структуры.
  5. Вероятно, более способный : из-за необходимости обслуживать больше пользователей, чем просто вы / ваша команда, будет добавлено больше функций. Если вам нужно сделать что-то связанное с MVVM, чего вы никогда раньше не делали, скорее всего, поддержка не встроена в вашу собственную инфраструктуру MVVM. Но это, вероятно, в Призме.
  6. Лучшая структура : Допустим, вы хотели сделать что-то, связанное с MVVM, но это не было в Prism. Очень вероятно, что для этого есть веская причина! Если что-то не в (достаточно зрелой) среде, созданной для работы в определенной области, это признак того, что вы пытаетесь сделать это неестественным или неуклюжим способом решения проблемы. Работая с вашей собственной платформой, слишком легко сказать «о, я добавлю эту функцию», а затем через 6 месяцев поймете, что вы допустили огромную ошибку, потому что эта новая функция делает ваш код очень сложным для отслеживания или в конечном итоге становится вектором для многих ошибок или еще много чего.
  7. Резюме CV : у меня были бы смешанные чувства по поводу найма кого-то, кто «внедрил и использовал пользовательскую среду MVVM». Хотя это может означать, что они умны, это также может указывать на страшный «не построенный здесь синдром». С другой стороны, включение «Microsoft Prism MVVM Framework» в список огромных технологий может быть неплохо, но это не так. Лучшим из обоих миров была бы более длинная точка пули в духе «глубокого понимания паттерна MVVM, достигнутого путем первой реализации игрушечной инфраструктуры MVVM для целей обучения, прежде чем перейти на MVVM Prism». Да, разница между этими тремя понятиями не будет создавать или разрушать ваше резюме, и синдром «не встроенный здесь» - это то, что, как мы надеемся, возникнет на собеседовании, но это просто стоит иметь в виду, особенно если вы подаете заявление для места, которое получает достаточно резюме, они могут позволить себе выбросить все, что их немного нервирует.
25
ответ дан 28 November 2019 в 21:29
поделиться

С помощью призмы и MEF вы можете создавать расширяемые и обслуживаемые объекты. Сетевое приложение. С каждым модулем со своим пользовательским интерфейсом в отдельной DLL. Единственным соединением между вашими модулями или расширениями и MainUI будет область, в которой вы будете вводить пользовательский интерфейс вашего расширения. И поверьте мне, это очень расширяемый и обслуживаемый

0
ответ дан 28 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: