Je suis un développeur ASP.NET, mais maintenant je veux construire un logiciel qui peut être installé sur mon PC. Le logiciel intégré à la plate-forme .NET ne fonctionne que lorsque le .NET Framework est installé et que le logiciel écrit en Java ne fonctionne que si le JDK est installé. Lorsque j'installe des programmes comme Firefox, uTorrent, etc., je n'ai pas besoin de frameworks (.NET, JDK, etc.). Comment écrire un logiciel qui ne dépend pas d'un framework?Comment construire un logiciel qui ne nécessite pas de framework sur la machine de l'utilisateur?
Répondre
Vous devrez utiliser un langage qui ne dépend pas d'un framework ou uniquement des clients cibles sur lesquels votre framework est déjà installé.
Si vous choisissez C ou C++ par exemple, vous distribuerez des binaires à votre client contenant du code machine. Ce code ne dépend pas d'un environnement d'exécution (comme C# ou Java) ou d'un interpréteur (comme Python ou Ruby). C'est ainsi que sont écrites les applications comme Firefox et uTorrent.
Pouvez-vous me référer un exemple ou un bon livre qui pourrait m'aider à en construire un et à lui donner un aspect professionnel? – Flint
Fondamentalement, vous avez toujours une "plate-forme", qui est le système d'exploitation. Traditionnellement, si vous voulez écrire du code qui s'exécutera sur plusieurs systèmes d'exploitation, vous utiliserez un langage assez portable tel que C++ qui produit des exécutables natifs pour un système d'exploitation cible. Cependant, il existe des différences entre les différents systèmes d'exploitation. Il y aura donc des parties du code C++ (ou autre langage portable) qui sont spécifiques à ce système d'exploitation. Vous essayez d'isoler ces parties autant que possible pour minimiser l'effort de port entre les systèmes d'exploitation. Pourtant, cet effort est généralement très important. Vous êtes également limité au dénominateur commun des fonctionnalités disponibles sur tous les systèmes d'exploitation cibles (sauf si vous créez une version personnalisée pour un système d'exploitation donné qui expose ses fonctionnalités spéciales).
Ceci est complexe, long et coûteux. C'est la raison pour laquelle des technologies telles que Java et .NET ont été créées.
"Lorsque j'installe des programmes comme Firefox, uTorrent, etc., je n'ai pas besoin de frameworks."
En fait, vous le faites. Ils ont juste tendance à utiliser les frameworks C++, tels que MFC, dont certains sont déjà installés. Même dans ce cas, il existe des programmes d'installation pour ces frameworks qui sont inclus avec d'autres programmes d'installation d'application (généralement appelés Microsoft Visual C++ 2008 SP1 Redistributable Package ou quelque chose comme ça.) Voir aussi: Visual C++ Deployment). Maintenant, cela dit, ils n'ont pas besoin d'une machine virtuelle (comme une JVM pour Java ou un CLR pour .NET), car C++ compile en langage machine x86/x86-64 pour être exécuté directement par le système opérateur.
Pouvez-vous me référer un exemple ou un bon livre qui pourrait m'aider à en construire un et à lui donner un aspect professionnel? – Flint
Si vous voulez construire un logiciel vraiment indépendant de la plate-forme Vous allez enfin vous retrouver avec une solution comme Java Runtime ou .NET. Ce que vous pouvez faire, Vous pouvez écrire des applications de telle sorte que vous puissiez compiler/exécuter sur la plate-forme la plus connue, et bien sûr vous avez besoin d'un middleware pour traduire les objets de votre application en objets de plate-forme (fonctions, etc.).
J'ai vu des solutions faites en Pascal pour DOS dans une telle couche d'abstraction qui, avec peu d'effort, a été déplacée directement dans Delphi pour Windows sans toucher à la logique de l'application.
Pouvez-vous me référer un exemple ou un bon livre qui pourrait m'aider à en construire un et à lui donner un aspect professionnel? – Flint
Commencez avec des motifs de conception, en particulier Bridge pattern (http://sourcemaking.com/design_patterns/bridge) mais bien sûr vous pouvez trouver plus utile d'entre eux: http://www.dofactory.com/ –
- 1. Quelle est la meilleure façon de construire un logiciel qui ne nécessite pas la dernière glibc?
- 2. Un framework de type NSSound qui fonctionne, mais qui ne nécessite pas de courbe d'apprentissage abrupte
- 3. Problème d'exigence de framework .NET sur la machine client
- 4. Déploiement: Construire sur machine de production ou pas?
- 5. comment construire un logiciel de site de commerce électronique?
- 6. Installer le logiciel sur une machine distante?
- 7. Comment créer un MSI d'installation Windows qui ne nécessite pas d'accès administrateur
- 8. Existe-t-il un panier php qui ne nécessite pas d'enregistrement?
- 9. Comment récupérer des fichiers/documents qui ne se trouvent pas sur la machine du serveur Web
- 10. BlueZ, ne nécessite pas d'authentification
- 11. .NET WinApp ne fonctionnera pas sur une autre machine en fonction de la machine de compilation
- 12. Où puis-je trouver un téléchargeur de fichier flash qui ne nécessite pas de javascript?
- 13. Utilisation de WPF (qui nécessite STAThread) avec une API qui ne peut pas fonctionner avec STAThread
- 14. nécessite 'rubygems' ne fonctionne pas
- 15. Comment construire une application web ajax qui récupère gracieusement si le navigateur ne supporte pas javascript?
- 16. Comment construire un xpath pour sélectionner des éléments qui ne contiennent pas de chaîne
- 17. Essayer de construire la bibliothèque mathématique LEVMAR sur un mac en utilisant le framework Accelerate
- 18. Comment compiler une DLL qui ne nécessite pas de fichier manifeste externe?
- 19. Flex nécessite-t-il un framework PHP?
- 20. L'enregistrement d'un composant qui nécessite un paramètre de constructeur qui est un type de béton qui n'a pas d'interface
- 21. C# .Net exe ne se ferme pas lorsque le PC est redémarré, ce qui empêche la machine de redémarrer
- 22. Un NSString qui nécessite une investigation
- 23. JQUERY ne fonctionnera pas sur la machine locale
- 24. Comment est-ce que je tue une machine virtuelle de VMware qui ne mourra pas?
- 25. Comment puis-je ajouter une commande PayPal à mon site Web qui ne nécessite pas d'expédition?
- 26. Comment copier une base de données mysql sur une machine qui n'est pas connectée en réseau?
- 27. Y at-il une bibliothèque de graphes côté client (javascript) qui ne nécessite pas de serveur?
- 28. Comment construire Framework UI en utilisant Java
- 29. Entity Framework ne fonctionne pas sur IIS?
- 30. Workflow de machine d'état - Event Driven - Nécessite une transition d'état?
go Qt! (C++ au cœur) – Javier
Cela ajoute l'exigence d'avoir les qt redists. Il n'y a aucun avantage à qt sur Java. Donc, mauvais point – Henri
Cessez de vous inquiéter et apprenez à aimer l'exécution. Et apprenez comment utiliser un programme d'installation. – JasonTrue