Pull to refresh

Comments 52

Не то чтобы хотелось покритиковать, но почему-то с заголовка и до середины статьи думал что бэк будет на Delphi. Оказалось что на php...

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

Сам сейчас как раз занят созданием такого сервера на Delphi (уже второго) с использованием фреймворка MARS.

Пример
  [Path('/catalog')]
  TCatalog = class
  public
    [GET, Path('configuration_tabs/{config_name}'),
    Produces(TMediaType.APPLICATION_JSON)]
    function GetTabs([PathParam, Required] ConfigName: string): TConfigurationTabs; //автоматическая сериализация объекта в json
  end;

  [Path('/catalog_items')]
  TCatalogItems = class
  protected
    class var
      Cache: TCache;
  protected
    [Context, Connection('MAIN_DB')]  // автоинъекция подключение к бд и пула
    MAIN_DB: TMARSFireDAC;
  public
    [POST,
    Produces(TMediaType.APPLICATION_JSON),
    Consumes(TMediaType.APPLICATION_JSON)]
    function CatalogItems(
      [QueryParam] count: Integer;
      [QueryParam] offset: Integer;
      [QueryParam] total_count: Boolean;
      [BodyParam, Required] QueryData: TJSONObject): TJSONObject; //сырой json
  end;

p.s. по наименованию роутов понимаю глупость. Но я вынужден подстроиться под клиенты. Бэк пишется не с нуля, а переписывается с Питона

Аналогично... тема Delphi не раскрыта - мышконакидтельство и все... Я желал увидеть сравнение бекенда классического аля php со старперским delphi\lazarus c rpsами и delayями... и похоливарить за delphi больше жив чем круживные php...
PS/ мой последний crud был bootstrap+mormot2/lazarus/linux

А я наоборот думал- зачем же бекэнд на делфи, его же в линуксе не поднять)

Или сейчас делфи уже научилось в кросплатформенность?

Уже лет 7 как

Kylix для Linux вроде бы выпускали лет так 20 с небольшим тому назад (в 2001 году).

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

В ближайшее время ожидается веб платформа

Кроме того, есть FreePascal и Lazarus, которые на линуксе прекрасно работают.
Я, например, пишу и отлаживаю на Delphi, так как давно привык к ней. А потом собирается и работает это все на линуксе.

Я очень плотно использую Delphi 11 в двухзвенной архитектуре под sql для нужд производства в компании где работаю. Быстро делается интерфейс и логика в процедурах на сервере. Сделал уже два приложения на связке delphi/sql server. Нет необходимости настраивать клиентов, использую firedac, около 60 пользователей в самом сложном МЕS приложении, удалённые пользователи через корпоративный vpn, трафик небольшой, так как вся обработка на сервере, на котором крутятся ещё три системы с подобной архитектурой под labview, плюс система мониторинга всех приложений. Пиковая загрузка сервера не превышает 20 % благодаря продуманный архитектуре баз данных, коих сейчас насчитывается уже с десяток. Есть ещё приложение, которое крутится на php,pyton, postgres Linux, но периодически глючит. В общем простoe grud приложение. Тот кто его делал давно покинул контору. Никакой потребности делать так не было, просто чел изучал новые технологии и готовился уйти в другое место.

Очень "вендорлокнутый" стек с очевидными ограничениями по масштабируемости и гарантированными проблемами в поддержке - тащить в виде legacy мертвую лошадь конечно можно - но в среднесрочной перспективе такоэ себе.

Какие-то преимущества перед qt или там шарпом наверное есть - но со стороны пожалуй что не видны.

C# и Qt - это тот же самый "вендорлок". А спецификация языка и среда разработки в последний раз выходили в декабре прошлого года (через месяц выходит апдейт (задерживается из-за перехода на новые рельсы Jira)). Для легальной сборки проекта не требуется подписка на среду разработки, а для получения апдейтов достаточно продлить лицензию. О legacy речи вообще не идет.

