Как появление IEM-систем
сделало ERP устаревшими >

Почему Ultimate / для разработчиков

Ниже речь идет сугубо об отличиях от ERP. 
Общеупотребимые, хотя и важные свойства (как, например, полноценная 3-tier архитектура, compile-time validation, встроенная среда для UNIT-тестов или error tracking/handling) отдельно не упоминаются.

Rich datamodel

Модель данных предлагает описывать объекты реального мира, их свойства и взаимодействия с использованием насыщенной модели данных.
Платформа использует “НАДобъектную” модель представления – что позволяет упростить понимание и вникание в имеющиеся процессы, разработку и тестирование.
В частности, rich datamodel означает, что разрабатывать приложение можно, формулируя его в терминах справочников или документов как единого целого. Справочник товаров — это сразу: и данные в базе, и формы для списка товаров и редактирования отдельной записи, и права доступа к нему и тд.
Сравните с моделью данных ERP: отдельно объекты преобразования данных, отдельно таблицы с данными, отдельно права и их проверка. Вариантов реализации стандартного списка товаров — миллион и надо помнить как реализованы одни и те же задачи в разных местах.
При работе же в насыщенной модели всегда известно, где и каким образом реализован справочник. Безусловно, сохраняется возможность действовать по модели более старших товарищей — если мсье знает толк в извращениях.
 
Подробнее

C# + LINQ

Ultimate Solid написана на последней версии одного из самых современных языков программирования — C# 6.0. Используются его наиболее продвинутые возможности — LINQ и Asynchronous features.
LINQ позволяет формулировать сложные типизированные (корректность проверяется во время компиляции/сохранения) запросы к бизнес-объектам. Язык и его компилятор активно развиваются.
Клиентское приложение использует асинхронные расширения языка C#, как следствие увеличивается удобство работы пользователя.
Платформа облегчает разработку асинхронных приложений, автоматически генерируя асинхронные обертки для вызова методов сервера приложений и уведомляя разработчика о синхронных обращениях.
ERP: процедурный язык с ООП-расширениями.
Подробнее

native Oracle Database

Ultimate Solid изначально спроектирована для работы с Oracle Database и максимального использования самого интеллектуального и производительного функционала этой СУБД — добиваясь в результате максимальной лаконичности, ясности и производительности приложений.
Классические ERP используют СУБД в режиме записной книжки.
НЕ используются даже такие базовые возможности любой современной СУБД, как триггеры или хранимые процедуры.
Более того.
Даже ссылочная целостность проверяется самим приложением, а не СУБД — хотя у последней это получается настолько лучше, насколько одноразовая зажигалка пригоднее для добывания огня, нежели трут и огниво. Естественно, при таком подходе написать код, рушащий ссылочную целостность не просто, а невероятно просто (про производительность системы речь УЖЕ не идет) — что и происходит с завидной регулярностью.
Подробнее

ORM (object relational mapping)

Преобразование реляционных данных в бизнес-объекты системы абсолютно прозрачно для разработчика — просто добавь воды выполните LINQ запрос.
Для каждого объекта платформа самостоятельно генерирует необходимые запросы для создания объекта в базе данных. Система подскажет варианты создания объекта для разных случаев использования — при частом доступе, при необходимости учета изменений и прочего.
ERP же, за редчайшими локальными исключениями, просто умеет возвращать строки из таблицы и сохранять их обратно; даже проверки доступа лежат на прикладном разработчике.
Подробнее

Transaction hell

Ручное управление транзакциями — известная головная боль. Как легко перехватить исключение, записать его в лог и «случайно» зафиксировать транзакцию впоследствии!
Разработчику на Ultimate Solid для этого придется сильно постараться, фактически взломав систему и выполняя запросы на фиксацию транзакций как SQL-запросы.
Управление транзакциями в ERP ручное.
То бишь можно написать программу, которая сохранит объект не целиком. И такие случаи регулярно имеют место быть в реальной практике.
Например. Была функция Foo, которая выполняла некие действия и в конце делала commit.
Потом эту функцию решили использовать из другой функции Bar (чтобы не дублировать функционал). И вот если в Bar после вызова Foo произошло исключение, то часть фактической работы Bar (то, что сделано в Foo) останется в базе, а остальное будет «откачено».
Результат — потеря целостности данных.
Обнаружить источник появления кривых данных — задача, зачастую, невероятной трудоемкости. Они могут явно не обнаруживать себя месяцами, просто существуя в виде «чуть некорректных данных в отчетах» — загадочно плывущих в зависимости от фазы Луны.
Или не чуть.
А после обнаружения — править. Как правило — руками: сотни, тысячи и миллионы документов.
Подробнее

rapid application development/prototyping (RAD/RAP)

