2010-05-11 4 views
2

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?

+0

go Qt! (C++ au cœur) – Javier

+0

Cela ajoute l'exigence d'avoir les qt redists. Il n'y a aucun avantage à qt sur Java. Donc, mauvais point – Henri

+0

Cessez de vous inquiéter et apprenez à aimer l'exécution. Et apprenez comment utiliser un programme d'installation. – JasonTrue

Répondre

4

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.

+0

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

0

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.

4

"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.

+0

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

0

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.

+0

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

+0

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/ –

Questions connexes