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

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

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

MVC vs MVP

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

Но вот мое confusion.Below - образец кода MVC asp.net.

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

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

    }

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

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

Ответ 1

Фактически MVP является подмножеством шаблона MVC.

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

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

Ответ 2

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

enter image description here

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

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


Что страница MSDN также четко говорит

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

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

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

Ответ 3

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

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

Относительно конкретного вопроса. Я думаю, что контроллер обновляет представление с помощью модели, чтобы сделать это. Модель ничего не делает. Так или иначе я понимаю это, так или иначе...

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

Ответ 4

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

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

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