Перейти к содержанию
Fire Monkey от А до Я
  • 0

Типовая задача доступа к данным - Нужен дельный совет


Bob32

Вопрос

Добрый день, Друзья!

 

У меня есть вопросы, которые являются типовыми для многих задач доступа к СУБД из мобильных приложений. Каждый опытный девелопер как-то их решал, по своему, в своих задачах...

Я бы хотел обобщить их опыт и получить несколько ценных рекомендаций от бывалых людей по следующим вопросам:

Имеем Delphi 10.3. Пишем несложное приложение, которому требуется общая БД. В ней будет хранится база для аутентификации пользователей и некие служебные таблички со всякой всячиной.

Задача - правильно организовать доступ к этой базе из мобильного приложения. Приложение будет иметь версии под Android и IOS. Количество пользователей приложения - до 50 тыс человек (если повезет).

Как я вижу этот процесс (по итогам анализа этого форума и статей в Инете):

Делаем базу на MуSQL, которая хостится на каком-то коммерческом хостинге. Прямой доступ к базе не используем, тк это моветон... поднимаем на серверной части что-то типа json-а, через который общаемся с базой посредством SSH (шифрация трафика не обязательна, но крайне предпочтительна)

Теперь Вопросы, на которые хочется получить ответы бывалых:

1) Где хостить эту базульку? (чтобы на этом хостинге был сам сервис СУБД и какая-то их типовая примочка сверху, которая может стать серверной частью для json) - интересуют рекомендации по выбору сервисов хостинга

2) Если есть другие проверенные и полюбившиеся сервисы хостинга чисто СУБД-шныы (без этой примочки сверху) - буду также признателен за их рекомендацию.

3) MSSQL - нормальный выбор для данной задачи? у меня есть опыт работы с MS SQL. MySQL выбран из-за некоторой похожести и бесплатной лицензии.

4) (чувствую, щас в меня полетят помидоры ;-|) ) Какие компоненты нужно использовать для доступа по данной схеме к данным на стороне Дельфи? (я начинающий программер под firemonkey - извините....)

5) Нормальная ли вообще это схема или Вы можете порекомендовать что-то другое, более простое и типовое, в плане реализации этой  схемы организации доступа к единым централизованным данным приложения?

Спасибо!

Буду крайне признателен за любую информацию по данным вопросам.

Изменено пользователем Bob32
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

бесплатный совет - для СТАРТАПА с количеством пользователей хотя бы от 1000 человек, лучше использовать нативные средства разработки, Xcode и Android Studio, если хотите что-то серьезное написать. если просто поиграться на взлетит не взлетит а если что потом перепишем на натив, то да, можно и на делфи.

бесплатных хостингов БД нет. 

Ссылка на комментарий
  • 0
33 минуты назад, haword сказал:

бесплатный совет - для СТАРТАПА с количеством пользователей хотя бы от 1000 человек, лучше использовать нативные средства разработки, Xcode и Android Studio

При всем уважении, позвольте не согласиться.

Именно для стартапа в условиях 100500 ограничений лучше написать одно приложение сразу для всех платформ (может быть поначалу страшненькое и кривенькое), но одно. Быстро и просто.
Это называется MVP - minimal value product. Как только он начнет работать - можно набирать юзеров и идти к инвесторам.
Потом уже можно либо причесывать это одно приложение, либо переписывать его для каждой платформы нативно.
Все имхо.

 

8 часов назад, Bob32 сказал:

Теперь Вопросы, на которые хочется получить ответы бывалых:

 

8 часов назад, Bob32 сказал:

Делаем базу на MSSQL, которая хостится на каком-то коммерческом хостинге. Прямой доступ к базе не используем, тк это моветон

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

 

8 часов назад, Bob32 сказал:

1) Где хостить эту базульку?

Не имеет значения. Подходит любой хостинг с MySQL и PHP. PHP - это и есть та самая "типовая примочка сверху"))))

8 часов назад, Bob32 сказал:

3) MSSQL - нормальный выбор для данной задачи? у меня есть опыт работы с MS SQL. MySQL выбран из-за некоторой похожести и бесплатной лицензии.

MSSQL - почти всегда нормальный выбор. Но: это виндовс инфраструктура, а хостеры с виндовс сервераит встречаются в природе реже и берут больше (моя инфа может устареть, но там где я работаю пока так). Это первое. Он платный - это второе (да, есть и бесплатные лицензии, но они с ограничениями). 
MySQL - Для 50к человек не могу сказать что идеальный выбор, но вполне нормальный. Имхо, главное чтобы не 50к одновременных подключений.
В целом, для первичной разработки и запуска стартапа разница между этими двумя БД небольшая. В обоих случаях SQL, с минимальными различиями.

