Использование действия контроллера ASP.NET MVC в приложении WPF

Я разрабатываю веб-приложение, которое имеет два пользовательских интерфейса: традиционную веб-страницу (представления HTML) и приложение WPF. Я знаю, что для того, чтобы вызвать разделение, лучше всего разработать, как показано ниже, например, веб-API, который используется приложением MVC и приложением WPF.

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

Однако я ограничен во времени, и мне интересно, смогу ли я обойтись без традиционного дизайна MVC, как показано ниже. Кроме того, у меня может быть намного больше операций, не связанных с CRUD, которые, если бы я перешел на WebAPI, пришлось бы реализовать как стиль RPC, добавив сложности (больше работы, больше времени) webAPI.

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

Мой единственный вопрос: можно ли использовать действие MVC в приложении WPF? И если да, нужно ли мне для этого использовать какой-либо специальный API, как указано в этом сообщении или будет достаточно нового пакета HttpClient?


person superartsy    schedule 14.10.2013    source источник


Ответы (1)


Да, приложение WPF, как и любое другое приложение, которое может отправлять HTTP-запросы и получать ответы, может использовать действие контроллера ASP MVC.

В конце концов, платформа ASP MVC просто анализирует URL-адреса, выводит информацию о маршрутах (область, контроллер, действия, параметры и т. Д.) И, наконец, вызывает соответствующее действие с параметрами перед отправкой вам ответа HTTP.

Из MSDN:

Напротив, взаимодействие пользователя с приложениями ASP.NET MVC организовано вокруг контроллеров и методов действий. Контроллер определяет методы действий. Контроллеры могут включать столько методов действий, сколько необходимо. Методы действий обычно имеют однозначное сопоставление с взаимодействиями с пользователем. Примеры взаимодействия с пользователем включают ввод URL-адреса в браузер, щелчок по ссылке и отправку формы. Каждое из этих действий пользователя вызывает отправку запроса на сервер. В каждом случае URL-адрес запроса включает информацию, которую инфраструктура MVC использует для вызова метода действия.

Таким образом, даже простого HttpClient будет достаточно для взаимодействия с действием контроллера ASP MVC. Но вы также можете использовать фреймворк или библиотеку по своему выбору, которые помогут вам создавать HTTP-запросы и / или преобразовывать HTTP-ответы во что-то более подходящее для вашего приложения.

Это не обязательно, но может сэкономить время!

При этом остерегайтесь всех сценариев, требующих аутентификации, это может усложнить задачу:

  • Если вам нужна проверка подлинности с помощью форм, вы можете сначала получить файл cookie проверки подлинности, а затем включить его в будущие HTTP-запросы (см. сообщение для получения дополнительной информации)
  • Если вам нужна проверка подлинности Windows, вы должны предоставить свои учетные данные (см. страница с веб-сайта asp.net)
person AirL    schedule 14.10.2013
comment
не могли бы вы пояснить, что вы имеете в виду в отношении сценариев аутентификации? - person superartsy; 14.10.2013
comment
Я обновил свой ответ, добавив немного дополнительных сведений о случаях аутентификации. - person AirL; 14.10.2013
comment
Какую аутентификацию будет выполнять сторонний агент - например, Siteminder. - person superartsy; 14.10.2013
comment
Насколько мне известно, сторонняя аутентификация обычно работает с токенами, которые должны быть включены в заголовки HTTP-запросов. А HttpClient API позволяет добавлять поля заголовков. Никогда не имел дела с Siteminder, я точно не знаю, чего он ожидает? Возможно, вы найдете здесь подсказки: social.msdn.microsoft.com/Forums/en-US/. - person AirL; 15.10.2013
comment
И поскольку кажется, что мы переходим к другой теме, возможно, было бы интересно создать новый вопрос по этому поводу. Таким образом, вы увеличите свои шансы получить более точный и подробный ответ;) - person AirL; 15.10.2013
comment
Соглашаться. Еще один пост, который очень нужен. - person superartsy; 15.10.2013