После небольшого исследования мы выбрали пакет ввода данных Peter Blum для перестройки онлайн-приложений на сайтах TechInsurance.com и BusinessInsuranceNow.com. Проект продолжается уже более года. Но я был очень доволен свитой Питера. И его документация и поддержка действительно не имеют себе равных.
Итак, на проекте - прежде всего, онлайн-приложения на двух сайтах чрезвычайно динамичны. Я имею в виду, что приложение должно обрабатывать десятки различных типов бизнеса и задавать только те вопросы, которые имеют отношение к пользователю. Так что эта задача сложна сама по себе. Но одной проблемой, в частности, является динамический характер каждой страницы в отдельности. Сайт должен динамически отображать и скрывать вопросы на основе ответов на другие вопросы на той же странице. И, конечно же, невидимые вопросы не нужно проверять. Поэтому в старых (или, скажем, текущих) версиях сайта я обрабатывал все это с помощью тщательно написанного JavaScript-кода и серверного кода. Всегда было абсолютно важно, чтобы Javascript следовал тем же правилам, что и серверный код, поэтому требовались только видимые вопросы. Но при работе с приложениями такого масштаба я иногда допускал ошибки, которые показывали бы их уродливое лицо при выполнении сложного набора условий.
Теперь, с пакетом Питера Блюма, я могу фактически использовать MultiFieldStateController и VisibleCondition внутри EnablerContainer, чтобы позаботиться обо всей этой логике. Когда я это сделаю, пакет DES будет обрабатывать как клиентскую, так и серверную части этой функциональности видимости и проверки. А это значит, что мне не нужно писать что-то вроде Javascript. И мне не нужно постоянно проверять, что мой код Javascript работает так же, как код на стороне сервера, потому что я знаю, что DES позаботится об этом за меня. Это лишь небольшая часть общего пакета, но эта функциональность наиболее полезна для меня.