Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > Помогите выбрать метод клиент-серверного взаимодей


Автор: Zakonnic 19.1.2007, 01:44
Есть проект на стадии выбора архитектуры системы. Можно реализовать как web-приложение, но сейчас не об этом. Рассматривается следующий вариант:

Клиентское приложение, которое:
  •  По нажатию кнопки "Получить" выполняет авторизацию на сервере и получает то, чего запрашивало (xml-файл либо zip-архив). Тихонько распаковывает куда надо и работает с этим.
  •  По нажатию кнопки "Отослать" выполняет авторизацию на сервере и отсылает то, чего ему надо (xml-файл либо zip-архив). Сервер распихивает все по базе данных и нужным папкам.
Соединение через интернет (никаких локальных сетей).

Задача выглядит стандартной. Предполагаю, что кем-то здесь уже решалась. Помогите выбрать самый простой вариант, реализующий эту функциональность. Желательно аргументированно.

Пишу на .Net (ASP.NET в том числе), не работал с Diagnostics и Remouting.

Автор: mr.DUDA 19.1.2007, 10:22
Если есть клиентское приложение (rich client, не браузер), работает с сервером в сети интернет, и на сервере есть IIS+ASP.NET, то однозначный выбор - web services. Во-первых, это удобно, во-вторых протокол HTTP проходит через файрволы, в-третьих мелкомягкие рекомендуют веб сервисы вместо ремоутинга, когда речь заходит об internet.

Автор: Zakonnic 19.1.2007, 13:29
Спасибо. Вариант с web services приемлем.
Таким образом, я использую HttpWebRequest на клиенте (приложение WinForms) и Responce.Write на сервере (WebService). Я правильно понимаю?

Автор: mr.DUDA 19.1.2007, 23:10
Цитата(Zakonnic @  19.1.2007,  12:29 Найти цитируемый пост)
Таким образом, я использую HttpWebRequest на клиенте (приложение WinForms) и Responce.Write на сервере (WebService). Я правильно понимаю?

Нет, всё намного проще:
- создаём ASP.NET Web Application, пишем простейший класс веб-сервиса а-ля Hello World (обычный класс, помеченный атрибутом WebService и содержащий обычный метод, только помеченный атрибутом WebMethod), создаём .asmx файл для этого класса; если добавляли студией, то и класс и asmx уже созданы;
- компилируем серверную часть;
- на клиенте создаём обычный WinForms application (можно и Console application), жмём Add Web Reference, вводим URL на наш asmx файл;
- после чего студия сгенерирует прокси-класс - обёртку, позволяющую с клиента создавать экземпляр серверного объекта (обычным оператором new) и вызывать метод на сервере (как обычный метод простого класса).

Собственно, всё.

Автор: Zakonnic 20.1.2007, 00:36
Круто! Все так и сделал. Вылезает ошибка 'The request failed with HTTP status 401: Access Denied.'. Правда, это уже мелочи. Попробую завтра предложить этот вариант.

Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)