Подтвердить что ты не робот

Зачем использовать Oracle Application Express для веб-приложения?

Я считаю, что мы перейдем к Oracle Apex для будущего развития. Я читал об Oracle Apex на wikipedia, и он про и con. Мне кажется, что он перевешивает профессионала, но, возможно, я ошибаюсь. Я понимаю, что Oracle Apex для DBA с небольшими знаниями или без программирования для настройки веб-приложения быстро сортируется, как MS Access, для любого программиста.

Если у вас есть опыт работы с Oracle Apex, можете ли вы поделиться своей мыслью? Из записи в Википедии, похоже, вам вообще не нужен какой-либо язык программирования, кроме PL/SQL?

edit: Является ли Oracle Apex масштабируемым? Может ли он обрабатывать трафик, как размер Facebook?

edit: после почти двух лет работы над Oracle Apex 3.2. Я могу смело сказать, что я ненавижу его, и я не понимаю, почему кто-то хотел бы создать веб-приложение/страницу в браузере, pl/sql и не использовать контроль над версиями.

Спасибо.

Джек

4b9b3361

Ответ 1

Обратите внимание, что мой опыт связан с APEX 2.x-3.0.

Я использовал Apex для нескольких внутренних приложений за 12-месячный период, но в конечном итоге сбрасывал его для ASP.NET.

Некоторые евангелисты из Oracle утверждают, что способны создавать высокодинамичный контент наравне с более основными инфраструктурами, такими как ASP.NET/J2EE. Технически это правда, но тогда технически это также верно, что вы могли бы пересечь атлантическое в каноэ одного человека. Если у вас возникло желание бросить себя в проект APEX даже с умеренной степенью сложности, я предлагаю вам ознакомиться с образцом APEX простого дискуссионного форума. Сравните это с образцом дискуссионного форума ASP.NET MVC или реализацией RoR.

Сказав, что:

Хороший

  • Невероятно легко создать респектабельное веб-приложение с базовым вводом данных CRUD, простой отчет и заполнить его данными. Если вы являетесь ИТ-специалистом, которому было поручено консолидировать фирменный беспорядок Excel/Access dbs в центральной среде DB/web, вам следует взглянуть на APEX, который очень хорошо подходит для этой задачи. Если вы ожидаете, что объем увеличится до некоторой степени средней сложности, я бы перешел прямо к более гибкой структуре.

  • Если вы являетесь гуру DBA/PLSQL, но не имеете опыта работы с традиционной веб-разработкой, вы будете хорошо подготовлены к тому, чтобы раскрывать существующую бизнес-логику в веб-приложении, не набирая HTML/CSS/JavaScript, если вы не хотите к.

  • Форум поддержки APEX содержит массу информации и хорошо укомплектован разработчиками APEX.

Плохой

Мой опыт работы с Apex начал спускаться, когда приложения переходили за пределы ввода данных CRUD и требовали более динамичного поведения и поведения, обусловленного событиями.

  • Веб-интерфейс GUI не крут. Отладка болезненна.

  • Контроль версий? Кому нужен контроль версий?

  • Когда вам (неизбежно) нужно что-либо делать за пределами ограниченного объема фреймворка, вам придется заразиться руками с помощью PL/SQL. Написание бизнес-логики в отношении базы данных прекрасно, но создание HTML из процедур PL/SQL в 2007 году показало себя неудобно архаичным.

  • Учитывая большое количество скрытых мест, вы можете скрыть логику страницы и перенаправления, поток программ трудно визуализировать и естественно не способствует модульному, отделимому и многоразовому коду. Разработчики ООП не будут впечатлены. Возможно иметь хорошо структурированные поддерживаемые приложения с APEX, но это сложнее, чем должно быть. Это миры от MVC.

  • Недопустимое количество ошибок в версиях, которые я использовал. Я надеюсь, что это улучшилось с недавними версиями, но парадигма интеграции IDE в платформу APEX сама по себе вызвала некоторые из <сильных > самых темных, душевных отладочных сеансов моей жизни. В качестве примера я пытался воспроизвести прерывистую ошибку, которая заставила бы пользователя потерять свои данные сеанса. Используя всплывающее сообщение о сеансе, я увидел, что иногда данные сеанса будут меняться, когда он не должен иметь. Я потратил 2 дня, пытаясь найти ошибку в своем коде без везения. Вдруг бредовые, я случайно заметил, что могу воспроизвести ошибочные данные сеанса в окне отладки, но само приложение не попадет в состояние ошибки. Мое сердце погрузилось, когда я понял, что может произойти. Позднее Oracle подтвердила, что я обнаружил ошибку в APEX, которая заставила окно информации о сеансе периодически показывать мне данные из предыдущего сеанса. Я потратил 2 дня на отладку связанной с сеансом ошибки с ошибкой окна отладки. Это было последнее приложение Apex, которое я построил.

  • PL/SQL не является и никогда не станет Next Big Thing в веб-разработке. После работы с APEX я понял, что это не сделает меня лучшим веб-разработчиком. Освоение APEX действительно связано с PL/SQL. Thats отлично, если вы планируете сосредоточиться на своей карьере по технологиям Oracle, просто имейте в виду, что APEX настолько тангенциальен для направления основных веб-технологий, что переносимый набор навыков, которые вы можете использовать APEX для других веб-фреймворков, минимален.

