Есть ли хороший исходный код для изучения MVP?

Я знаю, что будущее за MVC, но для некоторых из нас, все еще застрявших в старой доброй стране веб-форм, я пытаюсь научиться делать TDD и представить лучшее тестирование для нашего текущего приложения ...

в основном веб-приложение asp.net 2.0 c # довольно сложно с некоторой логикой в ​​sproc, некоторыми в javascript через обработку данных json, некоторыми в пользовательских элементах управления и некоторыми в коде позади. не говоря уже о некоторых библиотеках, чтобы было веселее.

Я буквально понятия не имею, как даже начать разбивать вещи на более мелкие части, чтобы провести какое-либо тестирование.

отсюда я могу найти только этот связанный вопрос, который не особо помогает. и мне вроде как это простой способ начать работу, но искал более полные образцы.

Любая помощь в исходном коде, учебниках и т. Д. Была бы хороша :) спасибо!


person melaos    schedule 15.09.2010    source источник
comment
В настоящее время я работаю с приложением, разделенным на уровни пользовательского интерфейса и WCF с пользовательским интерфейсом, выполняемым в шаблоне MVP, с большим количеством параметризованного SQL, идущим против устаревшей СУБД, некоторые jQuery / JSON в сочетании с WebMethods делают что-то с довольно небольшим динамическим контентом на взгляды. Я не уверен, что можно опубликовать в качестве ответа на ваш запрос. «Если у тебя есть подробности, я смогу помочь», - подумал я. Мы используем StructureMap для IoC и nUnit вместе с Rhino Mocks для тестирования.   -  person Hari Pachuveetil    schedule 15.09.2010
comment
вау, приятно осознавать, что твое приложение, вероятно, вышло мне из-под контроля. Но то, что я пытаюсь сделать здесь, - это найти некоторый код, ввести несколько тестов и постепенно перейти к покрытию большего количества кодов с помощью тестов. как и с чего вы начали?   -  person melaos    schedule 15.09.2010
comment
Мне посчастливилось попасть в эту команду с людьми, более опытными в TDD и MVP, которые уже пошли по проекту на полпути. Но первым шагом определенно было бы проникновение в парадигму «проверяемых докладчиков, управляющих взглядами». Ответ Лениеля (stackoverflow.com/questions/3714189/) кажется хорошим местом для начала ...   -  person Hari Pachuveetil    schedule 15.09.2010
comment
Сначала я подумал, что вы хотите узнать, как получить награду MVP: P, и собирался вас троллить :) Но да, посмотрите предложение @leniel Macaferi.   -  person Pure.Krome    schedule 15.09.2010
comment
Используя исходный код на практике, модульные тесты также включают объяснение его преимуществ - Advertisingmarket.co.uk/MVPPattern   -  person Julius Depulla    schedule 05.12.2015


Ответы (5)




Мне очень понравилась книга Дино Эспозито. МНОГО деталей, включая IIS7. Но я также прошел курс, оплачиваемый моей компанией, который добавил много деталей.

Javascript и JSON в конечном итоге не являются частью ASP.NET MVC. ASP.NET MVC поддерживает их. Разница может быть незначительной, но для разбивки вещей на управляемые части для обучения полезно это осознавать. Итак, я бы порекомендовал вам положить каждого в свое маленькое ведро, чтобы разбить его на части.

Я бы даже пошел дальше и сказал, что вы должны сначала поработать над пониманием каждой части MVC. M - это модель и, в конечном итоге, просто старый класс, поэтому здесь не так много смысла понимать, кроме того, как с ним взаимодействуют View и Controller.

ИМО, Контроллер - это самая важная часть для понимания, и часть этого - понимание маршрутов. Контроллер находится на сиденье водителя (отсюда и название), а маршруты - это то, как вы переходите от URL-адреса к нужному контроллеру. Все остальное от этого уводит.

Понимание представлений - это в первую очередь понимание простого HTML с некоторыми ‹%%> для включения битов вашего приложения. Короче говоря, если вы разбираетесь в классическом ASP или веб-формах без кода, у вас будет хорошее понимание практически всего синтаксиса, который вам нужен. НО, как правило, у вас будет намного меньше кода в представлении, и вы забудете о ‹asp: xxx runat =" server ›".

Как только вы поймете, как контроллер принимает ввод, а затем подключится к нему для отправки правильного ActionResult (представления являются наиболее распространенными для запуска), вы сможете начать вводить другие биты.

Я уверен, что через некоторое время вы не будете скучать по WebForms.

person Jim L    schedule 15.09.2010
comment
Я не пытаюсь быть радикальным и одним махом переместил все приложение на MVC. Скорее я пытаюсь научиться делать TDD и ввести больше тестов в свое текущее приложение веб-формы :) - person melaos; 15.09.2010
comment
@melaos - мы тоже так сказали. Затем, когда мы добавили один фрагмент функциональности, построенной на основе MVC, мы сказали, что закончили создание новых веб-форм. Нам это очень понравилось. Хотя кажется, что есть еще кое-что, что нужно понять заранее, на самом деле это не так. И, похоже, вам гораздо меньше нужно беспокоиться, когда вы в полете. - person Jim L; 15.09.2010

У Фила Хаака, который работает над Microsoft ASP.NET MVC, есть два хороших сообщения в блоге, которые могут оказаться полезными:

  1. Контроллер надзора ASP.NET (тесты модуля представления модели) от схемы к модулю представления модели Код
  2. Все, что вы хотели знать о MVC и MVP, но боялись спросить

Они не будут полностью исчерпывающими, но должны послужить хорошим введением для начала.

РЕДАКТИРОВАТЬ: Дино Эспозито написал статью на эту тему для журнала MSDN за сентябрь 2010 г .: Лучшие веб-формы с шаблоном MVP.

person Ahmad Mageed    schedule 15.09.2010

Вот хороший пример, из которого вы получите хорошее представление о реализации MVP в ASP.Net WebForms:

http://www.avantprime.com/articles/view-article/2/model-view-presenter-(mvp)-design-pattern-in-asp.net

person Community    schedule 10.10.2010