8 часов назад, Bob32 сказал:

4) (чувствую, щас в меня полетят помидоры ;-|) ) Какие компоненты нужно использовать для доступа по данной схеме к данным на стороне Дельфи? (я начинающий программер под firemonkey - извините....)

Невопрос, держи помидор)))) Мы используем UniDAC и БД SQLite. UniDAC позволяет шифровать на лету эту БД и работает превосходно на всех используемых платформах (Win, iOS, Android, Mac OS). Компонент платный. За другие не могу сказать, не использовал.

8 часов назад, Bob32 сказал:

5) Нормальная ли вообще это схема или Вы можете порекомендовать что-то другое, более простое и типовое, в плане реализации этой  схемы организации доступа к единым централизованным данным приложения?

Имхо - нормальная, но... мы ж легких путей не ищем, сами себе создаем трудности и потом их героически преодолеваем))))
Если целью стоит именно приложение - схема вполне нормальная, так все делают: приложение + сервис-бекенд.

Что-то другое будет сайт, реализующий тоже самое. Проще это или тяжелее - зависит от ваших разработчикой и целей проекта.

Ссылка на комментарий
  • 0
1 час назад, Barbanel сказал:

При всем уважении, позвольте не согласиться.

у каждого свое мнение. зная глючность firemonkey, человек вопрется в кучу косяков. начнет из разгребать. народ будет устанавливать его ПО отлавливать глюки и минусовать в магазинах. если хоть ка кто взлетит и сможет пойти к инвесторам, то придется тогда полностью выгонять всех кто писал и заново набирать команду чтобы переписать на других языках. по моему так себе путь.

а если изначально сделать на нативных языках, да кое как чтобы лишь бы запустилось, то потом уже много переделывать не надо будет с нуля переписывать. 

но тут конечно выбор каждого как ему что делать.

Ссылка на комментарий
  • 0
16 минут назад, haword сказал:

у каждого свое мнение

Согласен, у каждого свое.
Мое - из опыта. Мы в свое время заморочились с "правильным" подходом, и прозевали конкурента с похожим функционалом. Было пипец как обидно.

FireMonkey без сомнений имеет свои недостатки и глюки. Но для тех кто знаком с Дельфи - это простой способ выпуститься на мобильных устройствах.
FireMonkey без сомнений проигрывает нативным языкам, но выигрывает в скорости разработки.

Что выбирать - каждый решает сам исходя из своих задач и возможностей.

Ссылка на комментарий
  • 0
11 часов назад, Bob32 сказал:

 

2) Если есть другие проверенные и полюбившиеся сервисы хостинга чисто СУБД-шныы (без этой примочки сверху) - буду также признателен за их рекомендацию.

 

http://www.myclouddata.net

и к ним компоненты для комфортной работы

https://www.tmssoftware.com/site/tmsfmxcloudpack.asp

Ссылка на комментарий
  • 0
11 часов назад, Bob32 сказал:

 

5) Нормальная ли вообще это схема или Вы можете порекомендовать что-то другое, более простое и типовое, в плане реализации этой  схемы организации доступа к единым централизованным данным приложения?

 

http://mraven.ru/RavenLink.html

вот еще простейший REST сервер. очень просто использовать. 

причем не нужен architect edition, community подойдет даже

 

Изменено пользователем #WAMACO
Ссылка на комментарий
  • 0
3 часа назад, haword сказал:

бесплатный совет - для СТАРТАПА с количеством пользователей хотя бы от 1000 человек, лучше использовать нативные средства разработки, Xcode и Android Studio, если хотите что-то серьезное написать. если просто поиграться на взлетит не взлетит а если что потом перепишем на натив, то да, можно и на делфи.

бред

3 часа назад, haword сказал:

бесплатных хостингов БД нет. 

https://remotemysql.com

но на свой страх и риск

Ссылка на комментарий
  • 1

1. Хостинг рекомендую https://masterhost.ru/service/hosting/individual/ , это один из старейших и надежнейших хостеров России, там вы получите сразу все вам необходимое - MySQL, PHP любимой версии, если проект попрет, то сможете добавлять процессоры, память и т.д. Так же сможете зарегить домен под это дело, и при надобности получить SSL сертификат на этот домен. Все остальные хостинги  игнорируйте, по крайней мере Российские. За почти 20 лет использования, мастерхост ни разу не подвел, а только радовал новыми плюшками.