Если вы рассматриваете APEX, чтобы обеспечить простой ввод данных в сети и отчетность, стоит посмотреть. Если вы ищете альтернативу .NET/JAVA/PHP для динамического веб-контента и богатого взаимодействия с пользовательским интерфейсом, я бы посоветовал вам искать в другом месте.

Ответ 2

Я читаю эту страницу с большим интересом. Наша команда разработчиков использует Apex уже около 2 лет, и я хотел бы обобщить наш опыт.

Для создания базовых приложений CRUD Apex действительно отличная. На самом деле я рекомендую вам попробовать сами. Мы столкнулись с некоторыми первоначальными незначительными трудностями, настроенными на это, но они, похоже, были сглажены в выпуске 3.2.

Хороший

  • Отлично подходит для простых приложений. Если приложение увеличится по сложности, рассмотрите альтернативное решение.
  • Встроенные шаблоны означают, что ваше приложение выглядит довольно профессиональным (хотя некоторые из них обсудят это).
  • Хороший форум поддержки и сообщество, с большим количеством нетерпеливых людей, которые помогут вам.
  • Некоторые превосходные встроенные элементы управления. Любят графики и отчеты (но см. Ниже).

Плохой

  • Отладчик ужасен. Если вы использовали Visual Studio (и даже древние версии Microsoft Access), вы будете съеживаться в отладчике. Отсутствие точек останова, отладочные сообщения, извергающиеся на экран в большом списке, с необходимостью вручную печатать отладочные сообщения на экране. Какой ужас. Причина, по которой многие, многие часы потеряли поддержку.

  • Как только ваше приложение станет сложным или потребует какой-либо богатой функциональности, вам придется прибегать к хакам Javascript и HTML/CSS, что делает отладку и поддержку еще более сложными (хотя вы можете использовать такие инструменты, как Firebug или Visual Studio чтобы помочь с этим).

  • Мы столкнулись с необъяснимыми ошибками состояния сеанса, а таблицы стилей "отделились" от приложения без объяснения причин, чтобы назвать пару проблем.

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

  • Отчеты выглядят неплохо, но не очень хорошо, если вы не можете распечатать их или экспортировать в PDF. Конечно, вы можете использовать для сервера отчетов, в конце мы использовали другое решение.

В целом

Я бы сказал, конечно, использовать Apex для простых приложений CRUD. Для чего-либо более чем мягкой сложности перейдите на .Net или Java. Я бы не стал замечать статью Wiki об Apex, поскольку она очень искажена. Обратите внимание, что "трудно отлаживать" (по моему мнению, самый большой провал) был удален из статьи.

Что-то, о чем следует опасаться, - это смехотворное утверждение о том, что вы можете быстро преобразовать базы данных Access прямо в Apex. Да, он будет работать, если вы получите доступ к БД очень, очень упрощенно. Что-нибудь умеренно сложное, забудьте об этом, как мы нашли.

Мы определенно не будем использовать его для приложений, ориентированных на Интернет, только внутренних. Есть слишком много трудностей, когда вы делаете то, что считаете само собой разумеющимся, например,.Net. Я знаю, что есть такие сайты, как AskTom, но они не совсем сложны. Мы увидим на нем следующий Facebook? Я думаю, что нет - хотя я уверен, что кто-то, кто читает это, будет иметь трещину.

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

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

Ответ 3

