Mobile / Desktop - какая стратегия имеет смысл - PullRequest
1 голос
/ 10 ноября 2011

У моего босса большие мечты.

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

Каждый, с кем он общается, постоянно настаивает на своем HTML5 / JavaScript для решения однократной записи везде (ish).

Я неУ меня большой опыт работы с такой средой - получение данных из базы данных с использованием JavaScript, ORM для JavaScript и тому подобное.Возможно, я забегаю вперед.

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

Ожидания / Допущения

  1. Я ожидаю, что мне придется использовать один из «встроенных» или локальныхбазы данных, которые, кажется, возникли с помощью HTML5 и локального хранилища.
  2. Я ожидаю, что мне также придется найти какой-то способ синхронизации этих данных с данными, которые где-то хранятся на сервере.
  3. Я ожидаю, что синхронизация этих данных должна быть в домашних условиях.
  4. Я хотел бы иметь какой-то ORM, чтобы упростить работу с данными.
  5. IЯ ожидаю, что столкнусь со всевозможными странными вещами, связанными с размером локальной базы данных.
  6. Я ожидаю, что мне придется запустить весь код приложения на стороне клиента, так как они должны быть в состоянии выполнитьприложение без подключения к интернету.

Вопрос

Что я делаю?

Я вроде в растерянности дажезная, с чего начать.

Чтобы превратить это во что-то, что может иметь правильные / неправильные ответы, вот что полезно знать:

  1. Похоже ли подход HTML5 / JavaScript нахороший способ пойти (учитывая цели иногда подключенных, мобильных и настольных компьютеров)?
  2. На какие платформы и инструменты я должен обратить внимание, чтобы сделать разработку приложения максимально простой?
  3. Он просит слишком много?

Заранее благодарим за любые советы / рекомендации, которые у вас могут быть.

По запросу: Что делает приложение? Приложение является (более или менее) приложением цен / предложений для настраиваемого продукта.Существует множество продуктов (базовые шкафы, настенные шкафы и т. Д.), Набор стандартных настраиваемых параметров (дерево, отделка, стиль дверей) и множество (менее стандартных) модификаций к ним (уменьшение глубины, увеличение высоты,и т. д.).

В зависимости от выбранных вами стандартных настраиваемых параметров изменяется базовая цена каждого продукта.Затем вы можете добавить к ним модификации (которые также имеют свою цену).

Большая часть приложения уже существует (хотя и как приложение WPF без локально сохраненных данных).Он был разработан таким образом, чтобы его можно было продавать различным производителям, которые производят эти настраиваемые элементы (в первую очередь, кухонные шкафы и тому подобное).У каждого производителя есть свои собственные правила относительно того, какую древесину / отделку / и т.д. они предлагают, и как они определяют базовую цену продукции (которая также варьируется) и как вы можете смешивать / сочетать различные виды дерева / отделки и т. Д.

БлаБла, бла, каждый производитель очень уникален.

Чтобы решить эту проблему, мы создали подход на основе формул, в котором после настройки их продуктов / опций/ etc вы можете написать некоторые формулы, чтобы определить не только отношения между ними, но и то, как их оценивать.

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

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

1 Ответ

1 голос
/ 10 ноября 2011
  1. Звучит ли подход HTML5 / JavaScript как хороший путь (учитывая цели иногда подключенных, мобильных и настольных компьютеров)?
    • Да.Вероятно, JavaScript - это то, что нужно, но это будет нелегко, если вы еще не разбираетесь в JavaScript.Большие приложения - это чудовище в JavaScript, особенно на мобильных устройствах.
    • Я мало что знаю о хранении баз данных на стороне клиента, но для синхронизации баз данных сервера и клиента почти наверняка потребуются преобразования AJAX и XML или JSON.
    • Учитывайте безопасность и размер данныхна клиенте (должен ли клиент иметь доступ ко всем данным, хранящимся на его компьютере?).
  2. На какие платформы и инструменты я должен обратить внимание при разработке приложения?Самый простой?
    • Я использую jQuery для всех манипуляций с DOM, перехватов событий и AJAX.Плюс я использую много других функций / плагинов для других идей.Я настоятельно рекомендую взглянуть на это.
    • Firebug (<- должен иметь) </li>
  3. Он слишком много просит?
    • Аспект без соединения может быть слишком большим.Я не удивлюсь, если это удвоит время кодирования.
    • Вы можете предоставить больше информации о том, что делает приложение.Если это огромная CMS с пользовательским интерфейсом, этот проект может занять годы для одного человека.Однако, если это просто Nerd Dinner -подобное приложение, оно не должно быть слишком плохим.

Редактировать после обновления вопроса

Сначала я бы протестировал подход к базе данных на стороне клиента с помощью мобильного устройства.Вы можете столкнуться с непредвиденными ограничениями (скорость передачи данных, размер данных) со средами (браузер Android, Mobile Safari)., когда и , что нужно обновить, когда у вас есть подключение к Интернету для работы, также является важным определяющим фактором уровня усилий.Эти вопросы могут быть получены путем тестирования ограничений базы данных на стороне клиента.

Остальное мне кажется довольно простым.Удачи.=)

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