46 votes

Pourquoi utiliser Oracle Application Express pour une application web ?

Je crois que nous allons passer à Oracle Apex pour les développements futurs. J'ai lu à propos d'Oracle Apex sur Wikipedia et de ses avantages et inconvénients. Il me semble que les inconvénients l'emportent sur les avantages mais peut-être que je me trompe. J'ai l'impression qu'Oracle Apex est destiné aux administrateurs de bases de données avec peu ou pas de connaissance en programmation pour configurer rapidement une application web, un peu comme MS Access pour les non-programmeurs.

Si vous avez de l'expérience avec Oracle Apex, pouvez-vous partager vos impressions? D'après l'article de Wikipedia, il semble que vous n'ayez pas besoin de connaître un langage de programmation mais simplement le PL/SQL?

Oracle Apex est-il évolutif? Peut-il gérer un trafic de la taille de celui de Facebook?

Après avoir travaillé pendant près de deux ans sur Oracle Apex 3.2, je peux affirmer en toute sécurité que je le déteste et je ne vois pas pourquoi quelqu'un voudrait créer une application web/page sur un navigateur, en PL/SQL sans possibilité de contrôle de version.

9voto

Justin Cave Points 114578

Je ne suis pas sûr pourquoi vous ne considérez pas PL/SQL comme un langage de programmation...

APEX est idéal pour les applications internes où vous souhaitez une interface utilisateur légère au-dessus de vos données. Vous pouvez construire cela assez facilement sans avoir à écrire de code.

Je trouve également APEX très adapté pour le développement de petites applications destinées aux clients. Je ne voudrais pas construire une énorme application sur laquelle des centaines de développeurs travailleraient en utilisant APEX. Mais si vous avez un cas où 3 ou 4 développeurs construisent un site assez petit, APEX est susceptible d'être tout aussi bon que Java/PHP/ASP.Net/autre, en supposant que les développeurs aient des compétences équivalentes. Par exemple, si vos développeurs ont beaucoup d'expertise ASP.Net, ils vont avoir une courbe d'apprentissage pour coder des applications APEX. Cependant, vous auriez au moins le même niveau de difficulté si un groupe de développeurs PL/SQL essayait d'apprendre à construire des sites ASP.Net.

8voto

pj. Points 141

Ne mettez pas la logique métier dans Apex. Utilisez-le uniquement pour la présentation.

Si vous mettez le code dans l'application, vous ne pourrez pas le maintenir, et vous aurez des TMS à force de cliquer. Je crée toujours une couche d'enrobage, et dans le monde Oracle, je suis le conseil de Tom Kytes - mettre la logique métier aussi près des données que possible. Cela signifie également que vos modules PL/SQL peuvent être appelés par d'autres systèmes, etc. - et surtout - la véritable substance de votre application se trouvera dans des fichiers texte bruts qui peuvent être manipulés avec votre éditeur de texte / IDE préféré.

  • Créez une vue avec toutes les données à récupérer pour chaque écran.
  • Créez un seul package d'enrobage pour toutes les opérations CRUD. (C'est-à-dire Create, Read, Update et Delete, je présume)

En bref:

NE METTEZ PAS VOTRE LOGIQUE D'APPLICATION DANS APEX.

C'est mon conseil . . . .

7voto

Gary Myers Points 24819

Le site de support de Metalink d'Oracle a été écrit en Apex, donc il peut certainement être mis à l'échelle. Ils migrent maintenant vers un nouveau site de support basé sur Flash. Je comprends qu'ils ont acquis cette plateforme grâce à l'acquisition d'une autre société, plutôt que de la construire en réponse à des limites d'Apex.

Si vous voulez du 'super sexy' avec une application Web, vous devriez probablement utiliser Flash/Silverlight/Air. En dessous de cela, n'importe quel site basé sur HTML, y compris un site Apex, peut être embelli avec Javascript. La bibliothèque JQuery sera incluse dans la prochaine version principale d'Apex (4.0), bien que vous puissiez l'inclure (ou toute autre bibliothèque) maintenant.

Le problème de mise en cache mentionné dans l'article de Wikipedia a été résolu, même si la plupart des installations continueraient à mettre les images et les scripts sur une structure de répertoire classique plutôt que de les servir depuis la base de données.

Alors que vous êtes lié à la base de données Oracle, je ne comprends pas le verrouillage de 'plateforme' mentionné dans l'article. Oracle est disponible sur Windows, Linux et AIX (entre autres). C'est beaucoup moins restrictif que ASP / SQL Server.

7voto

ObiWanKenobi Points 3020

C'est une idée fausse regrettable que Apex ne convient qu'aux non-programmeurs et aux DBA. Nous l'avons utilisé pour construire plusieurs applications Web orientées client, vitales pour l'activité.

L'interface utilisateur est gérée par des modèles de pages Apex (HTML), CSS et un peu de Javascript pour améliorer l'expérience utilisateur. Toute la logique métier est placée dans des packages PL/SQL. Cela est essentiel pour rendre votre application facile à entretenir et pour réutiliser la logique métier dans d'autres applications Apex et à partir d'autres outils clients, comme C# WinForms, Delphi, applications Java, etc.

Quant aux performances, le moteur Apex ajoute peu de surcharge et les temps de réponse ainsi que la scalabilité de votre application dépendent largement de la qualité de vos requêtes SQL (et du modèle de données). Pensez-y de cette façon : Avec Apex, la seule chose entre votre utilisateur et la base de données est une fine couche de PL/SQL. Il est logique que cela soit plus rapide qu'une application .NET ou Java typique qui comporte dix-sept couches de complexité (incluant généralement de nombreux services Web et couches de mappage objet-relationnel) entre l'interface utilisateur et la base de données.

5voto

Jon Ericson Points 9703

Sur mon projet, nous utilisons Oracle APEX pour les vues internes de notre système. Cela fonctionne très bien à cette fin.

Il n'y a pas de programmation requise. PL/SQL et même SQL sont facultatifs. En conséquence, notre DBA et notre opérateur peuvent façonner la vue selon leurs préférences.

En revanche, s'il y a une fonctionnalité dont vous avez besoin et qui n'est pas programmée dans le système, il est très difficile de l'ajouter. Par exemple, nous voulions coder en couleur notre sortie et nous n'avons pas réussi à le faire.

Je ne voudrais pas qu'un site destiné aux clients soit construit sur APEX.


En ce qui concerne la question de la scalabilité, l'un des avantages d'APEX est qu'il est construit sur Oracle. Concentrez-vous sur l'écriture d'un bon SQL et sur la conception appropriée des tables, et les choses devraient bien se passer en termes d'évolutivité. Je serais davantage préoccupé par le fait d'attirer suffisamment d'utilisateurs pour que la scalabilité devienne un problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X