Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Embarcadero RAD Studio XE5-XE8,10.x(Seattle, Berl

Автор: ChSerg
Дата сообщения: 22.03.2016 10:44
zealotfan

Цитата:
Нужно сделать веб-сервер

Вот тут посмотрите:
https://mikejustin.wordpress.com/2016/03/20/daraja-framework-1-0-released/
Автор: protoror
Дата сообщения: 22.03.2016 10:48
zealotfan
ChSerg
имхо лучше это все через mormot, т.к. быстрее будет работать все. Правда там надо разбираться. Но примеры есть и создатель очень быстро отвечает.
Автор: Alexey_Gawrilow
Дата сообщения: 22.03.2016 11:18
zealotfan

Цитата:
Веб-сервер должен брать данные из основной базы данных и рассылать клиентам

Вот сильно смущает данный момент.

Ты описываешь PUSH-модель.

Сервера так не работают.
Сервер - обслуживает(serve) входящие запросы.
Он пассивный.

Какую библиотеку, зависит от...

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

Я использую стоковый WebBroker, но только потому, что в одном сервере у меня SOAP и REST(JSON, XML, CSV). REST - руками.
Стоковый SOAP хостится в WebBroker.

Если бы не SOAP, взял бы mORMot, RealThinClient
для FreePascal - WST(Web Service Toolkit), BrookFramework.

Если шашечки не нужны, ЛЮБОЙ HTTP сервер(INDY, Synapse, ICS, kbmWABD)
Их много-много.
ASTA, DDObjects, Dimeric_Rinse - мертвы.
Из коммерческих - DxSock, RemObjects.

Фреймворки - тебе дадут "шашечки", но шаг влево-вправо побег, прыжок на месте провокация.
Как всегда, впрочем.

Чем ниже вход и меньше делать для старта - тем больше ограничений.

Можно с DelphiWebScript завязаться, у него вэб-серверный компонент из mORMot.

Добавлено:
ну и это...

...Свой велосипед - будет быстрее и понятнее...
...только тебе.

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

в общем, если спецификации нет, и альтернативных, совместимых реализаций - Ф ТОПКУ.
Автор: AlexCoRu
Дата сообщения: 22.03.2016 11:59
zealotfan, я могу ошибаться, но App Tethering не пойдёт? Сам не пробовал, руки не доходят.
Автор: Alexey_Gawrilow
Дата сообщения: 22.03.2016 12:51
AlexCoRu

Цитата:
App Tethering

Альтернатива: Delphi, FreePascal, C, Java, Python
TML Messaging Suite - get connected
https://github.com/tml21
https://github.com/tml21/libtml-pascal

Автор: Sulphide
Дата сообщения: 22.03.2016 14:14
Мне тоже нужна была как-то модель когда сервер делает рассылку клиентам. Это бывает необходимо фактически всегда и используется очень часто. В тех же ммо - клиент сообщил о действиях персонажа серверу, сервер данные проверил, установил персонажу соответствующее действие и уведомил (разослал) всем остальных клиентам поблизости уведомление о действиях конкретного персонажа. Ну это как пример. Когда сам писал на с++ такое там просто делал проход по списку подключенных клиентов и рассылал всем из списка. В indy не помню есть доступ к списку клиентов или нет.
Автор: Alexey_Gawrilow
Дата сообщения: 22.03.2016 15:18
Sulphide

Цитата:
В indy не помню есть доступ к списку клиентов или нет.

Есть.


Цитата:
уведомил (разослал) всем остальных клиентам поблизости уведомление о действиях

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

Но сам по себе сервер пассивен.
клиент присоединился,
сказал чего хочет,
ждет.
Автор: zealotfan
Дата сообщения: 22.03.2016 15:21
Начал использовать datasnap. Вроде всё несложно. По запросу с клиента сервер делает запрос на основной сервер получает результат в TStringList и всё записывается в TMemoryStream. Клиент под Win работает но вот под android ругается и пишет "No mapping for the Unicode.......". Как решить данный вопрос? В TStringList результаты в Win1251 наверное а нужно Unicode?
Автор: abyss79
Дата сообщения: 22.03.2016 16:43
zealotfan
Без кода даже не ясно в какой операции проблема, но попробуйте явно указать кодировку при загрузке, типа:
List.LoadFromFile(Path, TEncoding.UTF8);
Автор: zealotfan
Дата сообщения: 23.03.2016 07:22
abyss79
Спасибо! Направил в правильное русло. сохранять нужно было вот так TStringList.SaveToStream(TMemoryStream,TEncoding.UTF8);
И если дать большое количество данных то результат будет -1, но это уже совсем другая история. у TMemoryStream есть свойство size нужно его подшаманить и я думаю всё будет хорошо
Автор: Zatupitel
Дата сообщения: 29.03.2016 12:56
Я правильно понимаю, что в новой версии Embarcadero, к осени, планируется создание бинарного кода, работающего под Linux ? Это как когда-то был Borland Kylix, только видать сначала похоронили, теперь пытаются воскресить.
Но в целом, было бы интересно посмотреть, что у них получится, если это будут не только консольные приложения, но и с наличием GUI.
Автор: kaz_av
Дата сообщения: 29.03.2016 13:35
Zatupitel
Без гуя.
Автор: Alexey_Gawrilow
Дата сообщения: 29.03.2016 15:53
Zatupitel

Цитата:
когда-то был Borland Kylix, только видать сначала похоронили, теперь пытаются воскресить.

Embarcadero не получала права и исходные коды старых инструментов.
Например, старых версий Delphi/Kylix/Pascal в тч BDE
И поставляет их как есть.

Kylix похоронен вследствие взяткиинвестиции со стороны MS.
Одновременно, ну или почти, произошел ряд событий:
- инвестиции со стороны MS $100m
- переход Хайлсберга в MS
- прекращение развития линейки Kylix
- перевод IDE под .NET

Есть конечно ньюансы...

Но вот такая вот теория заговора имеет место быть...

Там можно спорить.. QT, не QT, версия ядра, уровень D7... но

- Сервера позволял делать, и некоторые делают до сих пор;
- Разделение кода с Delphi;
- UI - тоже мог.

Добавлено:
опа, 400
Автор: Frodo_Torbins
Дата сообщения: 29.03.2016 16:25
Zatupitel
Когда будут делать GUI, то наверно уже сразу Wayland. А то, что CLX похоронили - это хорошо. Уж очень сложно было бы отлаживать бутерброд из Qt (C++) и CLX (Delphi). Да и Qt очень часто обновляется, изменяет API, за ним не угонишься. Для Линухов стабильный API вообще больная тема, ничего удивительного, что Емба не спешит запрыгивать в это болото с разбега.
Автор: abyss79
Дата сообщения: 29.03.2016 18:02
Zatupitel
ЕМНИП, они это позиционируют только для сервера (т.е. без GUI, как kaz_av правильно сказал) и в следующей будет tech preview, а не полноценная версия.
Автор: kaz_av
Дата сообщения: 29.03.2016 18:38

Цитата:
и в следующей будет tech preview, а не полноценная версия

Превью летом, релиз осенью.
Автор: Alexey_Gawrilow
Дата сообщения: 29.03.2016 22:09
abyss79
а без разницы.
для серверов - пойдет.
а гуй - можно и на HTML5 сделать.
Автор: kaz_av
Дата сообщения: 30.03.2016 14:22
Alexey_Gawrilow

Цитата:
а гуй - можно и на HTML5 сделать

Для гуя можно использовать лазарь. Нативный лук-энд-фил, однако.
Автор: Alexey_Gawrilow
Дата сообщения: 30.03.2016 16:27
kaz_av
Да не спорит никто.

Только когда у тебя в ToolBox'е Lazarus, зачем тогда Delphi под Linux?
Сервер на Delphi, а клиент на Lazarus..
Да..как..это..
Оксюморон.
Автор: kaz_av
Дата сообщения: 30.03.2016 17:09
Alexey_Gawrilow

Цитата:
Только когда у тебя в ToolBox'е Lazarus, зачем тогда Delphi под Linux?

Потому что писать бизнес-логику на FPC... не всегда получается. То есть у тех, кто писал до этого на Delphi 7, проблем, вероятно, не возникнет, а вот с диалектом более свежих версий не всё просто.

Я, например, огрёб с условной компиляцией и мне пришлось перелопачивать ~70 тыс. строк кода, чтобы всё перевести на дефайны. И этот случай c условной компиляцией не единичный т.к. потом я влетел вот в это. Или вот проблема с поддержкой вложенных типов. Багу скоро год. Но самое печальное, что они релизнули компилятор с таким багом. Я уж не говорю о мелочах типа некорректной последовательности вызовов конструкторов класса, или отфонарных сообщениях об ошибке (один из примеров) (с такими диагностическими сообщениями не очень просто понять, чего от тебя хотят). Плюс, ещё была некорректная декларация типов NativeInt/UInt из-за которой у меня сломались все перегруженные функции, но этот баг довольно быстро починили. Плюс выбор перегруженного метода работает не так как в дельфях и это тоже может привести к ошибкам компиляции, хоть и фиксится по месту.

При всём при этом, и FPC и Lazarus являются отличной альтернативой Delphi, местами превосходя её. У меня сейчас один из проектов делается на лазаре, и я, в общем, доволен результатом.
Автор: Alexey_Gawrilow
Дата сообщения: 30.03.2016 22:10
kaz_av
Ну крут...
ЕЩЕ РАЗ повторю, говорил уже...

У мну попроще, но тоже ветвлений по версиям/компиляторам в полный рост.
Хотя, по большому счету, это больше для начальника/последователей.
Так сказать, что бы плотность мата в одной отдельно взятой комнате уменьшить.
Но большинству ПОФИГ.
Нас таких, которым не все равно, КАК это сделано... меньше 10%.
Остальным - компонента нет - проблема не решается.

PS. Не принимайте на свой счет, каждый ведь относит себя к 10%.
Автор: zealotfan
Дата сообщения: 31.03.2016 14:43
Написал Клиент-Серверное приложение с помощью Datasnap и FireMonkey. Клиент на Android. Интересует вопрос, как добиться того чтобы приложение не уходило в сон вместе с телефоном? Нужно чтобы телефон периодически передавал данные о местоположении и авторизованном клиенте на сервер.
Автор: Frodo_Torbins
Дата сообщения: 31.03.2016 16:01
zealotfan
Для этого на Андроиде есть сервисы. Только Делфи их лишь в Сиэтле научилась делать.
Автор: zealotfan
Дата сообщения: 01.04.2016 08:31
Frodo_Torbins
У меня Seattle и установлен. Можно ли переделать приложение в сервис?
Автор: Frodo_Torbins
Дата сообщения: 01.04.2016 14:16
zealotfan
Смотря что за приложение. Обычно если нужно чтобы некоторый код работал постоянно, то делают в одном приложении отдельно сервис и отдельно гуй. Сервисная часть выгружается из оперативки только в крайних случаях, а гуишная может даже когда юзер переключается на другое приложение. Справка: http://docwiki.embarcadero.com/RADStudio/Seattle/en/Creating_Android_Services
Автор: zealotfan
Дата сообщения: 01.04.2016 15:33
Frodo_Torbins
Приложение - обычный клиент datasnap. Спасибо за наводку.
Автор: NewVector
Дата сообщения: 04.04.2016 16:02
Всем доброе время суток. Господа, может, подскажет кто, как на Seattle (С++) реализовать работу с таким типом данных MS SQL как "geography" - ввод данных в коде, вывод. Что - ни будь типа FieldsByName("...")->AsGeography=... - ничего подобного нет в свойствах. А как по - другому ?
Автор: zedxxxx
Дата сообщения: 04.04.2016 17:15
Судя по https://msdn.microsoft.com/en-us/library/hh710042.aspx тут скорее всего нужно читать как .AsBinary и потом парсить WKB.
Автор: zealotfan
Дата сообщения: 05.04.2016 10:59
TLocationSensor не работает в android service! Кто нибудь сталкивался? В инете есть demo к патчу на это дело, а вот сам патч найти не могу.
Автор: ArturAD
Дата сообщения: 05.04.2016 13:20
zealotfan

Сами сталкивались с этим, победить не получилось, решили примерно вот таким путем
http://www.webdelphi.ru/2013/12/delphi-xe5-neskolko-poleznyx-i-ne-ochen-primerov-po-rabote-s-android/

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129

Предыдущая тема: Отмена встречи в Outlook из Excel VBA


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.