image.thumb.png.f48d34640a05c0ed4ba428de3d6dccf4.png

Реализация в вашем случае примерно такая:

1. MySQL на хостере - обеспечит вам работу и 10 миллионов активных пользователей. Но важно правильно  спланировать структуру базы, структуру таблиц и структуру индексов таблиц. Если вы в этом не профи, то лучше нанять профи - ибо это фундамент, который потом очень сложно будет изменить.

2. PHP на хостере - прокладка между базой и запросами/ответами приложения. Рекомендую использовать самую свежую версию PHP, чтоб потом не пришлось перекраивать код удаляя deprecated функции и конструкции.

3. Протокол обмена - REST. Не вздумайте погружаться в теорию, читать про RESTful и пытаться реализовывать, этим занимаются только люди под тяжелыми наркотиками и обычно без единого законченного реального проекта. Достаточно того что приложение будет отправлять на сервер GET запросы получать JSON ответы. Можете подогнать протокол под существующие в Delphi компоненты TRESTClient, а можете и сами на стороне приложения разгребать JSON и получать нужные данные. Это совсем не сложно.

4. Приложение - посылает на сервер HTTP GET (ну или POST) запросы посредством THTTPClient, получает ответы в виде JSON, парсит их и так далее. Все содержимое предыдущего предложения - в отдельном потоке. Ну или используйте готовый TRESTClient - если готовы разбираться в нюансах его работы.

Вот как то так.

Ссылка на комментарий
  • 0
17 минут назад, Евгений Корепов сказал:

Вот как то так.

Евгений, спасибо за хостера!
Мучаюсь примерно такими же размышлениями как и топикстартер. В смысле, хостер + скрипты + передача данных для (в теории) дофига клиентов.

Заодно вопрос по JSON. Сегодня это почти де-факто стандарт обмена текстовыми данными. А вот каким образом будет лучше всего передавать с сервера на клиент изображения или бинарные данные? Вернее, что сейчас является наиболее общепринятым способом?
Мысли такие:
1) генерировать прямую ссылку
2) кодировать в Base64 и передавать прямо в тексте JSON
3) Для передачи больших данных - извращаться с FTP (звучит бредово, но такая мысль проскальзывала)
4) ???

Ссылка на комментарий
  • 1
1 час назад, Barbanel сказал:

Евгений, спасибо за хостера!
Мучаюсь примерно такими же размышлениями как и топикстартер. В смысле, хостер + скрипты + передача данных для (в теории) дофига клиентов.

Заодно вопрос по JSON. Сегодня это почти де-факто стандарт обмена текстовыми данными. А вот каким образом будет лучше всего передавать с сервера на клиент изображения или бинарные данные? Вернее, что сейчас является наиболее общепринятым способом?
Мысли такие:
1) генерировать прямую ссылку
2) кодировать в Base64 и передавать прямо в тексте JSON
3) Для передачи больших данных - извращаться с FTP (звучит бредово, но такая мысль проскальзывала)
4) ???

1) Не безопасно. Потому как авторизация нужна (хотя бы в виде ключа "xq34mt89o32834yt9148t87913" в параметрах запроса ?

2) Это точно не нужно  - безумная на грузка на сервер, транспортный протокол и клинта.

3) FTP  - можно но нафик. Во первых отдельная логика на стороне клиента, во вторых хостер обычно предоставляет FTP доступ ко всей площадке, а хранить логин/пароль от площадки на клиенте это - нельзя.

К счастью у нас на стороне сервера есть PHP, который для этого и предназначен:

<?php

//@ini_set("display_errors", "1"); error_reporting(E_ALL);
@ini_set("display_errors", "0"); error_reporting(0);

$SecureToken = "ce48oltq38p94tv83"; // Ключ для доступа 
$FilesPath = "/usr/share/My_Secret_File_folder/"; // Место хранения бинарных файлов

// Просто пример неких данных для передачи пользователю в формате JSON (но храним и оперируем мы ими в обычном массиве
$ExampleUserData = array( 
	"Овощи" => array(
			"Помидорка",
		),
	"Фрукты" => array(
			"Яблочко",
		),
);

if (!isset($_GET['token']) or $_GET['token'] != $SecureToken) {
	echo "Ах ты хитрая жопа! Пожалуйста, не взламывай мой сервер!";
	exit;
}

