#php #android #asp.net
#php #Android #asp.net
Вопрос:
Я хочу создать мобильное приложение для asp.net веб-сайт, который я создал. как подключить мобильное приложение к SQL Server? Является ли PHP-скрипт единственным способом связать мобильное приложение с базой данных?
Ответ №1:
Вы не подключаете Android к таблицам на сервере. Существует ли количество «похожих» ODBC-дисков для Android? В данном случае драйверы jdbc для Android? Такие драйверы по-прежнему требуют от вас установки настройки какой-либо веб-службы на веб-сайте. Основных причин много, но некоторые из них:
Технология Live active constant, скажем, ODBC и т.д., Непрактична, поскольку веб-интерфейс (и большая часть программного обеспечения для Android) основан на веб-подходе.
Это означает, что технологический стек должен обрабатывать разъединения — даже небольшие, следует ожидать. И это означает, что вы не можете поддерживать сокет-соединение с базой данных. Таким образом, вы не ожидаете и не можете ожидать и поддерживать открытое подключение к размещенной базе данных. Итак, вы используете вызовы веб-служб, поскольку, как и веб-страницам, им все равно, если соединение ненадолго прервется. (вы предполагаете, что в качестве разработчика вы повторно подключаетесь для каждого запроса — точно так же, как вы делаете при запросе веб-страницы). Таким образом, поддерживается постоянное подключение к какому-либо сетевому ресурсу на веб-сервере, например, к папкам, или в этом случае какой-либо сервер базы данных не используется.
Следующий шаг? Ну, несколько лет назад я решил открыть порты SQL Server для дикого и сумасшедшего Интернета. Таким образом, я мог бы установить прямое подключение к базе данных с мобильного устройства. (таким образом, минуя веб-сайт). Это было еще в 2004 году (16 лет назад). Менее чем через 20 минут я начал видеть «ботов», пытающихся войти в sql Server. Я видел:
logon: "sa", Password:"sa"
logon: "sa", Password:"password"
logon: "sa", Password:"12345678"
И так далее!!!! Это было ВСЕГО через 20 минут, и еще в 2004 году! Можете ли вы представить это сейчас? В 100 раз больше бродячих ботов, которые хотят захватить и подключиться к вашему серверу SQL и украсть ваши данные.
Итак, открываем базу данных для прямых ВНЕШНИХ подключений к ДЕЙСТВИТЕЛЬНО неприятному и дикому Интернету? Это просто не сделано — слишком рискованно.
Вы можете купить книгу и подключиться к amazon.com веб-сайт. Однако то, что вы не можете сделать, это ОБОЙТИ веб-сервер и подключиться к базе данных, которая управляет сайтом Amazon. Таким образом, для этой базы данных разрешено нулевое внешнее подключение к внешнему миру. Таким образом, их веб-сайт может напрямую подключиться к базе данных, но НЕ к вам извне или, в данном случае, к вашему телефону.
Итак, почти во всех случаях? Веб-сайт имеет права и возможность взаимодействовать с базой данных. Итак, чтобы иметь безопасную настройку? Вы создаете веб-сервис и предоставляете его! Таким образом, вы никогда не подвергаете базу данных прямым подключениям.
Итак, что же сделали несколько предприимчивых людей? Ну, они создали драйвер jdBC, который работает на Android, и он взаимодействует с веб-сервисом, который является драйвером, подобным sql. Конечным результатом является опыт разработчика, «похожий» на прямое подключение. Большое количество этих «драйверов» веб-сервисов написано на PHP, но они не обязательно должны быть. Я подозреваю, что существует какой-то «веб-сервис» jdbc, написанный на .net. Итак, вы ни в коем случае не ограничены PHP.
Итак, сегодня? Вы обнаружите, что большинство провайдеров веб-хостинга НЕ допускают подключения к базе данных извне. Я знаю, что один из моих перестал поддерживать это несколько лет назад (слишком опасно — слишком много утечек данных).
Azure (от Microsoft — cloud OS) по-прежнему допускает прямые подключения к базе данных (и, следовательно, обходит веб-сайт). Однако эта настройка также имеет тенденцию ограничиваться IP-адресом. (итак, еще раз, дикий запад и любой старый IP-адрес не могут подключиться. Скажем, можно использовать только ваш фиксированный IP-адрес рабочего местоположения).
На самом деле все сводится к тому, сколько взаимодействия требуется вашему Android с базой данных за веб-сайтом, который вы планируете использовать. Несколько вызовов веб-службы, таких как getorders, обновление заказа или что-то еще, как правило, все, что вам нужно в любом случае.
Подключение некоторых вызовов веб-службы в asp.net это действительно мечта. (вы просто помечаете подфункцию как общедоступную и устанавливаете ее как с директивой компилятора. Итак, это удивительно легко сделать. Затем вы выполняете вызовы веб-службы с Android. Итак, в большинстве случаев при написании таких приложений Andriod все равно приходится взаимодействовать с веб-сайтом — с таким же успехом можно использовать это для получения (или отправки) данных в / из базы данных.
Итак, здесь используются вызовы веб-служб — и основная причина в том, что веб-технология может обрабатывать разобщения, имеет тенденцию к отсутствию состояния и что вы в целом не хотите предоставлять прямые подключения к базе данных. Прямое подключение к базе данных также означало бы, что теперь база данных должна обрабатывать безопасность, логины и права пользователя, в отличие от веб-серверов, которые в значительной степени предназначены для обработки логинов и т.д.
Веб-безопасность НАМНОГО более закалена в боях, и, таким образом, вы получаете уровни безопасности, которые, как правило, встроены на всех веб-серверах.
Итак, вы не подключаетесь к базе данных. Вы взаимодействуете с веб-службой, а платформы разработки Android оптимизированы для выполнения вызовов веб-службы, и любая система разработчика для Android будет богата своей способностью взаимодействовать с веб-службой, в отличие, скажем, от разработки на рабочем столе, где ADO.net или ODBC и прямые подключения к базе данных являются общими.
Такие прямые подключения к базе данных не распространены в Andriod. Единственная отличная поддержка, которую мы видим, — это локальная база данных Android и базы данных sqlite (так что концепция прямого подключения жива и исправна для локальной базы данных — и даже тогда вы часто будете использовать для этого какую-то форму стека jdbc. Этот код и стек часто могут также использовать веб-службу, предоставляемую jdbc, которая, как уже отмечалось, часто является пакетом PHP. Такой стек может быть приятным, поскольку таким образом вы получаете код, несколько похожий на программное обеспечение для настольных компьютеров, но вы используете веб-сервис на другом конце.
Для большинства приложений? Нескольких веб-методов должно быть достаточно, чтобы передавать данные обратно на ваше устройство Android.