Я участвую в проекте огромный, чтобы перенести приложение Oracle Forms 5000 на APEX. Это экстремальное использование APEX, но он работает отлично. Весьма миф о том, что APEX подходит только для небольших внутренних приложений, созданных администраторами баз данных, стажерами или конечными пользователями: он, безусловно, подходит для тех, кто (и более подходит, чем большинство других инструментов), но может также можно использовать для создания чрезвычайно сложных приложений.

Чтобы создать сложное приложение (а не стандартную версию APEX), вам понадобится кто-то из команды с навыками Javascript и кто-то с навыками CSS. Но большинству разработчиков просто потребуется PL/SQL изначально.

Является ли он масштабируемым? Да: возможно, более масштабируемый, чем большинство других решений! APEX добавляет очень немного накладных расходов на сервер базы данных, и требуется только самый минимальный сервер приложений. "Размер Facebook"? Я не знаю точно, но я не понимаю, почему нет, предполагая, что у вас есть база данных Oracle на машине, достаточно мощная и мощная, чтобы обрабатывать данные и объемы транзакций размером в Facebook. Как и любой проект Oracle, масштабируемость затрудняется в основном плохими конструкциями баз данных и плохо написанным SQL, а не инструментом. Не так много людей когда-либо создавали системы "размера Facebook": вы?

Ответ 4

APEX - это структура, которая использует базу данных и PL/SQL для создания веб-страниц. Если вы можете понять, что должен сделать вывод в браузере, вы можете создать его в APEX. Если вы обнаружите какую-либо часть блокировки структуры, вы можете писать PL/SQL-процедуры и напрямую размещать их на веб-сервере, но при этом использовать преимущества безопасности, ведения журнала, состояния сеанса и т.д., Которые система APEX вам подходит.

Вы должны знать PL/SQL, SQL, HTML, JavaScript и CSS. Конечно, интерфейс выглядит как большое приложение ввода данных, но вводимые вами данные в основном будут фрагментами кода на каждом из этих языков.

Он масштабируется, как и база данных. Он обычно использует Apache как веб-сервер, но используется только для обслуживания статических файлов и передачи запросов обратно в базу данных, где веб-страницы создаются кодом PL/SQL в схеме APEX. Вы можете использовать AJAX для минимизации трафика, идущего вверх и вниз по трубе. Вы можете настроить кеширование для определенных элементов, списков, областей страниц, страниц и т.д.

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

Из VB.Net вы будете пропускать пошаговую отладку и перетаскивание. Вы никогда не пропустите тот факт, что часть жизненного цикла страницы будет выполнять привязку и reset значения, которые вы привязали к объекту в другой части страницы.

Удачи.

Грег

Ответ 5

Я - администратор базы данных, и мне никогда не приходилось программировать с APEX или недавно что-нибудь еще (кроме некоторых сценариев bash и настраиваемых сценариев SQL для целей администрирования), потому что моя работа далека от разработки приложений (кроме боли в заднице разработчиков). Конечно, мой опыт - разработчик, и я уверен, что APEX - это будущее для строго ориентированных на Oracle программ, ориентированных на данные.

Теперь ключевое слово здесь является ориентированным на данные, поскольку я не согласен со многими другими администраторами баз данных, что все приложения ориентированы на данные (вы знаете, какие администраторы баз данных, которые все еще считают ODBC, поддерживают ORACLE подключение к базе данных). Конечно, все приложения связаны с данными, но все ли они ориентированы на данные? Я сомневаюсь, так как я сомневаюсь, что APEX будет когда-либо использоваться для обработки изображений или приложений для мобильных игр. Тем не менее, несмотря на все шумихи с RIA и Web 2.0, факт, что большинство компаний вокруг нас жаждут этих простых старых приложений, ориентированных на данные, и Oracle - лучшая база данных, и я могу заверить вас, что Oracle и APEX могут обрабатывать гораздо больше, чем масштабируемость Facebook конечно, вы поместили ту же сумму денег, что и ребята из Facebook в базовой инфраструктуре.

Кстати, я также ненавижу дизайн Oracle тем APEX (ужасный непрофессиональный интерфейс, просто представляю его как основной пользовательский интерфейс для бизнеса в банке или авиакомпании), ограниченные возможности (хотя это, похоже, скоро изменится), многие другие (профессиональная отчетность в формате PDF без оплаты лицензии Enterprise Database для издателя BI), но в основном маркетинг APEX в качестве замены Access или Excel, потому что он плохо производит впечатление на детей, и я могу заверить вас, мой друг, я никогда не буду разрешить детям касаться моих баз данных:)