if (!isset($_GET['command'])) {
	echo "Нет команды, не знаю что делать...";
	exit;
}

switch ($_GET['command']) {
	"get_file" : 
		if (!isset($_GET['file_name'])) {
			echo "Не знаю какой файл ты хочешь...";
			exit;
		}
		$BinatyFilePath	= $FilesPath . $_GET['file_name'];
		if (!file_exists($BinatyFilePath)) {
			echo "Не угадал, нет такого файла...";
			exit;
		}
		if (ob_get_level()) {
      ob_end_clean();
    }
    header('Content-Description: File Transfer');
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($BinatyFilePath));
    // читаем файл и отправляем его пользователю
    if ($fd = fopen($BinatyFilePath, 'rb')) {
      while (!feof($fd)) {
        print fread($fd, 1024);
      }
      fclose($fd);
    }
		break;
	"get_data" :
		$JSONData = json_encode($ExampleUserData, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
		header('Content-Type: application/json; charset=utf-8');
		echo $JSONData;
		break;
	default :
		echo "Не знаю такой комманды...";

}

Вот это простой кусок кода сделает следующие вещи:

http://my_server.com/api/?token=ce48oltq38p94tv83&command=get_data - отдаст JSON данные 

http://my_server.com/api/?token=ce48oltq38p94tv83&command=get_file&file_name=naked_girl.jpg - отдаст бинарный файл, предположительно с изображение голой девушки.

Ну а на в приложении вам останется только:

Var HTTPResponse : IHTTPResponse;
begin
HTTPResponse:=FHTTPClient.Get(AURL);
HTTPResponse.ContentAsString или HTTPResponse.ContentStream, смотря что вы запрашивали.
 

Изменено пользователем Евгений Корепов
Ссылка на комментарий
  • 0

То что нужно, респектищще!!!

Я не силен в php, но меня этот момент смущает:

7 минут назад, Евгений Корепов сказал:

// читаем файл и отправляем его пользователю if ($fd = fopen($BinatyFilePath, 'rb')) { while (!feof($fd)) { print fread($fd, 1024); } fclose($fd); }

В случае реально большого файла (пару гигабайт), не вылетит ли скрипт с превышением времени выполнения?
Раньше для выполнения php скриптов был таймаут в 30 сек по дефолту, и если скрипт выполнялся более 30 сек то генерировалась ошибка и клиент получал эту ошибку.
Как будет в этом случае?

Или этот скрипт не рассчитан на большие бинарники?
Заранее спасибо!

Ссылка на комментарий
  • 0
7 часов назад, haword сказал:

бесплатный совет - для СТАРТАПА с количеством пользователей хотя бы от 1000 человек, лучше использовать нативные средства разработки, Xcode и Android Studio, если хотите что-то серьезное написать. если просто поиграться на взлетит не взлетит а если что потом перепишем на натив, то да, можно и на делфи.

бесплатных хостингов БД нет. 

логика в этом есть, но я знаю только Дельфи, и то - , точнее не знаю, а знал, лет 10 назад ;)

Поэтому, приходится решать задачу в тех инструментах, которыми владеешь.

Ссылка на комментарий
  • 0
6 часов назад, Barbanel сказал:

При всем уважении, позвольте не согласиться.

Именно для стартапа в условиях 100500 ограничений лучше написать одно приложение сразу для всех платформ (может быть поначалу страшненькое и кривенькое), но одно. Быстро и просто.
Это называется MVP - minimal value product. Как только он начнет работать - можно набирать юзеров и идти к инвесторам.
Потом уже можно либо причесывать это одно приложение, либо переписывать его для каждой платформы нативно.
Все имхо.

Да, тоже подписываюсь под каждым словом! )

 

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

Точно - опечатался /((( Сорри!!!! MySQL

6 часов назад, Barbanel сказал:

.

Невопрос, держи помидор)))) Мы используем UniDAC и БД SQLite. UniDAC позволяет шифровать на лету эту БД и работает превосходно на всех используемых платформах (Win, iOS, Android, Mac OS). Компонент платный. За другие не могу сказать, не использовал.

БД SQLite - это какая-то локальная субд? (исполняемая на телефоне) и почем этот платный UniDAC? Где Вы его берете? )

СПАСИБО!

 

 

Ссылка на комментарий
  • 0
3 минуты назад, Bob32 сказал:

БД SQLite - это какая-то локальная субд? (исполняемая на телефоне) и почем этот платный UniDAC? Где Вы его берете? )

SqLite - это тоже почти стандарт для маленьких БД на мобильных устройствах (ну или в принципе маленьких локальных БД). Однопользовательская. Очень упрощенная.

Цены на UniDAC можно найти здесьЯ не агитирую за них, просто в нашем случае было необходимо шифрование. Купили, и с тех пор используем везде, удобно.

Ссылка на комментарий
  • 0
2 часа назад, Евгений Корепов сказал:

1. Хостинг рекомендую https://masterhost.ru/service/hosting/individual/ , это один из старейших и надежнейших хостеров России, там вы получите сразу все вам необходимое - MySQL, PHP любимой версии, если проект попрет, то сможете добавлять процессоры, память и т.д. Так же сможете зарегить домен под это дело, и при надобности получить SSL сертификат на этот домен. Все остальные хостинги  игнорируйте, по крайней мере Российские. За почти 20 лет использования, мастерхост ни разу не подвел, а только радовал новыми плюшками.

image.thumb.png.f48d34640a05c0ed4ba428de3d6dccf4.png

Реализация в вашем случае примерно такая:

1. MySQL на хостере - обеспечит вам работу и 10 миллионов активных пользователей. Но важно правильно  спланировать структуру базы, структуру таблиц и структуру индексов таблиц. Если вы в этом не профи, то лучше нанять профи - ибо это фундамент, который потом очень сложно будет изменить.

2. PHP на хостере - прокладка между базой и запросами/ответами приложения. Рекомендую использовать самую свежую версию PHP, чтоб потом не пришлось перекраивать код удаляя deprecated функции и конструкции.

3. Протокол обмена - REST. Не вздумайте погружаться в теорию, читать про RESTful и пытаться реализовывать, этим занимаются только люди под тяжелыми наркотиками и обычно без единого законченного реального проекта. Достаточно того что приложение будет отправлять на сервер GET запросы получать JSON ответы. Можете подогнать протокол под существующие в Delphi компоненты TRESTClient, а можете и сами на стороне приложения разгребать JSON и получать нужные данные. Это совсем не сложно.

4. Приложение - посылает на сервер HTTP GET (ну или POST) запросы посредством THTTPClient, получает ответы в виде JSON, парсит их и так далее. Все содержимое предыдущего предложения - в отдельном потоке. Ну или используйте готовый TRESTClient - если готовы разбираться в нюансах его работы.

Вот как то так.

 

Спасибо огромное! очень дельный и полезный для меня ответ! обязательно соберу информацию про хостинг и компоненту , и если позволите, еще попозже задам пару глупых вопросов! )

Ссылка на комментарий
  • 0
1 минуту назад, Barbanel сказал:

SqLite - это тоже почти стандарт для маленьких БД на мобильных устройствах (ну или в принципе маленьких локальных БД). Однопользовательская. Очень упрощенная.

Цены на UniDAC можно найти здесьЯ не агитирую за них, просто в нашем случае было необходимо шифрование. Купили, и с тех пор используем везде, удобно.

про SQLite - те это не централизованная СУБД, которой может пользоваться много инстансов приложения (а она стоит где-то на централизованном сервере) - это субд, которая вертится для одного приложения на одном телефоне. верно?

Ссылка на комментарий
  • 0
2 часа назад, Barbanel сказал:

То что нужно, респектищще!!!

Я не силен в php, но меня этот момент смущает:

В случае реально большого файла (пару гигабайт), не вылетит ли скрипт с превышением времени выполнения?
Раньше для выполнения php скриптов был таймаут в 30 сек по дефолту, и если скрипт выполнялся более 30 сек то генерировалась ошибка и клиент получал эту ошибку.
Как будет в этом случае?

Или этот скрипт не рассчитан на большие бинарники?
Заранее спасибо!

Вы всегда можете изменить max_execution_time (равный по умолчанию 30 сек) в runtime :

ini_set('max_execution_time', '3600');

 

Ссылка на комментарий
  • 0
5 часов назад, #WAMACO сказал:

http://www.myclouddata.net

и к ним компоненты для комфортной работы

https://www.tmssoftware.com/site/tmsfmxcloudpack.asp

Библиотека компонентов = недетская! и цена вполне вменяемая.

Минуточку, а что это фактически означает - допустим я покупаю хостинг на myclouddata, покупаю компоненты в этом пакете (включая ту, которая нужна для доступа на myclouddata) - и что, мне не надо париться со всяким огородом по получению доступа через rest/json ?

