2008-09-26 5 views
4

В приложении asp.net я хотел бы объединить использование Webclient Software Factory (WCSF) и связанного с ним шаблона представления представлений модели (MVP) с помощью метода страницы, который является статическими методами в .aspx Views, отмеченном с атрибутом [WebMethod].Как интегрировать шаблон ASP.NET Model View Presenter (MVP) и статические методы страницы, помеченные как [WebMethod]?

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

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

+0

Удалить теги asp и .net и заменить одним тегом asp.net. – AnthonyWJones 2008-09-26 21:48:50

ответ

4

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

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

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

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

+0

Мне нравится ваше объяснение преимуществ и недостатков методов страницы и сравнение с веб-службами. Я хочу посмотреть, не комментирует ли кто-нибудь еще. – eniac 2008-09-28 07:54:55

2

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^