2010-11-06 38 views
1

Il ne s'agit pas d'écrire une application Web par rapport à une application de bureau. Il s'agit de permettre à une application sur mesure de s'exécuter dans un navigateur en utilisant un plugin personnalisé, en utilisant efficacement le navigateur comme votre fenêtre de rendu. QuakeLive fait ceci - c'est une application C++ avec un peu plus de code à exécuter dans un navigateur. Les moteurs de jeu Unity3D et Torque offrent également des options de déploiement pour faire la même chose.Quels sont les avantages et les inconvénients de l'écriture d'un plugin pour permettre à votre application C++ de fonctionner avec un navigateur Web?

Personnellement, je doute un peu de l'utilité d'un tel système. Mais j'apprécierais d'autres opinions sur les raisons pour lesquelles cela pourrait être une bonne idée ou non.

Je ne sais pas s'il y a un terme approprié pour cela, s'il vous plaît modifier mes tags s'il y a!

+2

Bonne question. Un autre plugin de la même catégorie est le [Native Client] de Google (http://code.google.com/p/nativeclient-sdk/), qui est destiné à exécuter du code x86 via un navigateur. –

+0

Je pense que c'est un peu vague ... Pouvez-vous nous dire quelle application vous avez en tête? –

+0

@jdv: quelque chose impliquant un rendu en temps réel. Mais c'est une question générale. Si l'application semble la même dans le bureau/navigateur, pourquoi faire une version du navigateur. –

Répondre

1

Cela dépend de l'application. Mon arrière-plan est en imagerie médicale, mais ce que je dois dire que s'appliquerait aux clients de nombreux systèmes d'information:

Plus:

  • il devient plus facile de construire des intégrations REST entre les applications. Ce type d'intégrations peut être utilisé par les administrateurs pour construire des portails intégrés. (Ainsi, les identifiants de cas d'une application peuvent être utilisés pour en lancer un autre avec le bon contexte, etc.).
  • idéalement, les utilisateurs peuvent installer votre application eux-mêmes, à la demande (dépend du contexte si cela est vraiment possible)
  • Le déploiement de nouvelles versions devient plus facile. Habituellement, la technologie d'hébergement a intégré le déploiement. Dans les environnements de serveurs clients, cela peut économiser beaucoup de travail pour le département informatique.
  • Vous pouvez avoir une URL de démarrage unique pour les PC et les clients Web légers (comme les téléphones). Cela permet aux utilisateurs de trouver facilement votre application.
  • Vous pouvez centraliser la configuration pour les clients. Pour les clients autonomes, vous pouvez bien sûr centraliser la configuration, mais si votre application est basée sur le Web, vous savez toujours qu'il y a un serveur, vous pouvez donc toujours l'utiliser.
  • Vous pouvez décharger du travail qui est inefficace à effectuer localement sur le serveur. (Réduire le nombre d'allers-retours entre client/serveur).

Moins:

  • Chaque fournisseur de navigateur a son propre modèle d'emballage le code natif. Il n'y en a pas beaucoup, mais c'est vraiment un travail supplémentaire.
  • Votre application doit "être agréable" avec l'application d'hébergement. Comme lorsque l'utilisateur ferme la fenêtre du navigateur, le navigateur peut avoir prescrit quand et comment vous pouvez demander à l'utilisateur d'enregistrer.
  • mises à jour pour les navigateurs peuvent casser votre plugin.
  • Les administrateurs système peuvent avoir une installation restreinte de plugins, interdisant aux utilisateurs d'installer votre application à la demande (cela se produit beaucoup pour ActiveX).
  • vos utilisateurs peuvent ne pas aimer ce code supplémentaire est injecté dans le navigateur (il y a beaucoup de logiciels malveillants autour de qui le fait)
  • vous n'avez pas la possibilité de mettre à jour les conditions préalables avant l'installation
  • Je ne croire vraiment que c'est juste envelopper le code existant dans un cadre de plugin.
  • Votre application ne fonctionnera plus lorsque le serveur est hors service ...
+0

nice write-up. Vraisemblablement, vous pouvez faire des trucs JS standard pour empêcher la fermeture d'une tabulation sans confirmation, en l'associant à votre code natif? Aussi, est-ce que ce genre de plugins a accès au stockage local, par exemple pour écrire des logs, etc? –

+0

J'ai regardé votre site - est-ce que vous soutenez le déploiement de ces produits basés sur .net par navigateur et est-ce que cela est très utile? btw, êtes-vous le propriétaire de cette entreprise - je voulais demander plus à ce sujet? –

+0

Non, mais je suis l'architecte. 3mensio a des solutions web mais nous ne faisons pas de client natif. L'histoire était basée sur l'expérience d'un travail précédent. Là, j'ai travaillé principalement avec ActiveX, mais la plupart des problèmes concernent le web en général. Vous pouvez m'envoyer un mail pour plus de questions: jan dot devaan à 3mensio dot com. –