Стоит ли тратить время на ASP.net Model View Presenter?
-
03-07-2019 - |
Вопрос
На этих выходных я читал о шаблоне MVP ASP.net, и кажется, что даже самая простая задача требует слишком много усилий, если выполнять ее по шаблону MVP, то окупаемость, похоже, будет в более крупном проекте, но я думаю про себя, если я собираюсь следовать за MVP.Почему бы просто не реализовать проект в ASP.net MVC?
Причина, по которой я смотрю на шаблон MVP, заключается в том, что я заметил, что во всех моих проектах веб-форм ASP.net в коде есть много кода только для обработки событий, если у меня много управления сервером в Интернете. form, поэтому я искал способ уменьшить это и наткнулся на шаблон MVP.
Стоит ли следовать шаблону MVP или просто перейти на ASP.net MVC?
Решение
Если вы начинаете новый проект, тогда ASP.net MVC - лучший выбор. Но если вы просто хотите провести рефакторинг существующего проекта, как вы только что сказали, тогда MVP - вариант, потому что нет простого способа конвертировать эти коды веб-форм в MVC.
Другие советы
Я бы рекомендовал прочитать следующие две ссылки, чтобы быстрее освоить MVP и MVC:
- Отличный пост в блоге Гила Финка о различных преимуществах MVP и MVC.
- Вопрос StackOverFlow о том, в чем разница между MVP и MVC.
Стоит ли переключиться?
Основываясь на том, что вы мне рассказали, я бы порекомендовал вам использовать модель пассивного MVP, упомянутую в статье выше.
Мои основные предположения:
- Вы имеете дело с существующей кодовой базой приложений WebForms.
- Вам необходимо использовать элементы управления ThirdParty .Net для существующей функциональности.
- Вы работаете над существующими приложениями и у вас нет времени на их перепроектирование.
- К любым веб-приложениям ASP.Net, над которыми вы будете работать в будущем, вы можете постепенно применять пассивный MVP и сразу же получать преимущества TDD.
Ваше представление (код программной части + aspx) по сути становится тупым и просто выполняет простые задачи:
- принять информацию, предоставленную ведущим
- реагирует на события и возвращает информацию ведущему
Я широко использовал эту модель для разработки веб-форм и не мог себе представить, что у меня не будет возможности выполнить модульное тестирование моей модели и кода Presenter.Как только вы создадите свою базовую модель, что не займет много времени, и увидите возможности модульного тестирования, работа с веб-формами станет приятной.
Некоторые ссылки на материалы MVP, на которых основана используемая мной модель:
Я бы также рекомендовал вам изучить MVC.
Если позволяет время, возьмите существующее приложение и портируйте его на MVC.Таким образом, ваша единственная задача — познакомиться с MVC, и когда вы переместите логику в шаблон MVC, вы обнаружите вещи, которые вы реализовали в WebForms и о которых никогда особо не задумывались, но теперь нужно решить по-другому.Отличный способ сравнить шаблоны и посмотреть, что подойдет именно вам.
Надеюсь, это поможет, не стесняйтесь задавать любые вопросы.
По моему мнению, идеальный путь для новых приложений - это MVC. Однако, если у вас уже есть большой код, использующий WebForms, шаблон MVP - это то, что вам нужно.
Я бы пошел на Asp.Net MVC, если это новый проект, но я согласен, MVP может быть хорошим примером для устаревших проектов веб-форм.
Вот пример из моего блога: http: // www .unit-testing.net / CurrentArticle / How-To-Use-Model-View-Presenter-С-Сеть САШ-WebForms.html
Мое личное мнение таково: если в коде много кода, есть другие способы, кроме принятия M-V-P, для его уменьшения, реорганизации и тестирования.
если ваша страница активно взаимодействует с пользователем (например, кнопки / ссылки включают / отключают, панели и элементы управления появляются / исчезают), M-V-P будет стоить хлопот.