Как организовать Android(C#)+WEB(ModX)

Раньше писал только локальные программы на ПК для решения рабочих задач. Но сейчас поставил себе задачу сделать приложение и вэб интерфейс, плюс оповещения и прочее (некоторые алгоритмы должны запускаться и выполняться на стороне сервера или где-то ещё без участия пользователя). Направление новое, спросить неукого. Как правильно организовать это всё? Если хостинг, тогда он не будет решать ничего без пользователя, если выделенный сервер, то надо ли ставить отдельную СУБД или с базы сайта это всё… Тогда сайт должен стучаться в эту СУБД… Не понимаю… Арендавать выделенный сервер, потратить неделю чтобы разобраться как он арендуется и месяц пыхтеть как это сделать - перспектива так-себе… Могу за грамотную консультацию заплать (умеренную сумму).

А что за задача?

CMS типа ModX, WordPress и т.п. хороши для стандартных задач, которые они или их плагины решают (блог, магазин, …).
Если предполагается, что многое придется разрабатывать самому, то наверно лучше сразу взять фреймворк типа Laravel.

Отдельную? Нужна просто СУБД, которую сайт и будет использовать )
Обычно в конфиге сайта указываются параметры для подключения к СУБД.

Раз тут упомянут Андройд, то обычно приложения стучатся не напрямую в БД (это как минимум небезопасно, кто угодно сможет вытащить пароль из приложения и делать что угодно в БД), а через HTTP API.
То есть отправил серверу какой-то HTTP запрос, а он полез в БД и записал/прочитал что-то.

Так же как и все остальные.

Вообще есть примерно такие виды хостингов: https://ru.hexlet.io/courses/php-mvc/lessons/deploy/theory_unit

  • Виртуальный хостинг (Shared Hosting) — самый дешёвый способ размещать сайт в интернете. Такая услуга включает в себя доступ на сервер с уже настроенным программным обеспечением под конкретный стек, например Linux + PHP + MySQL. Этот способ подходит для самых простых сайтов и требует минимальной настройки.
  • VPS/VDS — наиболее сбалансированная услуга, в рамках которой предоставляется виртуальная машина. Плюс в том, что такой вид хостинга позволяет задействовать больше серверных мощностей: ЦПУ, память и диск. Предустановленного ПО нет, всё нужно делать самостоятельно. По сравнению с виртуальным хостингом вы не ограничены в правах и можете настраивать сервер, как вам угодно.
  • Выделенный сервер (Dedicated Server) — сервер (либо свой, либо арендованный). Такой хостинг требует больше всего участия, но зато вы получаете лучшее соотношение производительность/цена.
  • IaaS (Infrastructure as a Service) — инфраструктура как сервис. Вид хостинга, при котором большая часть возможностей представляется как сервис. Как пример Amazon Web Service (AWS).
  • PaaS (Platform as a Service) — платформа как сервис. Наиболее дорогой и самый автоматизированный способ из коробки по размещению сайтов. Выкладка сайта происходит буквально по команде git push. Кроме цены важно учитывать используемые технологии и подходы. PaaS обладает наибольшим числом ограничений по тому, что и как можно делать, но в обмен вы получаете не просто автоматизированный хостинг, но и платформу, которая автоматически «скейлится» (масштабируется) под нагрузку.

Во всех вариантах, кроме первого и последнего, надо самому ставить и настраивать весь нужный софт.

В идеале это лучше делать не вручную, а через что-нибудь типа Ansible. Там в определенном формате описывается что нужно сделать (какие пакеты установить, какие файлы скопировать и т.д.)
Иначе будет сложно потом вспомнить и повторить при переезде на другой сервер и т.д., или даже просто вспомнить текущее состояние для доработок.
https://www.ansible.com/resources/get-started,
https://www.ansible.com/resources/webinars-training/introduction-to-ansible,
https://docs.ansible.com/ansible/latest/index.html

На shared хостингах могут возникнуть сложности с этим.
Хотя если хватит cron, то он часто доступен и там.

1 лайк

Благодарю за ответ. Я выбрал модекс, т.к. из всех мной осмотренных систем она показалась самой гибкой, там многое делается руками. Уж разбираться, так разбираться, лёгкие маршруты не для меня)))) Я зарегистрировал хостинг и домен (чтобы сразу встречать все подводные камни), загрузил модекс и начал в нём копаться. На первый взгляд это псевдомодульная платформа. Отсюда не совсем понятно как вы её в один ряд с вордпрессом поставили (бегло ознакомился). Там в этом модексе одни сниппеты и чанки. Некий конструктор HTML PHP MySQL. Оказывается WEB - это не так страшно))) Я добавил ещё одну базу данных (чтобы не валить всё в кучу и иметь пространство для манёвра), PHP до неё легко дотянулся. Нарыл, что код исполняется на стороне сервера и сниппеты хранятся в базе сайта, значит забив логин к базе в PHP, я не рискую расшарить базу, верно? HTTP API, хорошо, услышал. На сколько я понял SSL сертификат на сайте не решает вопрос безопасности, он только подтверждает то, что я это я. Вчера до 6 утра сидел копался и сегодня с 10 утра пытаюсь выяснить как дотянуться с андроида. Может JSON? В нем, вроде, есть возможность шифрования. Вопрос защиты данных важен. Далее. Я вообще не могу найти на хостинге либо в админке сайта ничего, что было бы связано с автономной работой, имеется в виду оповещение. Т.е. при определённых условиях (событиях) должен выполняться некий код, который дожен доводить до пользователся информацию. Сайт должен стучаться в андроид… Рукалицо… Разберусь с андроид подключением и буду мучить хостера)))

Он гибче других CMS, но все равно ему далеко до гибкости фреймворков.

Он же тоже построен вокруг того, что сайт состоит из страниц (ресурсов) созданных в админке. Наверняка начнутся сложности если потребуется что-то более нестандартное, например, динамический список ресурсов (как товары в магазине) из своей таблицы в БД. В документации это уже в разделе “Extending ModX”. Или оповещения. Может быть потребуются какие-нибудь плагины и т.п.

И текущей (2.х) версии ModX уже лет 10, так что наверняка там не были предусмотрены разные современные штуки из мира разработки, возможности новых версий языка, Composer для подключения библиотек, миграции БД, автоматические тесты и т.д. Поддержку которых может быть сложно нормально добавить до 3.х не сломав совместимость.

Смотря какой вопрос. С ним например шифруется трафик между клиентом и сервером.

А какой хостинг? Может и нет там.

Из shared хостингов я пробовал юкоз и там был cron.

“Определенные события” там конечно не указать, можно просто периодически запускать свой скрипт, который определит надо ли что-то делать.

У ModX вроде бы есть плагин
https://docs.modx.com/current/en/extras/cronmanager/index
https://jako.github.io/CronManager/usage/

Вроде бы там есть вариант почти весь код хранить не в БД. Потому что это неудобно, особенно если над проектом работает более 1 человека. Как правило во всех нормальных проектах (на любой платформе) используют Git.
http://modmore.github.io/Gitify/

Спасибо огромное! Вы не слабо расширили мой кругозор, теперь я точно знаю, что ничего не знаю, но теперь я, хотя-бы, знаю о чем я ничего не знаю. Поизучал из выше изложенного незнакомые слова и мне немного даже заплохело (в хорошем смысле). Как всё, ссука, стало интересно, пока я отсутствовал в мире разработки ПО…
И… да… по всей видимости модекс будет снесён, хотя пусть себе лежит, на заброшенном хостинге.