Как мне интегрировать ASP.Шаблон представления сетевой модели (MVP) и методы статической страницы, помеченные как [WebMethod]?

StackOverflow https://stackoverflow.com/questions/141104

  •  02-07-2019
  •  | 
  •  

Вопрос

В asp.net в приложении я хотел бы объединить использование Webclient Software Factory (WCSF) и связанного с ним шаблона представления модели (MVP) с методом страницы, то есть статическими методами в представлениях .aspx, помеченных атрибутом [WebMethod].

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

Как можно было бы расширить шаблон MVP asp .net в WCSF для поддержки [WebMethod] на странице, он же View?

Это было полезно?

Решение

Недавно у меня была похожая проблема, когда я делал проект с шаблоном MVP и хотел получить большую интеграцию AJAX.Вам лучше всего использовать веб-сервисы, соответствующие шаблону MVP, который вы вызываете.

Имейте в виду, что PageMethod - это немного больше, чем веб-сервис, только на текущей странице.У него нет доступа к каким-либо объектам уровня страницы, поэтому преимущества его наличия минимальны.Я действительно думаю, что они невыгодны, они дают разработчикам (которые не знакомы с этой концепцией) представление о том, что они могут взаимодействовать с объектами уровня страницы.

Обратная сторона медали - это то, что делает ваш PageMethod, если вашему методу page не нужно взаимодействовать с моделью (скажем, он обрабатывает сложные арифметические вычисления, которые быстрее в C # / VB.NET, чем JS), тогда операция действительно является операцией уровня пользовательского интерфейса и, вполне вероятно, нерелевантна, если вы хотите превратить приложение в WinForm (или что-то еще).

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

Другие советы

Я думаю, вы могли бы приблизиться к тому, что ищете, используя ASP.Веб-сервис Net AJAX вместо методов статической страницы.Преимущество веб-сервиса в том, что он не статичен, и в зависимости от того, как реализованы ваши представления (я не знаком со спецификой шаблона WCSF MVP), вы потенциально могли бы сделать веб-сервис своим уровнем "Просмотра" .. или, по крайней мере, чем-то довольно близким.

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

Одна из вещей, которая мне понравилась в этом подходе, заключается в том, что все биты, включая веб-сервис, поддаются тестированию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top