Быстрое прототипирование приложений обеспечивается средствами графического моделирования объектов системы, условно — визарда.
Сразу после создания объекта разработчиком, платформа автоматически сгенерирует форму для списка записей объектов (со всеми инструментами выборки данных, подбора колонок, сортировки, кнопками создания, удаления записей и т.д.) и форму редактирования записи (которая, естественно, открывается из списка записей по двойному клику).
И можно сразу приступать к описанию бизнес-логики и далее по этапам.
Разрабатывать сложные экранные формы можно параллельно с наполнением бизнес-логикой — разным разработчикам.
Никакая ERP не предлагает разработчикам готовых форм — все вручную.
Подробнее

version control

Собственная система контроля версий — органическая часть платформы Ultimate Solid. Это позволяет иметь одновременно несколько версий конфигурации, с каждой из которых работает один разработчик, при этом платформа гарантирует отсутствие конфликтов при изменении объектов системы. Разработчикам, имеющим опыт реализации серьезных приложений в составе команды, нет нужды дополнительно пропагандировать такое воистину неоценимое удобство.
Ultimate Solid использует распределенную модель контроля версий — каждый разработчик вносит изменения в своей ветке (аналог рабочей копии или локального репозитория в других системах контроля версий) и, по окончании своей работы, переносит изменения в главную ветку (и периодически «затягивает» сделанные другими разработчиками изменения).
Близкая модель работы реализуется Mercurial, Git и рядом других промышленных систем контроля версий.
Сервер приложений может работать с любой выбранной версией (на любой ветке), вследствие чего конечные пользователи могут получать доступ к функционалу очень малыми порциями и с высокой частотой обновлений.
Таким образом, пресловутый continuous delivery — органическая (и основная) методология разработки для Ultimate Solid.
Подробнее

internationalization support

Ultimate Solid предоставляет инструменты и встроенные средства для интернационализации приложения. Каждый пользователь может видеть данные и пользоваться интерфейсом на своем языке.
В Ultimate Solid автоматически генерируемые формы справочников, документов и отчетов сразу используют переводы названий, разработчику нет нужды вручную возиться с меточными файлами.
Подробнее

printing mess

Если требуется досконально соблюдать мусор, обильно выделяемый б-гомерзкими чиновными скопищами богоспасаемого Отечества, то многотонные макулатурные столпы суть главный видимый результат работы любой организации.
Помимо самого удобного редактора собственно печатных форм (с поддержкой всех современных возможностей типа экспорта в PDF, Excel, HTML и прочие форматы, межсекционных бандов, таблиц, водяных знаков, штрихкодов, включая 2D) Ultimate Solid предоставляет еще и интеллектуальные средства для управления системой печати.
Опытные разработчики неоднократно сталкивались с ошибками в драйверах печати, из-за которых падало приложение.
Прямая (обычными средствами) печать перегружает каналы связи, что может быть критично для VPN-каналов между удаленными офисами.
Использование обычных инструментов так же требует от сисадминов большого объема обезьянской работы по подключению сетевых принтеров для каждого пользователя сети, раздаче и актуализации прав доступа на них etc. Название принтера часто прописывается прямо в коде программы, он должен быть подключен на сервере приложений и, если сервер меняется, то все принтера надо заново создавать на новом сервере.

Имплементированная в Ultimate Solid система печати скрывает эти проблемы,

 

  • предоставляя средства асинхронной печати
  • гарантированную доставку заданий на печать (с сохранением очередности) до принтера
  • восстановление после сбоев драйверов
  • ведение учета напечатанных страниц по пользователям
  • оптимизация трафика
Все это доступно разработчику через один метод Print().
Подробнее

разработка на WinForms & DevExpress

Ultimate Solid позволяет реализовать сколь угодно сложную форму, используя средства .NET WinForms и обширнейшей библиотеки компонент DevExpress (и/или любой другой).
Формы рисуются непосредственно в VisualStudio, с нашей точки зрения — самом удобном средстве разработки.
Подробнее

SOAP/REST support

Платформа поддерживает на уровне сервера приложений интеграцию по протоколам SOAP и REST с сериализацией в XML или JSON.
Разработчику не требуется знать никаких деталей о реализации этих протоколов, достаточно описать в графическом интерфейсе DTO (Data transfer objects) и реализовать на C# функции для приема и возврата соответствующих объектов.
Остальным занимается платформа.
Подробнее

logging, log miner

Ultimate Solid реализует собственный гибкий аппарат логгинга: администратор может настраивать ведение лога вплоть до отдельных полей таблиц. В результате радикально сокращается объем логов.

Last but not least — важнейшее преимущество платформы Ultimate Solid, не имеющее к ней непосредственного отношения — прямая связь разработчиков партнеров с командой разработки платформы.
Как следствие — обычное для рынка время реакции в месяцы (минимум, вплоть до никогда), сокращается до дней, а в случае критичных багов — часов.

А что в итоге?

А в итоге, на базе наработанной многолетней достоверной статистики, производительность труда разработчика на Ultimate Solid в 10 и более раз превышает аналогичный показатель для прикладника ERP.

Как появление IEM-систем сделало ERP устаревшими