Гм. Да. У вас какое-то очень, очень, очень специфическое понимание термина. Opensource-delphi у вас есть? FPC+lazarus не предлагать, ага :). А MsSQL от какого-нибудь более-другого вендора? Ну или хоть не весь мускуль - так альтернативную реализацию T-SQL? Опять-таки про SELTA н-нинада. И с "альтернативным windows" на котором можно эту самую delphi запустить тоже, насколько мне известно, "не сложилось" пока.

Qt от какого-то другого вендора есть? Или может .Net?

Opensource? А не все ли равно, сколько там вендоров\комиттеров?

Вы что то не то пишете, про поддержку. У меня не web приложения, поддержка проста, так как северная бизнес логика. Весь sql и изменения фиксируется в бд, всегда можно откатиться. Клиентское приложение просто интерфейс, кнопочки, таблички и тп. Специальная структура бд упрощает разработку северной логики. Я просто очень хорошо знаю sql, умею правильно, быстро и оптимально обрабатывать данные на сервере без загрузки трафика клиентом, как делается в web. Web в области корпоративной разработки не только не нужен, но и вреден, так как неоправданно усложняет разработку. Незачем тащить с собой бесполезный чемодан, набитый всякими не особо нужными вещами. Были уже попытки в конторе, я об этом писал, и все это не только глючит, но и тормозит. Держать дорогую команду web разработчиков под внутрикорпоративные МЕS задачи производства никто не будет. Да и все что касается железа в производстве, а это настройка, тестирование и тп под Web делать невозможно.

Где вы возьмете новых разработчиков на delphi, с учетом того, что pascal с деривативами уже даже из институтов en masse выпал? Про "коммерческую разработку" на deplhi и вовсе молчу - не то, чтобы "совсем нет", но где-то на уровне статпогрешности. А сколько времени у человека "с улицы" займет въезжание в специфическую бизнес-логику, размазанную между клиентом, сервером и БД на tsql (Нормального ОРМ предполагаю нет?) - с учетом того, что формализованных постановок, CI\CD, скв в таких случаях скорее "нет"?

Тут ситуация из разряда "если надо объяснять - то не надо объяснять", если честно. Кейс с необходимостью полной замены типа-MES'а на delphi на вот "нухотьсовсемчтоугодно" в связи с выходом специалиста (1 штук, да) на пенсию у меня окрест есть, ага.

Разработчики есть, ОРМ - десяток наберется, CI/CD без проблем давно работает, СКВ вообще в Delphi встроен (git/svn). Делфи и Pascal преподают в том числе и в университетах. Проектов на Делфи тысячи, и я только о новых. В том числе и крупных, от больших корпораций. Например, Сбер недавно выпустил кроссплатформенный клиент Сбер Pro на Delphi + FMX (гуглится очень легко).

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

Не-не. Тут разные ветки - "про delphi" как инструмент - отдельно. Там все относительно неплохо, тут вы правы.

Вторая - про _конкретное решение_ в комменте выше - с MsSQL и бизнес-логикой на T-SQL server-side, с классическим "толстым" клиентом - и вот тут все относительно плохо, CI\CD+git для СУБД не то, чтобы "совсем нет", скорее "как правило нет". Да, если у тебя все миграции данных в коде и вся логика работы с БД через ORM - то оно как бы и ничего, но тут как я понял - прям сильно не тот случай.

По персоналу\проектам - ну ок, раз вы говорите, что всего в избытке - сталбыть, так оно и есть.

Ну критиковать конкретный случай бизнес-логики на общих правилах - как бы не совсем честно. Более того, стоит всё же иметь более глубокое понимание что и как и не строить домыслов. Я бы не стал критиковать подход человека основываясь лишь на том, что написано человеком выше. Мало данных.

Про избыток я не говорил, перекос в разработчиках Делфи очевидно имеется. Но, не критичный.

Ну, я считаю, что данных достаточно - но да, могу и ошибиться, конечно же.

"Критичный"\"не критичный" - вопрос интересный. Скажем так, в окрестностях delphi\fpc в качестве технологического стека для построения чего угодно просто _не рассматривается_ - просто нет возможности нанять нужное количество разработчиков "с рынка". Если у тебя есть готовая команда - усилить её +1, край 2-мя сотрудниками наверное получится - собрать под задачу хотя бы пять человек - не-а.