Понимаете, у Oracle есть драгоценный камень под названием PL/SQL, который был усовершенствован на протяжении многих лет, чтобы обрабатывать данные гораздо более интуитивно, чем любой другой язык. Теперь, когда жемчужина увядает с медленной смертью Форм/Отчетов, и я уверен, что ни один новый выпускник никогда не будет учиться этому строго для хранимых процедур базы данных (просто посмотрите на бушующую войну между разработчиками Java и .Net, и вы понимаете, что как только вы касаетесь фигурных скобок {} все остальное становится ересью). Увы, для тысяч и тысяч отличных разработчиков PL/SQL APEX остается единственным святилищем, где они могут оставаться продуктивными и разрабатывать отличные приложения, ориентированные на данные, и без APEX PL/SQL, безусловно, станет следующим COBOL. Именно поэтому сообщество PL/SQL привлечет Oracle для преобразования APEX в платформу класса A, намного более мощной, чем то, что мы видим сегодня. Либо это, либо попрощайся до PL/SQL и присоедините фигурные скобки к фронту (кстати, никогда не бывает плохой идеей, по крайней мере, попробовать разные технологии, когда вы являетесь разработчиком, по крайней мере, вы поняли, почему это не обязательно более зеленое на другая сторона).

Ответ 6

Я не уверен, почему вы не считаете PL/SQL языком программирования...

APEX идеально подходит для внутренних приложений, где вам нужен легкий пользовательский интерфейс поверх ваших данных. Вы можете построить это довольно легко без необходимости писать код.

Я также считаю APEX очень хорошим для разработки небольших приложений, ориентированных на клиента. Я бы не хотел создавать гигантское приложение, в котором будут работать сотни разработчиков, использующих APEX. Но если у вас есть случай, когда 3 или 4 разработчики строят небольшой сайт, APEX, вероятно, будет так же хорош, как Java/PHP/ASP.Net/независимо от того, что в равной степени квалифицированные разработчики. Например, если у ваших разработчиков есть много опыта ASP.Net, у них будет кривая обучения для написания приложений APEX. У вас был бы, по крайней мере, такой же уровень сложности, хотя, если бы у вас была группа разработчиков PL/SQL, попробуйте узнать, как создавать сайты ASP.Net.

Ответ 7

Сайт поддержки Oracle Metalink был написан в Apex, поэтому он определенно может масштабироваться. Тем не менее, они переносятся на новый сайт поддержки Flash. Я понимаю, что они приобрели эту платформу за счет приобретения другой компании, а не строят ее в ответ на любые ограничения Apex.

Если вы хотите "супер секси" с любым веб-приложением, вам, вероятно, нужно будет перейти на Flash/Silverlight/Air. При этом любой сайт на основе HTML, включая Apex one, может быть скомпонован Javascript. Библиотека JQuery будет включена со следующей основной версией Apex (4.0), хотя теперь вы можете включить ее (или любую другую библиотеку).

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

Пока вы заблокированы в базе данных Oracle, я не получаю в этой статье "блокировку" платформы. Oracle доступен в Windows, Linux и AIX (среди прочих). Это намного меньше, чем ASP/SQL Server.

Ответ 8

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

Графический интерфейс обрабатывается шаблонами страниц Apex (HTML), CSS и небольшим количеством Javascript для улучшения пользовательского интерфейса. Вся бизнес-логика размещается в пакетах PL/SQL. Это ключ к упрощению вашего приложения и повторному использованию бизнес-логики в других приложениях Apex и других клиентских инструментах, таких как С# WinForms, Delphi, Java-приложения и т.д.

Что касается производительности, то механизм Apex добавляет небольшие накладные расходы, а время ответа и масштабируемость вашего приложения во многом зависят от качества ваших SQL-запросов (и модели данных). Подумайте об этом так: с Apex единственное, что существует между вашим пользователем и базой данных, - это тонкий слой PL/SQL. Разумеется, это должно быть быстрее, чем типичное .NET или Java-приложение, которое имеет семнадцать уровней сложности (как правило, включая множество веб-сервисов и слоев реляционного отображения объектов) между графическим интерфейсом и базой данных.

Ответ 9

