Альтернативы веб-приложению? - PullRequest
3 голосов
/ 03 марта 2009

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

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

Ответы [ 8 ]

12 голосов
/ 03 марта 2009

Я бы предложил C # с ClickOnce для развертывания. Для пользовательского интерфейса мой личный выбор будет WPF; для уровня данных - Linq To SQL или EF (хотя многие люди жалуются на EF).

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

Конечно, это делает его ориентированным на Windows. Итак, если вам также нужен Linux, вы можете взглянуть на C # / Mono с развертыванием xcopy и WinForms.

6 голосов
/ 03 марта 2009

Для Java вы должны использовать Java Web Start и взаимодействовать с сервером с помощью веб-сервисов или чего-то подобного (RMI, REST, что угодно). Он поддерживает локальное хранилище и т. Д. Прочитайте руководство по Java Web Start для получения дополнительной информации. Если вам нужны яркие интерфейсы, вы можете использовать скрипт JavaFX.

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

Кроме того, JWS похож на ClickOnce, но работает на «всех» платформах и требует, чтобы вы использовали либо AWT / Swing (что больно), либо JavaFX (который не очень зрелый).

5 голосов
/ 03 марта 2009

Посмотрите на технологию Smart Client. Это дает вам лучшее из обоих миров. Легкий пользовательский интерфейс с возможностью масштабирования. Также позволяет легко развертывать и гибкость в Интернете. Microsoft уже давно продвигает эту технологию.

У них даже есть фабрика программного обеспечения Smart Client здесь

4 голосов
/ 03 марта 2009

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

3 голосов
/ 03 марта 2009

Приложение тонкого клиента, вероятно, то, что вы ищете.

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

1 голос
/ 14 февраля 2013

извините, я опоздал. но, возможно, мой ответ будет полезен кому-то еще, кто его читает.

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

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

вы можете соединить их конец и свой, используя любой протокол, который вам нравится, но если вы используете протокол Styx тогда удаленный доступ - это просто вопрос их приложения, использующего регулярные вызовы open / read / write / seek / close. Styx может быть аутентифицирован и зашифрован. разрешения тоже применяются конечно.

(но также может иметь данные, хранящиеся локально)

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

Кроме того, само приложение должно также централизованно поддерживаться.

Вы имеете в виду, программы, которые они используют, должны храниться на вашем сервере, загружаться и запускаться на их компьютере? для этого вы должны сохранить бинарный файл в / bin вашего сервера, а в конце вы получите скрипт инициализации связать / n / ваш сервер / bin в его / bin. затем, когда их скрипт запуска пытается загрузить приложение, он ищет его в / bin. затем он просто загружается и запускается, как если бы он был локальным.

Разрешения применяются, поэтому они никак не могут испортить ваш ящик, делая это.

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

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

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

1 голос
/ 03 марта 2009

Разве HTML5 не решит большую часть этой проблемы? Просто настаивайте, чтобы ваш клиент обращался к нему через браузер с плавающей записью HTML5, и вас уже нет?

Я мог что-то упустить.

1 голос
/ 03 марта 2009

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

По сути, вы делите свое приложение на 2: - Серверная сторона - Клиентская сторона

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

Вы программируете свою клиентскую сторону на Flex, что позволит вам запускать ее в браузере или на рабочем столе, вы можете сделать свой клиент в html / css / javascript (стандартное веб-приложение), и есть десятки альтернатив ,

Но суть в следующем: то, что вы хотите, называется RIA.

...