Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как связать клиент. прилож. с ASP.NET?


Автор: alir 26.3.2005, 14:59
У меня есть клиентовское приложение (например, какая-нить игрушка).
Я хочу ее связать с asp.net - страницей, чтоб можно было играть через web. Как это сделать не переписывая программу?
Вот, например, в java: клиентовское приложение превращается в апплет
простым наследование главного класса. Есть ли что подобное в .net?
Как решить задачу более рациональным путем?

Автор: arilou 28.3.2005, 12:22
Цитата(alir @ 26.3.2005, 14:59)
У меня есть клиентовское приложение (например, какая-нить игрушка).

Это приложение Windows Forms?

Автор: alir 28.3.2005, 18:23
Да, конечно!

Автор: arilou 28.3.2005, 18:47
Описанным тобой способом нельзя - Forms и ASP.NET приложения очень разные. Вроде есть чьи-то сторонние конвертеры, но ссылок не помню.

В ASP.NET есть такая штука под названием IEExec, посмотри в MSDN
Также, можешь попробовать framework Марка Клифтона под названием MyXAML отсюда:
http://www.codeproject.com/cs/miscctrl/xmlGuiGenerator.asp

Автор: Domestic Cat 28.3.2005, 19:54
А что подразумевается под "играть через веб"? Какая игра-то?

Автор: alir 28.3.2005, 20:58
Цитата
А что подразумевается под "играть через веб"? Какая игра-то?

Вообще, тетрис. Есть сделанный клиентовский проект. Хотелось бы не изменяя его структуру, сделать его web-ким, чтоб народ коннектился, регился (это все добавляется) и играл.
Применял GDI+.

Автор: mr.DUDA 28.3.2005, 21:08
Цитата(alir @ 26.3.2005, 14:59)
Вот, например, в java: клиентовское приложение превращается в апплет простым наследование главного класса.

Вот она, мощь платформы, которая ни от чего не зависит! Вот бы ей ещё и быстродействия побольше...

З.Ы. насчёт тетриса под ASP: клиентскую часть придётся по-любому писать "в отрыве" от загружаемой страницы. По моему мнению, это будет обычный Windows Forms клиент, который будет двигать кубики и посылать HttpWebRequest-ы серверу. А уже сервер можно хоть на ASP.NET, хоть на PHP написать - это безразлично. Главное, чтобы клиент и сервер друг друга поняли smile.

З.Ы. ОЧЕНЬ рекомендую ознакомиться с XML Web Services, т.к. имхо это именно то, что проще и легче всего организовать. Используя веб-сервисы, клиент практически "напрямую" (т.е. прозрачно для программиста) вызывает методы серверного класса (веб-сервиса).

Автор: Domestic Cat 28.3.2005, 21:14
Цитата(mr @ 28.3.2005, 12:08)
Вот бы ей ещё и быстродействия побольше...


http://soft.compulenta.ru/2004/6/17/47645/?ref=left


Автор: mr.DUDA 28.3.2005, 22:49
В приаттаченном внизу файле - исходники двух проектов, серверного (веб-сервис на ASP.NET) и клиентского (форма). Инструкция:

1) открываем проект в VS 2003, компилируем
2) для папки TetrisServer создаём виртуальный каталог IIS: TetrisServer (в свойствах папки заходим в "Доступ через Веб" (или "Web sharing"), ставим в настройках безопасности IIS галку "Анонимный вход" для этого каталога ("Allow anonymous access"))
3) вот и всё smile

Запускаем TetrisClient (а можно сразу несколько) и видим то, что на скриншоте внизу. Дальше должно быть понятно.


Автор: mr.DUDA 28.3.2005, 22:51
Скриншот:

Автор: alir 29.3.2005, 11:56
2 Mr.Duda:
Спасибо, посмотрим... smile

Автор: mr.DUDA 30.3.2005, 07:25
2 alir,
так, на всякий случай - пару советов smile

1) Чтобы просмотреть код серверной части, правкликом по "TetrisService.asmx", потом "View Code".
2) Веб-методы можно просматривать и вызывать прямо из Internet Explorer'а, для этого в строке браузера надо набрать адрес asmx-файла.
3) Если набор веб-методов или аргументов у любого веб-метода изменился, то чтобы клиентская часть об этом "узнала", надо в проекте TetrisClient открыть папку Web References, правкликом по "TetrisService", потом "Update Web Reference".

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