Как они сочетаются друг с другом: Silverlight, Apache, PHP, MySQL, веб-службы? - PullRequest
2 голосов
/ 21 марта 2012

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

Мой веб-сервер способен запускать страницы ASP.NET, но работает на Apache и изначально использует PHP (с чем я гораздо лучше знаком). У него есть движок базы данных MySQL, и я очень хорошо разбираюсь в создании типичных динамических страниц с помощью PHP и MySQL.

Что мне НЕ знакомо, так это «Веб-сервисы», о которых люди постоянно упоминают каждый раз, когда я нахожу ответ на вопрос «как вы подключаете silverlight к базе данных?» ...

Итак, мой основной вопрос на самом деле касается потока данных, и где все вписывается в загадку, и как заставить все это работать в этой конкретной конфигурации. Большинство ответов, которые я видел, касаются IIS вместо Apache, ASP.NET вместо PHP и MS SQL Server вместо MySQL.

Кроме того, ответы, как правило, начинают использовать сокращения и аббревиатуры, фактически не объясняя, что они обозначают.

Например: что такое сервисы WCF и RIA и как они вписываются в загадку в целом?

Полагаю, я просто ищу нисходящий обзор структуры потока данных на уровне MACRO, а не на микро (кодовом) уровне.

(отредактировано, чтобы добавить :) Кроме того: в прошлом я создавал приложения vb.net, которые использовали MySQLConnector.NET для удаленного извлечения данных из базы данных моего веб-сервера, но я понимаю, что клиентский компьютер должен быть включен в белый список как удаленный компьютер, то есть мне придется откройте мой MYSQL-сервер и сделайте маску доступа в основном%.%.%.% для подключения любого клиента ... и это нежелательно ... поэтому, если я правильно понимаю, веб-служба работает в Интернете сервер, и клиент отправляет запросы на него, а веб-служба выступает в качестве посредника, собирая данные из базы данных (возможно, с помощью некоторого вида «хранимой процедуры», похожей?), и передает данные клиенту. .. что также означает, что все учетные данные для доступа к базе данных находятся на сервере, а не внутри (потенциально взломанного) клиента ...

Я правильно понял?

Кроме того, при ответе мне нужно знать, где находится доступ к веб-службам ... в коде проекта silverlight APP или в коде проекта silverlight WEB ...

1 Ответ

3 голосов
/ 22 марта 2012

Я нашел этот замечательный учебник, который помогает объяснить это ... http://www.designersilverlight.com/2010/05/23/php-mysql-and-silverlight-the-complete-tutorial-part-1/

Вот как я понимаю, все это работает.

В процессе есть 3 "слоя": приложение, веб-сервер и база данных.

Приложение обращается к веб-серверу для выполнения файла сценария (как обычный сценарий PHP). Там в файле сценария могут быть переданы обычные переменные URL (например, script.php? Foo = bar, поэтому $ foo в сценарии определяется как "bar") ... так что вы можете использовать эти пары переменных / значений в кодировке URL для настройки ваш скрипт работает так же, как обычно с веб-страницей.

Я полагаю, у вас будет один скрипт на ТИП запроса к базе данных с парами var / value для настройки ваших результатов. Таким образом, на вашем веб-сервере вы получите множество PHP-скриптов, как обычно для веб-сайта с разными страницами, и вы передаете переменные в эти скрипты для настройки результатов.

Например, для пользователей у вас может быть скрипт get_users.php, который будет возвращать всех пользователей ...

но get_users.php? Loggedin = true получит всех пользователей, вошедших в данный момент get_users.php? loggedin = true & ingame = true получит всех пользователей, вошедших в игру и находящихся в игре ... Вы просто создаете сценарий логики и получающийся SQL-запрос соответственно.

Все результаты кодируются либо в формате XML, либо в формате JSON (Javascript Open Notation: см. Что такое JSON и зачем мне его использовать? ) для передачи в приложение ... приложение, в действительности , читает результаты эха JSON-кода.

Если бы вы открывали эти скрипты в веб-браузере, единственное, что вы увидели бы, - это текстовая распечатка данных JSON ... нет веб-страницы ... только данные, которые считываются приложением и затем декодируются в к объектам.

Таким образом, приложение silverlight читает текстовый вывод PHP-скрипта, выполненного на вашем веб-сервере, и интерпретирует вывод.

^^^^^ ЭТО КОРОТКИЙ ОТВЕТ НА МОЙ ВОПРОС. :)

Чтобы быть грубым, само использование терминологии "веб-сервис" вводит в заблуждение, и то, что действительно вводило меня в заблуждение. Я думал, что это какой-то сервис или приложение, которое вы должны были установить на своем веб-сервере, например, PHPMyAdmin или что-то в этом роде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...