Вы мою статью почитайте, на хабре, в профиль зайдите. Там я описываю свою систему тестирования интеллектуальных приборов. Клиент labview, северная логика. Что либо подобное сделать с логикой на клиенте ну не знаю, вообще возможно ли за вменяемое количество времени. Команда два человека, я как архитектор БД и sql+ напарник на labview.

Да как бы трехзвенка же, чтобы бизнес-логику из БД поелику возможно вынести...

Можно, но цель? Эта система работает уже несколько лет без каких либо проблем. Параллельно с системой мониторинга. Сейчас масштабируем до 8 станций и ничего не надо переделывать. В предыдущей конторе подобную систему без программируемых тестов делало 6 человек несколько лет на C#. Мы вдвоём за год программируемую. Если маяться с логикой на клиенте то тут годом бы не отделаться. Система очень стабильна благодаря связке labview и SQL server. Единственное что вынес на клиета это расчёт коэффициентов полиномов, так как требовалась нехилая точность при обратном расчете полиномов. У нас сложная математика, это не джисоны туда сюда гонять

Повторюсь - "если надо объяснять, то не надо объяснять": последние четверть века развития IT прошли мимо, но никто не мешает и не заставляет отказываться от технологий конца 90х годов, если они вас устраивают.

Я использую sql в разработке, а насчёт delphi это чтобы быстро пилить интерфейс и только.

Нет, не настолько плохо в найме, поверьте. За этот год мы начали строить несколько новых проектов и буквально за пару месяцев наняли более 4 новых человек на Делфи направление. Замечу, что у нас не только Делфи, но и С# с юнити и рекат и даже местами питон, в штаты которых мы тоже параллельно набирали людей. Так что проблем с этим нет. Также, стоит заметить, что проекты именно новые, на новых версиях инструмента и новых стеках.

Ну, под сотню актуальных резюме в которых указано "что-то про delphi" на всю Москву есть, да. Из них именно программистов с релевантным опытом (А не бэкенд, фронтэнд и ну вот delphi еще был), готовых к переходу на новое место работы - ботинки снимать не придется, не факт, что и вторую руку из кармана доставать понадобится.

Вы не понимаете, что простота разработки и установки включает расширенную в сети папку в которой лежит ехе. Ярлык на рабочий стол пользователя вот и все что нужно. Документы через шаблоны EXCEL. Коммерческая разработка не нужна. Можно в этой идеологии и C# использовать. Клиент можно любой, но только не всякие qt которые несовместимы могут быть от версии к версии. Delphi я использую из за firedac - любую бд поддерживает без настройки коннектa.

Это из разряда "хуже воровства", да.

Раздутость кода, зависимостей библиотек и команд разработки вот что хуже воровства в этой web парадигме программирования, которую вы называете "современными технологиями". Об этом пишут многие профессионалы программирования кто приложил к этому руку в 2000-х. Благо бы она была нужна в области удалённого доступа, но в локальной разработке это большой геморрой. Я обхожусь минимальными средствами и достаточными чтобы создавать качественное, лёгкое в поддержке и доработке и стабильное ПО.

Ну и я вставлю свои "5 копеек" за то что Delphi все еще жив))
За последние 5 лет видел написанное на Делфи ПО в структурах ООН и Deutsche Bank с довольно приличным интерфейсом и богатым корпоративным функционалом, поэтому наверное Делфи незаслужено ушло в тень учитывая размеры команд - очень экономит бюджет, если сравнивать с командами на Java.

Используется, переписывал на одном месте работы методы API с Delphi на C#, в основном благодаря Net.Core код практически уходит, становиться в разы меньше и проще. Хотя методы API на Delphi немного быстрее работали :)

Странно, спросил где используется, накидали минусов… Простое любопытство задевает чьи-то чувства ?)

Дело в том, что вопрос мертв ли Delphi, на хабре уже много раз был обсосан. Простым гуглением можно узнать используется ли где-то Delphi. А вопрос ваш и его форма выглядят как провокация (признаюсь, даже мне до сих пор так кажется), скорее всего поэтому и минусят.

Delphi используется до сих пор там, где на нём было много написано, например, многие САПР были и остаются на Delphi. Хотя кто-то уже переползает на C#. Также выше пишут, что используют его там, где надо легко и быстро накидать приложение. Причём запускаться оно будет без установок библиотек и зависимостей.

В целом Delphi хороший, читаемый язык. Его теперешнее состояние кажется заслуга плохого менеджмента. Слышал от тех кто пишет до сих пор на нём, например, что в какой-то момент Embarcadero (разработчик) начали копать в сторону Android, macOS и iOS вместо каких-то действительно полезных фич. Но это только одно мнение и то, возможно перевраное.

Старая информация, но отражает действительность на 2010-2016ые года. Изначальный крах произошел в следствии конкурентной борьбы с Microsoft. А кто в те года мог себе это позволить, если MS решит создать конкурентный инструмент? Вот и Борланд не смогла, потеряла одного из ключевых разработчиков и идеологов Андерса Хейлсберга, который перешёл в MS для работы над C#. Что в свою очередь сделало C# почти таким же удобным инструментом для разработки как и Delphi, перенеся львиную долю идей в .Net (правда сейчас уже WinForms немного заброшен, а новые подходы не такие удобные). Но рынок порешал в пользу более выгодного C# с .Net. Другими словами, Delphi просто задавили.

После покупки Delphi компанией Embarcadero, стало развиваться кроссплатформенное направление, но не только оно. Полезных фич в языке появилось не мало, а стандартная библиотека начала разрастаться очень сильно. С тех пор появились дженерики, хелперы, развитие рефлексии с атрибутами и прочим, анонимные функции, инлайн переменные, вывод типов, инлайн оптимизации, "мультистроки", таски, фьючерсы, локальные скоупы, расширенные структуры, перегрузка операторов, классовые конструкторы/деструкторы, бинарные числа (var Bin := %010001) и так далее. Можно много накопать, а это только то что я помню. Среду разработки тоже развивают, но к сожалению, пока речи о кроссплатформенной среде речи не идет. А вот саму кроссплатформу развивают. Один код прекрасно будет работать на всех платформах. Я как-то недавно портировал GameBoy эмулятор под кроссплатформу. Дольше игрался в игры GameBoy на Андроид после сборки, чем потратил на портирование.

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

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

А чего, по-вашему мнению не хватает в делфи по части Энтерпрайз?

Мммм... непонятно, зачем тут delphi? Десктопное приложение выдвигает специфические требования к интерфейсу, (не|сложно) реализуемые в браузере?

А по openapi-спеке генератор совсем-совсем кривой и не работает? Вроде ж даже гуглится в количестве более одного...

А у нас теперь принято писать именно веб-приложение для браузера, если требуется работать с сетью?

Последние лет эдак 15 если не 20? Да. Если нет очень специфических требований к интерфейсу, то да - да и то с развитием WASM'а это уже не столь строгое ограничение.

Ага... Т.е. именно по этому за последние 15-20 лет созданы десятки новых GUI фреймворков, придуман Электрон (прости хосподи), под Питон созданы обертки для разных GUI фреймворков, а Flutter теперь и на десктоп позволяет писать?

За последние 15-20 лет увеличилось количество веб-разработок, но при этом, количество десктоп разработок не уменьшилось. Просто у вас сменились интересы.

Более того, Delphi - это давно далеко не только десктоп.

Электрон - это на мою мельницу вода, нет? :)

Насчет "десятков новых GUI-фреймворков" тоже, если честно, сомневаюсь. Тема не моя - но из кроссплатформенного есть вот QT, GTK и, наверное, wxWidgets? Ява примерно померла, шарпей за рамками windows не взлетел - кто остался на трубе?

По десктопу - окрест меня разве что тренажеры для операторов с их требованиями к отзывчивости интерфейсов на чистом десктопе пилят... ну вот "ничего" не пилят. Даже чертов 1С на котором одно время изрядно было - и тот в околовебню уползает.

Для энтерпрайза майнтенанс десктопов - дорого. Деплой вебни на 1000 пользаков - примерно "бесплатен", аналогичная операция для десктопного приложения - нууууээээ... чаллендж. Распилить десктопное приложение под совместную разработку N-командами - не то, чтобы "нельзя", но задача требующая прям хороших таких специфических навыков, да и набрать N-команд под один технологический стек - возможно не всегда, а для вебни пачка микросервисов в диапазоне от java'ы до .net'а через php-python-js вполне себе рабочая история. Да много очевидных причин на самом деле - на текущий момент ситуация такова, какова она есть и больше никакова, а отрицание действительности ни к чему хорошему как правило не приводит.

В том-то и дело, что "тема не ваша". Электрон - это скорее камень в ваш огород, т.к. даже вебу приходится исхищряться, чтобы угодить пользователю. Что и привело к созданию Электрона. А кроссплатформенного GUI в мире очень много. Тот же Flutter, в рамках десктопа, - новая разработка. В Delphi кроссплатформенный GUI с рендером на GPU (по дефолту, но опционально) общий для всех платформ (Винда, Линукс, Андроид, Мак, Иос).

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

И это не говоря о том, что многие языки позволяют создавать и веб-приложения тем же кодом. На Delphi есть несколько фреймворков с WYSIWYG для создания веб-приложений (не Асм), а с компиляцией и генерацией JS (погугли UniGui и TMS Web Core).

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

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

А кроссплатформенного GUI в мире очень много. Тот же Flutter, в рамках десктопа, - новая разработка.

Ну да. Только написанного на нем софта я окрест себя не вижу. Вижу я вот PyCharm на яве - но JB тут как бы не "последний из могикан" свою патченную java'у с GUI тулкитом тянет, телегу вроде бы на qt, файрфокс на gtk, teams на электроне - да в общем-то и все.

Для энтерпрайза и других областей развертка софта - это секундный апдейт перед/в момент запуска.

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

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

Угу. И тот, что с "чатиками" тоже - куда-ж с него денешься-то? А местами и не хочется деваться - веб-интерфейсы как правило штука редкостно отвратная при регулярном использовании. Но дешевая, да - что собственно и решает.

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

Как архитектору этих самых систем управления производством мне в этот момент некоторым образом смешно, извините. Не попали вы примерно по всем пунктам. Безальтернативно на текущий момент - разве что SCADA в процессах с высокой дискретностью, а вот уже диспетчерский контроль на веб-интерфейсах цветёт и пахнет во все поля...

Управление производством может включать в себя не только набор служб, к которым подключаются клиенты для управления и мониторинга данных. Подобные службы могут быть конкретным элементом управления конечным станком. Системы на ЧПУ, софт для работы с конечным контроллером рядом с установкой. Системы, которые в реалтайме управляют системой под управлением оператора и уже сами могут быть связаны с другими службами управления производством для складирования данных или получения установок. Вы же ведь все, кроме "управления производством", которое имеет очень широкую область, пропустили из списка.

Веб-разработка не дешевле, особенно с учетом того, что штат для веб разработчиков требуется куда шире, чем для разработки даже целой системы 3х звенки.

Ну да. Только написанного на нем софта я окрест себя не вижу. Вижу я вот PyCharm на яве - но JB тут как бы не "последний из могикан" свою патченную java'у с GUI тулкитом тянет, телегу вроде бы на qt, файрфокс на gtk, teams на электроне - да в общем-то и все.

Так ведь мир крутится не только вокруг вас. Более того, вы заинтересованы в конкретных инструментах. Вы вроде как "разработчик" (в широком смысле этого слова), а не пользователь, на которого и направлен создаваемый софт. Разве никто не пользуется графическим софтом? Софтом для создания и редактирования документов? Для работы с видео? Для работы с устройствами?

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

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