что ты получаешь вместе с этой компонентой?

Ссылка на комментарий
  • 0
2 часа назад, Bob32 сказал:

Библиотека компонентов = недетская! и цена вполне вменяемая.

Минуточку, а что это фактически означает - допустим я покупаю хостинг на myclouddata, покупаю компоненты в этом пакете (включая ту, которая нужна для доступа на myclouddata) - и что, мне не надо париться со всяким огородом по получению доступа через rest/json ?

совершенно верно!

+ получаете дополнительно порт ко всем популярным облачным сервисам (уверяю, пригодится)

я клиенту за вечер наваял прототип, он офигел, вечером того же дня проинвестировал меня! ?

Изменено пользователем #WAMACO
Ссылка на комментарий
  • 0
3 часа назад, Bob32 сказал:

Библиотека компонентов = недетская! и цена вполне вменяемая.

Минуточку, а что это фактически означает - допустим я покупаю хостинг на myclouddata, покупаю компоненты в этом пакете (включая ту, которая нужна для доступа на myclouddata) - и что, мне не надо париться со всяким огородом по получению доступа через rest/json ?

что ты получаешь вместе с этой компонентой?

Соблазн велик! Но не поддавайтесь ереси! ? Ну или поддавайтесь ? 

Сделав все самостоятельно, вы не только сэкономите деньги, но и получите бесценный опыт. И получите площадку для сотен приложений. Тот же myclouddata очень ограничен - бесплатный аккаунт 1000 записей в таблице это ниочем. Да и платный с миллионом записей тоже не поражает воображение. Одно из моих приложений за пару лет накидало в таблицу с регистрациями FCM 600 тысяч записей. Так что вы (или заказчик приложения) может упереться в ограничение в самый неподходящий момент и придется судорожно искать другой сервис. 

Ссылка на комментарий
  • 0
2 часа назад, Евгений Корепов сказал:

Соблазн велик! Но не поддавайтесь ереси! ? Ну или поддавайтесь ? 

Сделав все самостоятельно, вы не только сэкономите деньги, но и получите бесценный опыт. И получите площадку для сотен приложений. Тот же myclouddata очень ограничен - бесплатный аккаунт 1000 записей в таблице это ниочем. Да и платный с миллионом записей тоже не поражает воображение. Одно из моих приложений за пару лет накидало в таблицу с регистрациями FCM 600 тысяч записей. Так что вы (или заказчик приложения) может упереться в ограничение в самый неподходящий момент и придется судорожно искать другой сервис. 

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

Плюс там есть компонент для работы с бесплатной open street map (Гугл мапс сейчас - это только 28 000 бесплатных запросов в месяц)

 

 

Ссылка на комментарий
  • 0
3 часа назад, #WAMACO сказал:

совершенно верно!

+ получаете дополнительно порт ко всем популярным облачным сервисам (уверяю, пригодится)

я клиенту за вечер наваял прототип, он офигел, вечером того же дня проинвестировал меня! ?

А Вы пользуетесь платной или используете бесплатную версию? 

(Там вроде это можно, но только для релизных версий)

Хочется чуть подробнее понять - как будет выглядеть обмен с базой через эти компоненты. Может можно с Вами созвонится и чуть подробнее поспрошать? )

Ссылка на комментарий
  • 0
10 часов назад, Евгений Корепов сказал:

Сделав все самостоятельно, вы не только сэкономите деньги, но и получите бесценный опыт. 

1. Экономия денег сомнительна (ваш вариант же тоже не бесплатный)

2. Съэкономите время, а это ценнее денег!!!

Обслуживать свой сервер тоже надо, скрипты писать, защищать их и т.д.

Решение с http://www.myclouddata.net не панацея, но для небольших и средних проектов вполне!

Ссылка на комментарий
  • 0
8 часов назад, Bob32 сказал:

А Вы пользуетесь платной или используете бесплатную версию? 

(Там вроде это можно, но только для релизных версий)

Хочется чуть подробнее понять - как будет выглядеть обмен с базой через эти компоненты. Может можно с Вами созвонится и чуть подробнее поспрошать? )

Пользуюсь и платной и бесплатной версией.

Описание очень подробное http://www.tmssoftware.biz/Download/Manuals/tmsfmxcloudpackdevguide.pdf

Все основные варианты взаимодействия описаны подробно.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...