Когда выбрать между веб-интерфейсом и собственным GUI?

Компонент Field - это то, что связывает поле формы с состоянием Формика. Он использует контекст под капотом; Formik является поставщиком контекста, а Field является потребителем контекста. Field связан с Formik и не имеет смысла вне его. Для вашего случая использования, когда вы хотите визуализировать поля формы, которые иногда связаны с Formik, а иногда нет, я бы экспортировал два разных компонента:

  1. Базовый компонент Checkbox, который не имеет ничего общего с Formik. Он должен просто использовать обычный ввод
  2. Обертка поля вокруг этого компонента Checkbox

В то время как компонент Field может взять type, в результате чего он отобразит соответствующий вход, он также может взять реквизит рендера для рендеринга того, что вы хотите, и ему передается все состояние, которым управляет Formik для этого поля.

Например, ваши компоненты Checkbox и CheckboxField могут выглядеть примерно так:

const Checkbox = (props) => {
  ...
  return (
    
) }; const CheckboxField = (props) => { return ( {(field) => } ) }

Теперь вы используете два компонента, которые отображаются одинаково, но один предназначен для использования в форме Formik ( CheckboxField), а другой может использоваться где угодно (Checkbox).

14
задан Charlie Martin 15 March 2009 в 19:00
поделиться

7 ответов

Нет никакого общего ответа на тот вопрос. Это зависит от некоторых факторов:

  • Ваша целевая группа - Является этим широкое распространение или объединенный?
  • Мобильность - Над которыми платформами работают Ваши пользователи?
  • Производительность - большая часть его необходима? Если да, настольное приложение было бы лучше. Я не могу вообразить программное обеспечение редактирования видео, работающее в браузере. Возможно, за 10 лет :)
  • и больше которые должны быть вычислены индивидуально

Но тенденция ясно переходит к веб-приложениям. Можно достигнуть настоящей группы людей с ними.

3
ответ дан 1 December 2019 в 14:44
поделиться

Некоторые точки для веб-интерфейса:

  • Когда программа должна быть администрируема от другого компьютера в сети
  • Когда скорость более быстрой разработки необходима (Обычно быстрее для записи html/javascript, чем Qt/Gtk и т.д.)
  • Сохранять программу максимально кросс-платформенной совместимый
4
ответ дан 1 December 2019 в 14:44
поделиться

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

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

С современными браузерами, JavaScript и ajax и библиотеками JavaScript, можно создать чрезвычайно богатый интерфейс, который может легко быть изменен.

1
ответ дан 1 December 2019 в 14:44
поделиться

Только пойдите для Настольного приложения, если можно управлять средой (интранет) или программа к среде (кросс-платформенная версия), в котором будет работать тот пакет/приложение.

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

1
ответ дан 1 December 2019 в 14:44
поделиться

Я думаю, что это - неправильный вопрос. То, что необходимо сделать, анализируют различия между платформами и как они влияют организацию. Дать Вам пример реального мира.

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

Компания шла вперед и разработала клиентское приложение .NET, и они получили грубое пробуждение. Компания не была подготовлена к сложности развертывания ни на каком количестве клиентских конфигураций. Мы получили бит Сетями Novell, например. Они не были подготовлены к стоимости увеличения поддержки клиентского приложения. (И да разработка предостерегла и попыталась предупредить их, что это означало).

Так не только делают необходимо задать различные вопросы, но и необходимо оценить их в контексте организации, производящей программное обеспечение.

Вещи попросить включать:

  1. Сначала и formost является банкой Ваше выполнение приложения как веб-приложение? Некоторые приложения просто не выполнимы. если необходимо получить доступ к низкоуровневым ресурсам, Ваш не, движение имеет много опций.
  2. Можно ли предоставить maintance затраты на клиентское программное обеспечение? Если это - распределенное приложение, что происходит, когда Вы обновляете сервер, но клиенты не обновляются.
  3. Можно ли поддерживать клиент?
  4. Какой опыт делает тимбилдинг программное обеспечение? Это огромно, по моему скромному мнению. Неважно, насколько хороший команда при создании веб-приложений, они сделают ошибки, делающие клиентские приложения, что experinced разработчик клиента не был бы.
1
ответ дан 1 December 2019 в 14:44
поделиться

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

  1. Вы не должны развертывать веб-приложения
  2. Люди часто больше привыкли к использованию веб-браузера, чем пользовательское приложение, так обычно, приложение получает в usablility
  3. Обычно, для пользователей легче найти то, что они ищут в веб-приложении из-за интерфейса.
  4. Только необходимо протестировать с несколькими браузерами, и Вы избегаете необходимости тестировать много клиентских конфигураций, которые могли бы конфликтовать.
  5. С веб-приложением Вы не должны заботиться, о какой операционной системе клиент мог бы использовать. Например, скажем, Ваша компания решает, действительно перемещаются, это - настольные компьютеры к Linux, Вы не должны будете создавать новую версию.

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

1
ответ дан 1 December 2019 в 14:44
поделиться

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

Самое большое преимущество UI, который может работать в браузере, это независимо от клиента ОС. У большинства пользователей компьютера сегодня есть больше чем один компьютер, обычно подключаемый в сети. Распределение различных операционных систем становится больше каждый день (альтернативы окнам получают большую долю рынка). Таким образом, Вы получаете максимальную мобильность UI. Ваше приложение может быть запущено однажды на одном компьютере и получено доступ отовсюду.

0
ответ дан 1 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: