Благодаря реализации всего потенциала шести самых продвинутых парадигм программирования, lsFusion обладает завершенностью ERP-платформ, превосходит SQL-платформы по декларативности и производительности и при этом практически не уступает ORM-платформам в гибкости и масштабируемости.

Все это делает lsFusion своего рода серебряной пулей в области разработки бизнес / веб приложений с не экстремально большими бюджетами и количеством пользователей.

Почему не ... ?

Сравнить по возможностям
  • возможностям
  • нефункциональным требованиям
  • ролям
Все возможности

Название ERP RDBMS + UI ORM + UI RAD Electronic tables lsFusion
Подтип Глобальные Местные Коммерческие Бесплатные
Примеры SAP, MS Dynamics AX 1С >= 8.2 Oracle, MS SQL Postgres, MySQL, Firebird Java Spring, J2EE, Odoo, .NET MS Access, Foxpro, Delphi, 1C <= 8.1 Excel, Google Docs lsFusion
Один язык работы с данными В платформе отсутствует объектно-реляционный семантический разрыв - когда разработчику приходится постоянно выбирать между "быстрыми" SQL-запросами и кодом на "удобном" императивном языке. И тот и другой подход абстрагированы и объединены настолько, что грань между ними практически отсутствует. Разработчик всегда работает с данными в одной парадигме, а за то, как и где вся эта работа будет выполняться, полностью отвечает сама платформа. -В 4GL языках (ABAP, C#, Foxpro и т.д.) работа с SQL интегрирована в язык, но все равно оперирует понятиями из реляционной алгебры - таблицами, соединениями, объединениями и т.п. -В 4GL языках (ABAP, C#, Foxpro и т.д.) работа с SQL интегрирована в язык, но все равно оперирует понятиями из реляционной алгебры - таблицами, соединениями, объединениями и т.п. -В 4GL языках (ABAP, C#, Foxpro и т.д.) работа с SQL интегрирована в язык, но все равно оперирует понятиями из реляционной алгебры - таблицами, соединениями, объединениями и т.п. -В 4GL языках (ABAP, C#, Foxpro и т.д.) работа с SQL интегрирована в язык, но все равно оперирует понятиями из реляционной алгебры - таблицами, соединениями, объединениями и т.п. -В 4GL языках (ABAP, C#, Foxpro и т.д.) работа с SQL интегрирована в язык, но все равно оперирует понятиями из реляционной алгебры - таблицами, соединениями, объединениями и т.п. -В 4GL языках (ABAP, C#, Foxpro и т.д.) работа с SQL интегрирована в язык, но все равно оперирует понятиями из реляционной алгебры - таблицами, соединениями, объединениями и т.п. - +
Одна парадигма работы с UI В платформе отсутствует разделение пользовательского интерфейса на интерактивные формы и отчеты. Любая форма может содержать как первичные, так и вычисляемые данные, и ее можно открыть как в печатном представлении (в виде классического отчета) так и в интерактивном (с возможностью ввода). Соответственно, пользователь может в одном интерфейсе не только видеть данные, необходимые для принятия решения, но и сразу вводить принятое решение непосредственно в систему. - - - - - - + +
Обращение сервера к клиенту В платформе отсутствует разделение логики на сервер и клиент, и, соответственно, разработчик в любой момент может запросить модальное взаимодействие с пользователем. В этом случае платформа автоматически останавливает процесс выполнения действия, отправляет запрос пользователю, и, сразу после получения ответа от него, продолжает выполнение остановленного действия. +Поддерживается только в платформах на основе 4GL языков (SAP) - - - - + + +
No ORM, Yes SQL Если некоторое действие предполагает обработку данных сразу для множества объектов, платформа пытается по возможности выполнить эту обработку на сервере БД одним запросом (то есть сразу для всех объектов). Все формируемые запросы при этом максимально оптимизируются с учетом особенностей используемого сервера БД. +/- - + + - - - +
События изменения данных Платформа позволяет создавать обработки событий изменения любых (в том числе вычисляемых) данных. Использование этого механизма позволяет значительно повысить модульность создаваемых решений. -/+Триггеры (события) только для материализованных данных, причем материализованных в одной таблице (классе). -/+Триггеры (события) только для материализованных данных, причем материализованных в одной таблице (классе). -/+Триггеры (события) только для материализованных данных, причем материализованных в одной таблице (классе). -/+Триггеры (события) только для материализованных данных, причем материализованных в одной таблице (классе). -/+Триггеры (события) только для материализованных данных, причем материализованных в одной таблице (классе). - - +
Динамическая физическая модель Платформа позволяет в любой момент материализовать любой из существующих показателей в системе, добавить новые или удалить существующие таблицы, а также изменить расположение материализованных показателей в этих таблицах. -/+Нет прозрачной материализации данных, можно отображать только объекты и их поля на таблицы с одним ключом (то есть с таблицами с >1 ключом можно работать только напрямую через SQL). - - - -/+Нет прозрачной материализации данных, можно отображать только объекты и их поля на таблицы с одним ключом, а также map'ы на таблицы с двумя ключами (то есть с таблицами с >2 ключами можно только напрямую через SQL работать). - - +
Ограничения любых данных В платформе существует возможность создавать ограничения значений любых (в том числе вычисляемых) данных. При этом, все созданные ограничения (как и события) глобальны, а значит неопытный пользователь или разработчик не сможет обойти их неправильно проведенной транзакцией. - - -/+Ограничения только на формулы от материализованных данных, причем материализованных в одной таблице. -/+Ограничения только на формулы от материализованных данных, причем материализованных в одной таблице. - - - +
Абсолютная реактивность Все вычисляемые данные автоматически обновляются при изменении данных, которые они используют. Это правило действует всегда и везде - как при отображении интерактивных форм, так и просто при обращении к данным внутри выполняемого действия. -/+В UI в частных случаях для первичных данных. -/+В UI в частных случаях для первичных данных. -/+Есть некоторые элементы реактивности в механизме материализованных (индексированных) представлений. -/+Есть некоторые элементы реактивности в механизме материализованных (индексированных) представлений. -/+В UI в частных случаях для первичных данных. -/+В UI в частных случаях для первичных данных. + +
Кроссплатформенность сервера Поддерживаются любые ОС, для которых существуют реализации JVM, а также наиболее распространенные реляционные СУБД. +/-Отсутствуют оптимизаторы запросов позволяющие адаптироваться к особенностям конкретных СУБД (например отсутствие в бесплатных субд ряда оптимизаций, например predicate push down, разная работа с пользовательскими агрегирующими функциями и рекурсиями и т.п.). То есть по сути все эти платформы являются не более чем трансляторами в соответствующий синтаксис. +/-Отсутствуют оптимизаторы запросов позволяющие адаптироваться к особенностям конкретных СУБД (например отсутствие в бесплатных субд ряда оптимизаций, например predicate push down, разная работа с пользовательскими агрегирующими функциями и рекурсиями и т.п.). То есть по сути все эти платформы являются не более чем трансляторами в соответствующий синтаксис. - - +/-Отсутствуют оптимизаторы запросов позволяющие адаптироваться к особенностям конкретных СУБД (например отсутствие в бесплатных субд ряда оптимизаций, например predicate push down, разная работа с пользовательскими агрегирующими функциями и рекурсиями и т.п.). То есть по сути все эти платформы являются не более чем трансляторами в соответствующий синтаксис. - - +
Открытая структура БД Отображение логики в базу данных абсолютно прозрачно, при этом разработчик сам может управлять этим процессом. Никаких сгенерированных имен или суррогатных таблиц. + - + + + + + +
Кроссплатформенность клиента В платформе поддерживаются одновременно и десктоп и веб клиенты. Для десктоп-клиента, как и для сервера, поддерживаются любые ОС для которых существуют реализации JVM. Также, благодаря тому что для расположения компонент используется относительное (а не абсолютное) позиционирование, их отрисовка в веб-клиенте осуществляется нативно средствами CSS (без использования JavaScript), что значительно повышает отзывчивость интерфейсов при работе в веб-клиенте. Кроме того, ни десктоп, ни веб-клиент не содержат никакой прикладной логики, что значительно упрощает их развертывание (то есть можно использовать один и тот же клиент сразу для всех логик). + + -/+Зависит от конкретного UI. Но одновременно и десктоп и веб не поддерживаются. -/+Зависит от конкретного UI. Но одновременно и десктоп и веб не поддерживаются. -/+Зависит от конкретного UI. Но одновременно и десктоп и веб не поддерживаются. - + +
Декларативная работа с внешними форматами Любую форму в платформе можно не только показать пользователю в интерактивном режиме или распечатать, но и экспортировать в файл любого из наиболее распространенных форматов данных (JSON, XML, CSV, XLS, DBF и т.п.). Причем эта операция симметрична, и, соответственно, можно, наоборот, импортировать информацию из файла любого из перечисленных форматов обратно в форму. Оба процесса при этом абсолютно декларативны и работают с теми же понятиями, которые используются при работе с UI, тем самым значительно упрощая взаимодействие с внешними системами. -/+Работа с внешними форматами строго императивна (с небольшими зачатками декларативности в отдельных механизмах, вроде работы с XML при удаленных вызовах в веб-сервисах с использованием WSDL) и в отдельной парадигме (никак не связанной с UI). -/+Работа с внешними форматами строго императивна (с небольшими зачатками декларативности в отдельных механизмах, вроде работы с XML при удаленных вызовах в веб-сервисах с использованием WSDL) и в отдельной парадигме (никак не связанной с UI). -/+Работа с внешними форматами строго императивна (с небольшими зачатками декларативности в отдельных механизмах, вроде работы с XML при удаленных вызовах в веб-сервисах с использованием WSDL) и в отдельной парадигме (никак не связанной с UI). -/+Работа с внешними форматами строго императивна (с небольшими зачатками декларативности в отдельных механизмах, вроде работы с XML при удаленных вызовах в веб-сервисах с использованием WSDL) и в отдельной парадигме (никак не связанной с UI). +/-Работа, как правило, декларативна в части работы с иерархичными форматами (JSON и XML), но при этом осуществляется в отдельной парадигме (никак не связанной с UI). -/+Работа с внешними форматами строго императивна (с небольшими зачатками декларативности в отдельных механизмах, вроде работы с XML при удаленных вызовах в веб-сервисах с использованием WSDL) и в отдельной парадигме (никак не связанной с UI). -/+Работа с внешними форматами строго императивна (с небольшими зачатками декларативности в отдельных механизмах, вроде работы с XML при удаленных вызовах в веб-сервисах с использованием WSDL) и в отдельной парадигме (никак не связанной с UI). +
Эффективное общение клиента с сервером Общение клиента с сервером на физическом уровне построено таким образом чтобы минимизировать количество синхронных round-trip обращений (то есть одно действие пользователя - один запрос-ответ, по возможности асинхронный). Помимо этого в десктоп-клиенте все передаваемые данные архивируются и, при необходимости, шифруются. Также, при общении клиента с сервером (как десктоп-клиента через TCP/IP протокол, так и веб-клиента через HTTP протокол), в платформе обеспечивается гарантия доставки, то есть в случае если какие-то запросы теряются, платформа посылает их повторно, причем с гарантией того, что они будут обработаны в правильном порядке. Все вышеперечисленное позволяет платформе эффективно функционировать даже на узких и ненадежных каналах связи, а также каналах связи с большим временем отклика. - - - - - - - +
Прозрачная интеграция Платформа поддерживает обращение к системе через самый распространенный прикладный протокол общего назначения (HTTP), при этом интерфейс обращения включает в себя не только выполнения некоторого действия (с автоматическим разбором параметров), но и выполнение кода на языке lsFusion (по аналогии с обращением к SQL серверам). Также платформа, на уровне языка, поддерживает обращение к любым внешним системам по протоколу HTTP, а также к SQL-серверам, другим lsFusion системам и т.д. Кроме того сам сервер реализован в виде Spring bean, что позволяет управлять его циклом жизни при помощи обычного Spring IoC контейнера. Все вышеперечисленное позволяет использовать lsFusion не только в качестве полноценной платформы разработки, но и, при необходимости, в качестве СУБД или даже в качестве Java-библиотеки. -/+Нет возможности исполнения кода (как в SQL серверах). При этом общение либо через http - без разбора параметров, либо через wsdl (xml) - с разбором параметров. Невозможно подключать в качестве библиотеки. -/+Нет возможности исполнения кода (как в SQL серверах). При этом общение либо через http - без разбора параметров, либо через wsdl (xml) - с разбором параметров. Невозможно подключать в качестве библиотеки. +/-Невозможно подключать в качестве библиотеки. +/-Невозможно подключать в качестве библиотеки. +/-Нет возможности исполнения кода (как в SQL серверах). - - +
CI в ACID из коробки В платформе реализован корректный откат состояния сервера приложения на момент начала транзакции из любой операции, где идет обращение к данным. Это позволяет использовать родные средства обеспечения целостности реализованные в современных SQL-серверах, что, с одной стороны, значительно уменьшает трудозатраты / вероятность ошибок при разработке системы, работающей в высококонкурентной среде, а, с другой стороны, значительно увеличивает масштабируемость такой системы (при условии использования версионных СУБД). - - + + - - - +
Бесшовное подключение Java-библиотек / SQL-функций Сервер приложений выполняется в виртуальной Java машине (JVM), что позволяет подключить к нему любую из многочисленных существующих Java-библиотек. Для этого достаточно создать свое действие на Java, зарегистрировать его в платформе и использовать, как если бы оно было встроенным или реализованным на языке платформы. Аналогичным образом можно бесшовно подключать пользовательские SQL-функции используемого сервера БД. - - + + + - - +
Everything as code Все элементы системы, от событий до дизайна форм, задаются в виде кода на языке lsFusion, хранящегося в обычных текстовых файлах (без каких-либо общих репозитариев с неизвестной структурой). Это позволяет использовать при работе с проектами популярные системы контроля версий (Git, Subversion) и сборки проектов (Maven, встроенные в IDE). Кроме того, такой подход упрощает процесс поддержки / развертывания разработанной системы, так как позволяет, во-первых, при помощи обычного текстового редактора просматривать, и, при необходимости, оперативно изменять логику, а, во-вторых, легко идентифицировать любой элемент в системе, по его файлу и номеру строки в этом файле. -/+Работа с формами и другими метаданными (таблицами, регистрами и т.п.) как правило ведется визуально и сохраняется в бинарном виде в общем репозитарии / файле (максимум существует выгрузка, но в формате не подразумевающем удобное редактирование / просмотр, например XML). -/+Работа с формами и другими метаданными (таблицами, регистрами и т.п.) как правило ведется визуально и сохраняется в бинарном виде в общем репозитарии / файле (максимум существует выгрузка, но в формате не подразумевающем удобное редактирование / просмотр, например XML). -/+В СУБД теоретически можно работать со структурой базы как с кодом, создавая скрипты с пометками "CREATE OR REPLACE" и / или версиями и командами изменений ADD / DELETE, после чего запоминать предыдущую версию базы и накатывать изменения между версиями, но это, по умолчанию не является частью СУБД, а организуется непосредственно разработчиками. -/+В СУБД теоретически можно работать со структурой базы как с кодом, создавая скрипты с пометками "CREATE OR REPLACE" и / или версиями и командами изменений ADD / DELETE, после чего запоминать предыдущую версию базы и накатывать изменения между версиями, но это, по умолчанию не является частью СУБД, а организуется непосредственно разработчиками. + + - +
Эргономичный язык В платформе существует возможность объединять имена элементов в пространства имен, и при поиске элементов считать имена в одном и том же пространстве имен более приоритетными. Таким образом в большинстве случаев достаточно указывать только "короткое" имя искомого элемента, а значит код получается более компактным и читабельным. Кроме того, для каждого параметра в коде можно задавать его класс и при поиске элементов эти классы также будут учитываться (то есть поддерживается явная типизация). Последнее, кроме короткого кода, позволяет в том числе получить раннюю диагностику ошибок, умное автодополнение и ряд других похожих возможностей. - - -/+Обычно используются две разные нишевые IDE (одна для клиента, другая для сервера БД), соответственно все вызовы между сервером и клиентом никак не поддерживаются (то есть не видны в использованиях, переименовании и т.п.). -/+Обычно используются две разные нишевые IDE (одна для клиента, другая для сервера БД), соответственно все вызовы между сервером и клиентом никак не поддерживаются (то есть не видны в использованиях, переименовании и т.п.). + - - +
Эргономичная IDE IDE на базе Intellij IDEA с полным арсеналом разработчика - поиск использований, подсветка кода / ошибок, умное автодополнение, переход к объявлению, структура класса, переименование элементов, дерево использований, брейкпоинты изменения данных, отладчик и множество других возможностей. -/+ -/+ +/-Обычно используются две разные нишевые IDE (одна для клиента, другая для сервера БД), соответственно все вызовы между сервером и клиентом никак не поддерживаются (то есть не видны в использованиях, переименовании и т.п.). +/-Обычно используются две разные нишевые IDE (одна для клиента, другая для сервера БД), соответственно все вызовы между сервером и клиентом никак не поддерживаются (то есть не видны в использованиях, переименовании и т.п.). + -/+ - +
Метапрограммирование Хотите создать свой высокоуровневый оператор или просто не знаете как обобщить логику, но хотите использовать ее повторно? В платформе реализована полная поддержка автоматической генерации кода, причем как со стороны сервера, так и со стороны IDE. - - - - + - - +
Трехзвенная архитектура Платформа построена таким образом, что императивная часть логики системы (все что связано с изменением данных) выполняется на серверах приложений, а декларативная (все что связано с вычислением данных) - на серверах БД. Такое разделение упрощает масштабирование разрабатываемой системы, а также в силу разного характера нагрузки на эти сервера повышает ее отказоустойчивость (к примеру, использование swap на сервере приложений гораздо опасней, чем его же использование на сервере БД). + + -/+Технически либо веб-клиент, либо сервер БД выполняет функцию третьего звена (сервера приложений). -/+Технически либо веб-клиент, либо сервер БД выполняет функцию третьего звена (сервера приложений). + - - +
Кластеризация Сервера приложений не имеют никаких разделяемых данных, поэтому их количество при необходимости можно легко наращивать. Кроме того, платформа умеет асинхронно переносить пользовательские данные с одного сервера БД на другой, что, в свою очередь, позволяет динамически распределять нагрузку между серверами БД (к примеру, если данные записываются в базу и нужен ACID, выполняя обработку на мастерах, а в остальных случаях - на наименее нагруженных слейвах). +/-Помимо СУБД, bottleneck'ом и потенциальной точкой отказа является менеджер блокировок, что усложняет кластеризацию. +/-Помимо СУБД, bottleneck'ом и потенциальной точкой отказа является менеджер блокировок, что усложняет кластеризацию. + -/+ + - - +
Расширения Техника расширений позволяет разработчику расширять в одном модуле функционал другого модуля (например, изменять формы или классы созданные в другом модуле). Использование этого механизма позволяет значительно повысить модульность создаваемых решений. - -/+Расширяются только процедуры и формы, плюс сам механизм ориентирован на кастомизацию, а не модульность (то есть в основе механизма решение и его одно расширение, а не граф модулей). - - - - - +
Асинхронность Платформа пытается по возможности выполнять все операции асинхронно (то есть возвращать управление пользователю не дожидаясь завершения операции). К примеру, к таким операциям относится большинство операций ввода и обработок локальных событий. - - - - - - + +
Полиморфизм и агрегации В платформе поддерживаются механизмы наследования (в том числе множественного) и полиморфизма (опять-таки, в том числе множественного). Если механизма наследования по каким либо причинам недостаточно, в платформе также существует механизм агрегаций, который вместе с наследованием позволяет реализовать практически любую полиморфную логику. -/+Есть одиночное наследование таблиц (классов объектов), и одиночный полиморфизм. - -/+Есть одиночное наследование таблиц (классов объектов), и одиночный полиморфизм. -/+Есть одиночное наследование таблиц (классов объектов), и одиночный полиморфизм. -/+Есть одиночное наследование таблиц (классов объектов), и одиночный полиморфизм. - - +
WYSIWYG В абсолютном большинстве случаев пользователь из коробки получает возможность редактировать любые данные, которые он видит, делать это сразу для всех видимых объектов (групповая корректировка), выполнять copy-paste (в том числе, к примеру, из Excel), объединять / отменять / сохранять сделанные изменения и другие WYSIWYG возможности. - - - - - - + +
Интернационализация Внутри любого строкового литерала (например заголовка элементов или строковой константы) платформа позволяет использовать идентификаторы (в фигурных скобках), для которых, в свою очередь, можно задавать разные тексты для разных языков. Соответственно, в момент обращения к этому литералу, платформа автоматически локализует его в зависимости от языковых настроек пользователя, действия которого приводят к этом обращению. + + + - + - - +
Изменения задним числом Платформа позволяет пользователю изменять любые введенные ранее данные (например, если была ошибка при вводе), при этом платформа обновит только те данные которые нужно - без тысяч смежных сторнирующих операций, долгого перепроведения и глобальных блокировок БД. Помимо этого, платформа позволяет редактировать одни и те же данные (например один и тот же документ) нескольким пользователям одновременно, что может быть критично, если этих данных много, или их нужно вводить очень быстро. - -/+Требует перепроведения всего документа, что достаточно неэффективно и может нарушать множество контрактов / ограничений, поэтому в последних решениях практически не используется (реализуется вручную). Также нет, к примеру, одновременного ввода документов. - - - - + +
Развитые средства администрирования Платформа предоставляет целый набор инструментов администрирования уже работающей системы : интерпретатор - выполняет код на языке lsFusion, монитор процессов - получает информацию о текущих процессах с различной информацией о них (например, время начала вызова, стек, пользователь и т.п.), планировщик - выполняет действия в заданные моменты времени (в том числе периодически), профайлер - замеряет производительность всех выполняемых действий для всех / заданных пользователей (строит граф вызовов, разделение времени между сервером приложений и сервером БД и т.п.), чат - для оповещения / общения с пользователями внутри системы, а также многочисленные журналы и логи (подключений, ошибок и т.п.). + + + -/+ - - - +
Продвинутые интерактивные интерфейсы При интерактивном взаимодействии с пользователем платформа позволяет организовывать отображение любых данных не только в виде одиночных объектов и списков, но и в виде деревьев, как плоских ("вложенных" друг в друга списков), так и рекурсивных (например, классификаторов). Кроме того, если информации слишком много, платформа позволяет объединять различные блоки формы в папки (вкладки). При этом, если данные не видны пользователю, они не читаются / вычисляются (так, к примеру, любые списки являются по умолчанию динамическими, то есть читается только ограниченное число объектов, а остальные дочитываются по мере изменения текущего объекта в таблице). -/+Деревья только рекурсивные и только для первичных (не вычисляемых) явно задаваемых иерархий. Динамические списки реализуются вручную, написанием специальных запросов. -/+Деревья только рекурсивные и только для первичных (не вычисляемых) явно задаваемых иерархий. Динамические списки реализуются вручную, написанием специальных запросов. -/+Деревья только рекурсивные и только для первичных (не вычисляемых) явно задаваемых иерархий. Динамические списки реализуются вручную, написанием специальных запросов. - - - +/- +
Политика безопасности Гибкая политика безопасности позволяет определять ограничения доступа к данным как на уровне форм, так и на уровне конкретных действий / показателей. При этом пользователь не только не увидит эти данные, но и даже не узнает об их существовании. + + + + + - - +
Открытые исходники Открытые исходники платформы и IDE позволяют разработчику самостоятельно изучать поведение платформы изнутри, создавать pull request'ы, свои сборки, а также лицензировать разрабатываемые решения для использования в случае жестких требований к безопасности. - - - + + + - +
Настройка системы пользователем Пользователь может настраивать любые формы, например добавлять пользовательские отборы и сортировки, добавлять / удалять колонки, изменять их порядок. Также, на любой форме, пользователь может осуществлять базовую аналитику - группировать данные, которые он видит, вычислять суммы / максимумы и другие агрегированные показатели. Помимо настроек пользовательского интерфейса, пользователь также может самостоятельно добавлять логирование, требование заполненности, уведомление об изменениях любых (в том числе вычисляемых) данных. +/-Поддерживают только базовые настройки пользовательского интерфейса (дизайн, отборы, упорядочивания). +/-Поддерживают только базовые настройки пользовательского интерфейса (дизайн, отборы, упорядочивания). - - - - +/-Поддерживают только базовые настройки пользовательского интерфейса (дизайн, отборы, упорядочивания). +
Свободная лицензия Платформа выпускается под лицензией LGPL v3, позволяющей свободно использовать, распространять, а также модифицировать платформу под свои нужды. - - - + + + - +
+Да
+/-С ограничениями
-/+В частных случаях
-Нет
NFR ERP RDBMS + UI ORM + UI RAD Electronic tables lsFusion
Примеры SAP, MS Dynamics AX, 1C >= 8.2 Oracle, MS SQL, Postgres + UI (Java, .Net, Delphi) Java Spring, Odoo, .NET MS Access, Foxpro, Delphi, 1C <= 8.1 Excel, Google Docs lsFusion
Основные области применения Многофункциональные низконагруженные системы с структурированными данными Многофункциональные высоконагруженные системы с структурированными данными Малофункциональные очень высоконагруженные системы Малофункциональные низконагруженные системы с структурированными данными Малофункциональные низконагруженные системы с неструктурированными данными Любые (кроме очень высоконагруженных) системы с структурированными данными
Основные отрасли применения Бизнес-приложения (производство, оптовая торговля) Бизнес-приложения (банки, розничная торговля) Веб-приложения (сайты, сервисы, порталы) Бизнес-приложения Любые отрасли Любые отрасли
Скорость разработки 4 3 2 4 3 10
Простота разработки 4 3 2 4 3 10
Модульность 3 3 5 3 1 10
Гибкость 4 7 10 5 3 7
Портируемость 4 3 9 3 3 10
Поддерживаемость 8 6 6 3 2 10
Открытость 4 7 10 4 4 10
Удобство использования 6 5 3 5 7 10
Производительность 3 9 3 3 3 10
Целостность 4 7 4 4 2 10
Масштабируемость 4 6 10 3 2 8
Безопасность 8 8 6 3 2 10
Интернационализация 10 6 10 4 4 10
Стоимость 4 6 10 8 8 10
NFR ERP RDBMS + UI ORM + UI RAD Electronic tables lsFusion
Примеры SAP, MS Dynamics AX, 1C >= 8.2 Oracle, MS SQL, Postgres + UI (Java, .Net, Delphi) Java Spring, Odoo, .NET MS Access, Foxpro, Delphi, 1C <= 8.1 Excel, Google docs lsFusion
Разработчики 4 3 2 4 2 10
Администраторы 5 4 4 4 2 10
Пользователи 5 3 3 3 5 10
Бизнес 4 3 5 4 5 10