А когда мы говорим о простом домашнем использовании компьютера, которых к слову всё меньше и меньше у частных лиц (в угоду мобильным устройствам), конечно всё меньше и меньше десктоп софта. Тем не менее, очевидно, что для работы с калькулятором вы запустите десктоп программу, как и при работе с файлами. Не уверен, что вы читаете и редактируете текстовые файлики через браузер. Не уверен, что и картинки смотрите через него или фильмы (если они в виде файлов). Т.е. почти вся работа с файлами - десктоп софт (и не имеет значения, что он "встроен в ОС", потому что это отдельная десктоп программа в любом случае).

Для работы с СКВ, вы вероятно тоже не будете использовать веб (речь о просмотре истории разработки, а не git commit ., git pull, git push). Да и для разработки, почему-то мало кто использует веб версию VS Code на полноценной основе или другой подобный инструмент. Забавно, что даже Телеграмом все пользуются через клиент, а не через существующий веб-клиент.

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

Чтобы было понятно - я НЕ люблю веб-интерфейсы. Они мне НЕ нравятся. Мне НРАВИТСЯ fpc\lazarus - с моей т.з. это "близкий к оптимальному" инструмент для развития именно "регионально-российского" IT, для которого задачи масштабирования "на весь мир" с "поддержкой индусами" и выносом всего-и-вся в облако не то, чтобы прям остро стоят на повестке дня для всех отраслей.

Но - при всем при этом я реалист и мое мнение к положению дел в индустрии отношение имеет примерно "никакое".

И да, окрест меня люди работают с графикой в фигме\drawio, открывают документики 365ым офисом (Онли - для неудачников), сам я калькулятором не пользуюсь и или в питонячьей консоли тыкаюсь, либо в адресной строке браузера пишу, и даже code-review все больше в браузере же, там же и кино-домино, ага. "Мир сдвинулся" и надо с этим жить.

Фигма и draw.io - это не графика, а инструмент для построения интерфейсов из примитивов, при чем средствами самого же веба. 365 офис не работает оффлайн. Мир не сдвигался в сторону веба, веб это лишь расширил. Заменить он standalone приложения никогда не сможет, в частности, если будет это и дальше происходить внутри абстракции браузера и тем более внутри абстракции абстракции - webasm.

Хромос тому свидетель, да.

В статье не стал упоминать требования к интерфейсу дабы не захламлять.
Одним из специфичным требованием являлось требование работы со сканерами Zebra (использовать Zebra SDK) - автоматом настраивать их и т.д. Было смутное ощущение что с веб интерфейсом это было бы намного сложнее сделать, если конечно вообще возможно. А времени на изучение темы как всегда не было))

Эммм... там вроде отдельная API'шка как раз для браузеров есть...

Используем в нашем комплексе для REST API Delphi MVC Framework https://github.com/danieleteti/delphimvcframework . Документации для старта достаточно, для более расширенной можно купить книжку за $50.

Над фреймворком написан свой фреймворк для внутренней стандартизации обмена табличными данными. REST API также используется для взаимодействия клиентских модулей между собой на одной машине, и даже внутри одного процесса. Так удобно отлаживаешь клиентскую и серверную часть в одном приложении, с использованием паттерна "удаленный фасад" а потом выносишь серверную часть в удаленную службу.

Бакэнд собирается под Windows и Linux. Лазаря посмотрели, но прошли мимо - в первую есть опасения работоспособности отладки. в нем - кода много, Delphi справляется с компиляцией на пределе по памяти.

Для нового клиентского кода используем кроссплатформенные компоненты TMS FNC. Они позволяют использовать одинаковый код для VCL и FMX, только формы нужно продублировать. FMX FNC приложения собираем для Windows и Linux ( c использованием FmxLinux) . Разработка ведется под Windows. Новые приложения уже кроссплатформенные. В старые VCL приложения новые формы добавляем разработанные на компонентах TMS FNC для VCL.

Непонятно зачем автор статьи сразу налепил API Gateway , не понимая требований. И раз 5 сослался на отсутствие документации. Да есть документация, если поискать. В ТГ канале по Delphi обсуждали все фреймворки REST API

Sign up to leave a comment.