Не вводите логику buisiness в Apex. Используйте его только для презентации.

Если вы поместите код в приложение, вы не сможете его поддерживать, и вы получите RSI от всего этого. Я всегда создаю оболочный слой, и в мире оракулов следуйте совету Tom Kytes - поместите деловую логику как можно ближе к данным. Это также означает, что вы можете использовать PL/SQL-модули другими системами и т.д. - и самое главное - реальное мясо вашего приложения будет в текстовых файлах, которые можно манипулировать с помощью вашего любимого текстового редактора /IDE.

  • Создайте представление со всеми данными, которые будут извлекаться для каждого экрана.
  • Создайте единый пакет-оболочку для всех операций CRUD. (Thats is Create, Read, Update и Delete я предполагаю)

Короче:

НЕ ПОДКЛЮЧАЙТЕ ЛОГИКУ APP APP.

Это моя рекомендация.,.

Ответ 10

В моем проекте мы используем Oracle APEX для внутренних представлений нашей системы. Он отлично работает для этой цели.

Там не требуется программирование. PL/SQL и даже SQL являются необязательными. В результате наш администратор базы данных и оператор могут сформировать представление по своему вкусу.

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

Я бы не хотел, чтобы на APEX был создан клиентский сайт.


В вопросе о масштабируемости одна приятная вещь о APEX заключается в том, что она построена на Oracle. Сосредоточьтесь на написании хорошего SQL и правильном проектировании таблиц, и все должно масштабироваться просто отлично. Я бы больше беспокоился о том, что проблема с достаточным количеством пользователей станет проблемой.

Ответ 11

Наслаждался очень хорошим чтением нити сверху донизу, так как это казалось горячим дебатом. Чтобы напомнить о начале потока, это началось как "Я считаю, что мы переходим к Oracle Apex для будущей разработки...". Джек-программист был обеспокоен решением своего руководства и подумал о поиске встречных фактов для Oracle Apex что в конечном итоге закончилось тем, что мыло грязное белье (из всех веб-фреймворков) публично. Несмотря на то, что жертвой был Oracle Apex, то же самое может случиться с .net или j2ee, если дебаты были между .net и j2ee гуру. Я считаю, что все рамки имеют свои плюсы и минусы. Вот почему на самом деле у нас так много. Это пустая трата времени на обсуждение того, что более важно для жизни (секс, еда или вода?). Естественно, мы выбираем наиболее подходящий элемент, когда это необходимо.

  • Приложения Oracle APEX для сред, в которых у вас много баз данных Oracle, и когда у вас действительно есть энтузиасты Pl/SQL. Могу ли я действительно создавать богатые, сложные веб-приложения Data Centric очень легко (Apex 4.0), но отладка и контроль версий по-прежнему беспорядок, и вам также придется придерживаться базы данных Oracle (да, вы можете иметь обходные пути, но не надежные).

Ответ 12

Если вы хотите увидеть внешний веб-сайт, сделанный в APEX, я предлагаю посмотреть сайт Группа инструментов Oracle Tools, или Спросить Tom. Оба являются большими, часто используемыми сайтами с большой настройкой.

Ваше впечатление от статьи в Википедии верное. Единственное знание программирования, которое вам нужно, это PL/SQL. Если на большинстве ваших сайтов будут простые отчеты, вам даже не нужно будет писать SQL-запросы, а интерфейс мастера создаст для вас запрос и вывод. Если вы хотите работать на клиентской стороне, вам нужно знать CSS и Javascript. PL/SQL предназначен только для более сложной проверки данных.

Ответ 13

Я не согласен. Он не только подходит для разработчиков с несколькими навыками разработки или администраторами баз данных.

На самом деле мы производим высоко настраиваемые приложения с использованием собственных CSS-шаблонов, много динамических действий и взаимодействия (с использованием jQuery и нескольких фреймворков), тонкой настройки безопасности, наших собственных плагинов apex и сложных процессов PL/SQL.

Конечно, я использую apex > 4.0.

Таким образом, вы можете создавать сложные приложения (у нас есть до 100 различных процессов/валидации и динамические действия на страницы), если это необходимо. И это может потребовать сильных навыков программирования для правильного кодирования в javascript и PL/SQL (OOP) или Java хранимых процедур + хорошее знание SQL для определения opimized запросов до 500 строк кода с использованием рекурсивного SQL и некоторых смешных функций.