2008-10-02 4 views
14

У меня возникли проблемы с решением вопроса о том, хочу ли я, чтобы мой проект был веб-(как в веб-приложении), настольным (настольным приложением) или настольным приложением, которое может синхронизировать или подключаться к облаку ,Как вы решаете, должен ли проект быть веб-или настольным?

Я не знаю, будет ли кто-либо интерес к этому приложению, и это будет только для меня, поэтому я склоняюсь к настольному приложению. Если по какой-то причине я закончу его, отпустите, и людям это действительно понравится, я могу увидеть, как он синхронизируется с облаком (думаю, v2). Но я не уверен, как тяжело сделать такие радикальные изменения, и я не хочу в конечном итоге что-то хорошее, что бесполезно, потому что я сделал плохой выбор, прежде чем я даже начал проект.

Есть ли какие-нибудь рекомендации для этого? Любые эмпирические правила или лучшие практики? Любой личный опыт?

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

+0

Вы выбираете среди трех вариантов: 1. веб-интерфейс (как в веб-приложении) 2. настольное приложение (настольное приложение), 3. настольное приложение, которое может синхронизировать или подключаться к облаку. Вы рассмотрели 4-й вариант: веб-приложение, которое можно использовать в автономном режиме (http://en.wikipedia.org/wiki/Cache_manifest_in_HTML5), возможно, даже [распространено как настольное приложение] (http: // blog .neamlabs.com/пост/36584972328/2012-11-26-веб-приложение кросс-платформенное настольное распределение)? – Motin 2012-11-30 08:43:20

ответ

17

Я обычно задать несколько вопросов:

  • Может даже быть сделано в Интернете? Что-то, что я не слишком давно использовал компонент редактирования изображений, и должен был быть веб-приложением. Это потребовало большой боли, чтобы получить эту работу, и настольное приложение было бы гораздо лучшим способом.
  • Должен ли я получить к нему доступ из любого места? Да, вы можете загрузить его на флэш-накопитель, но в этом случае сеть намного более возможна.
  • Будет много пользователей? Это может пойти в любом случае, но «длинный хвост» обычно означает сеть.
  • Какую технику вы хотите использовать? Последний и самый большой пользовательский интерфейс на основе WPF? Рабочий стол (да, серебро, давайте не будем там нормально?). Мозг мертвого глупого простого управления пользователями Django или других? Web.
  • Если бы это было веб-приложение, вам нужно будет беспокоиться об общих атакующих векторах, таких как SQL Injection, XSS и т. Д.? Настольное приложение также имеет свои проблемы, но, как правило, меньше.
  • Насколько ресурсоемким оно является? Будет ли 10 пользователей убивать производительность веб-сервера?
  • Вершина на рабочем столе может быть болью, тогда как с помощью webapp все находятся на одной и той же версии. Это может укусить вас, хотя, см. Новый пользовательский pushback от Facebook.

EDIT:

  • Стоимость может быть фактором тоже. Веб-приложение с базой данных базы данных обычно означает веб-сервер. Если вы хотите придерживаться, скажем, Microsoft Stack, вам понадобятся лицензии для SQL Server, которые могут стать дорогостоящими. Открытый исходный код дешевле, но не всегда возможен вариант. «Обслуживание» настольного приложения, как правило, дешевле.
4

Если вы выпустили как веб-приложение, вам не придется его переносить. У вас также будет доступ к нему, куда бы вы ни отправились.

0

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

-2

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

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

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

4

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

Я работал над приложением, которое было сделано как веб-приложение, когда оно явно было лучше подходит для рабочего стола. Это был массовый провал. Я не знаю, КАК клиенты мирились с этим, потому что я, конечно, не использовал бы его. Версия для настольных ПК (которая заняла более 6 месяцев для повторной записи) вывела веб-версию из воды.

Это, как говорится, я видел несколько хороших веб-приложений.

3

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

  • Что для вас? У вас есть контроль над ними?
  • Насколько сложны взаимодействия, которые вы ожидаете реализовать?
  • Вам нужны обновления данных в реальном времени?
  • Как часто вы планируете обновить приложение после первого выпуска?
  • Ожидаете ли вы определенного набора клиентских платформ, или вы не можете этого предсказать?

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

1

Иногда сайт может быть хорошим, а иногда и нет. Мы находимся в новой волны, которые идут в Интернете, но не стоит забывать несколько вещей:

  • GUI в Интернете является более сложным из-за множественного браузера
  • Люди, которые должны работать в вашей системе, возможно, не нравится работать весь день в браузере
  • Web может быть медленнее, для некоторых приложений (редактирования изображений, тяжелой работы, которая требует много CPU)
  • Rapid Gui как Visual Studio для WinForm быстрее, чем для веба

Но сеть имеет m любое преимущество в развертывании и в переносимости. Если ваша система хорошо структурирована, вы можете сделать оба или изменить один на другой позже с чем-то, созданным с помощью MVC. Просто измените визуальность, и все будет хорошо.

3

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

Вы должны создавать веб-приложение, только если есть очевидные преимущества, такие как доступ извне. (Если это необходимо для вашего приложения.)

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

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

1

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

1

Два важных вопроса нет в списке до сих пор:

  • Будет первой версии есть какие-либо функции, которые требуют lowish ВЫСОТАХ доступа к оборудованию?
  • Будет ли в будущих версиях есть какие-нибудь игровые приставки, которым нужен доступ на аппаратном уровне на низком уровне?

Ответ на первый вопрос довольно прост, но вторая мысль может спасти вас от головной боли по дороге.

 Смежные вопросы

  • Нет связанных вопросов^_^