Разница между ASP.NET MVC и MVP? они оба одинаковые?

Я хотел узнать разницу между asp.NET MVC и MVP, они оба одинаковы? ниже приведена схема архитектуры, на которую я ссылался.

(URL изображения: http://msdn.microsoft.com/en-us/library/ff647859.aspx)

MVC против MVP

основное различие, которое я узнал между MVC и MVP из диаграммы, заключается в том, что в MVC модель обновляет представление, а в MVP Presenter обновляет представление.

Но вот мое замешательство. Ниже приведен пример кода MVC asp.net.

public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }

    }

здесь Контроллер возвращает / обновляет представление, поэтому теперь, согласно диаграмме, это MVP

Сходны ли asp.net mvc и MVP? если нет, то в чем разница? Может кто-нибудь меня направит.


person Dalton    schedule 15.11.2013    source источник
comment
Эта диаграмма MVC мне кажется вводящей в заблуждение.   -  person Liam    schedule 15.11.2013
comment
возможный дубликат Что такое MVP и MVC и что такое разница?   -  person Liam    schedule 15.11.2013
comment
Ваш вопрос сбивает с толку ASP.Net MVC - это framework, основанный на шаблоне MVC, а MVP - это шаблон. Так вы действительно хотели поместить это в контекст ASP.Net?   -  person Chris Moutray    schedule 15.11.2013
comment
Я изучал Asp.net mvc, поэтому я поставил его таким образом .... вместо только MVC.   -  person Dalton    schedule 15.11.2013
comment
Эта страница MSDN предшествует Asp.Net MVC. Он из 2005 и предназначен для Composite UI Application Block, что бы это ни было ... msdn.microsoft.com/en-us/library/ff648900.aspx   -  person Liam    schedule 15.11.2013
comment
@Liam Я сослался на этот сайт только ради диаграммы ... и ничего больше. ;-)   -  person Dalton    schedule 15.11.2013


Ответы (4)


На самом деле MVP - это подмножество шаблона MVC.

В вашем примере asp.net mvc контроллер не обновляет представление, а просто передает модель в представление, и представление обновляется в соответствии с моделью.

Но в MVP (который обычно используется с winforms и веб-формами в стеке Microsoft) докладчик получает данные из представления, обновляет модель, и при изменении модели докладчик прочитает модель и обновит представление.

person VahidNaderi    schedule 15.11.2013

Эта диаграмма MVC мне кажется вводящей в заблуждение. Я бы назвал это более актуальной архитектурной схемой:

введите описание изображения здесь

это с сайта PHP, но здесь вы можете ясно увидеть взаимосвязь между представлением и контроллером.

Различия между MVC и MVP тонкие, этот вопрос (как упомянуто выше) разъясняет эти различия.


На этой странице MSDN также четко сказано

Этот контент устарел и больше не поддерживается. Он предоставляется в качестве любезности для людей, которые все еще используют эти технологии ....

Я думаю, что этот ресурс предшествует Asp.Net MVC.

Сами статьи предназначены для чего-то, что называется Composite UI Application Block и являются с 2005 года. Я бы пошел на http://www.asp.net/mvc/, чтобы еще немного актуальной и точной информации о MVC.

person Liam    schedule 15.11.2013
comment
Я использовал эту страницу только для диаграммы (на ней были и MVP, и MVC вместе) .... многие другие страницы также показывают похожую диаграмму .... кстати, я ссылаюсь на Pro ASP.NET MVC 4: книга Адама Фримена для mvc .. . - person Dalton; 15.11.2013

Нет, они не такие. Это две разные парадигмы (шаблоны проектирования), используемые для взаимодействия с пользователем. На основе этих парадигм команда ASP.NET разработала две разные платформы для написания веб-приложений. Первый - это веб-формы ASP.NET, основанный на программировании форм на основе событий. Второй - ASP.NET MVC, основанный на использовании модельных представлений и контроллеров (MVC).

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

По поводу конкретного вопроса. Я думаю, что Контроллер обновляет представление, используя для этого модель. Модель ничего не делает. Во всяком случае, я так понимаю ...

Надеюсь, я помог!

person Pantelis Natsiavas    schedule 15.11.2013
comment
ASP.Net не разрабатывала эти шаблоны. Они появились задолго до того, как к ним прикоснулась Microsoft. - person Liam; 15.11.2013
comment
Ты прав. Я сказал, что команда ASP.NET разработала два разных фреймворка для написания веб-приложений. Надеюсь, я не имел в виду, что шаблоны проектирования были разработаны Microsoft. Спасибо за разъяснения. - person Pantelis Natsiavas; 15.11.2013
comment
Но моя путаница была между MVC и MVP, а не между веб-формами asp.net и MVC. - person Dalton; 15.11.2013
comment
Да, это вообще не отвечает на вопрос. - person Liam; 15.11.2013
comment
и теперь это тоже неточно Модель ничего не делает.. Да, Модель что-то делает, она хранит данные. - person Liam; 15.11.2013
comment
Я только что отредактировал, добавив две строчки. Я очень торопился и случайно удалил какой-то текст. Надеюсь, теперь мое мнение ясно ... - person Pantelis Natsiavas; 15.11.2013

Попытайтесь понять концепцию MVC и MVP без привязки к какой-либо технологии.

Метод действия в контроллере ASP.NET MVC возвращает ActionResult с Метод View не нарушает никаких закономерностей. Он просто говорит, что функциональность контроллера реализована, и давайте визуализируем представление из разметки с помощью синтаксиса Razor / ASP.NET.

В мире ASP.NET - ASP.NET MVC - это реализация шаблона MVC. Забытый завод программного обеспечения веб-клиентов - это реализация MVP

person Regfor    schedule 15.11.2013