2010-01-31 4 views
11

Moi et quelques amis envisagent d'écrire un nouveau projet FOSS, et le débat est divisé entre .NET ou autre chose. Donc, je me demande s'il existe une base d'installation annoncée pour Mono sur les machines Linux? et, s'il existe une base d'installation connue de Mono ou Microsoft .Net sur les machines Windows?.NET/Mono Install Base

Merci.


Install Base - Une mesure du nombre d'unités d'un type particulier de système réellement utilisé.

+0

Que voulez-vous dire par « installer la base »? Nous travaillons sur un projet qui est x-platform destiné à Mono/Windows/Mac. – IAbstract

+0

Que voulez-vous dire par base d'installation? –

+2

@dboarman & @Amit - je crois qu'il cherche les statistiques ici, comme « le flash 97% de tous les ordinateurs » (quelle que soit la stat est) ... donc il sait grand public est déployable. –

Répondre

6

Hanselman gives a stat for .Net Framework Installs. Il le place sur 90% des PC. avec plus de 65% des PC ayant 3.5 SP1. (Ceci a été posté sur Jan 19, 2010)

Je ne suis pas sûr d'où viennent les chiffres, mais c'est la seule figure que j'ai vu depuis un certain temps. Quant à Mono ... je ne suis pas sûr.

+2

Il a dit que la statistique est basée sur les statistiques de mise à jour de Windows. Donc, vraiment, la statistique indique que 90% des ordinateurs connectés à Internet qui sont configurés pour utiliser Windows Update ont .NET. Pas vraiment instructif du tout. – Paul

+0

intéressant, au moins, il a quelques statistiques pour les fenêtres. combiné avec un _OS installent base_ je peux obtenir une bonne hypothèse sur combien il est commun. – Amirshk

+0

@Paul - Vrai, mais je m'attendrais à ce que la majorité des machines qui n'utilisent pas Windows Update soient dans des entreprises ... et si c'est comme ça qu'elles fonctionnent, installer n'importe quel logiciel n'est probablement pas une option de toute façon. Je pense que ceux qui ne sont pas connectés à/utilisent Windows Update tombent principalement sous cette catégorie ou les programmeurs/adopteurs précoces qui s'éloignent de XP ... et quelque chose de plus élevé a .Net 2.0+ Je serais le bienvenu pour toute discussion sur pourquoi ce nombre peut ou peut ne pas être plus/moins valide ... mais je ne connais pas d'autre stat informé sur la question, aimerais voir quelqu'un l'afficher ici pour la comparaison. –

1

Tous les ordinateurs exécutant Vista auront au moins .NET 2 installé et Windows-7 .NET 3.5.1.

Aaron Stebner has a page détaillant quelle version de Windows a la version de .NET installée en standard. Donc, si vous connaissez le système d'exploitation qui est exécuté par votre public cible, vous serez en mesure de déterminer s'ils auront .NET installé et quelle version.

6

Pour Linux, je voudrais juste regarder les distributions les plus populaires. Par exemple, Ubuntu est livré avec Mono par défaut. Juste là vous avez une grande base d'utilisateurs potentiels.

Vista + aura .Net.

Sur Mac OS X, GTK # et Mono peuvent être inclus dans l'application. Banshee récemment released une version qui fait cela.

Pour Windows XP, je crée un programme d'installation à l'aide du projet d'installation de Visual Studio et utilise la fonctionnalité prérequis pour déterminer les dépendances. Si les dépendances ne sont pas sur la machine, le programme d'installation peut les mettre pour vous. Les formats d'installateur .RPM et .DEB peuvent faire la même chose sous Linux. En tout, je dirais écrire l'application et ensuite contourner les dépendances en écrivant un bon programme d'installation ou un paquet. Par ailleurs, si vous n'avez pas Visual Studio pour le programme d'installation sous Windows, Innosetup fonctionne également bien.

N8

+1

Donc, il est assez sûr de dire que cela va avec C# je peux avoir beaucoup de compilations de code à unix/mac – Amirshk

+0

Presque n'importe quel code fonctionnera. Restez à l'écart de WPF et P/Invoke. Si vous pouvez éviter Winforms et utiliser GTK # à la place, vous serez mieux lotis. La plupart des Winforms devraient fonctionner maintenant. – Nate

+0

assez vrai. Nous gardons notre utilisation de WinForms aux os nus (fondamentalement 6 contrôles différents) - au moins jusqu'à ce que nous ayons GTK # et notre cadre prêt à s'accoupler (lire, dès que j'apprends à l'employer ... lol) – IAbstract

1

Permettez-moi de vous donner une supposition de la pénétration Mono sur Linux. Pour KDE, il n'y a pratiquement aucune application dépendante de Mono. Pour GNOME, cela pourrait être différent. Plusieurs applications populaires (TomBoy, F-Spot, mes propres trucs GIMP #;)) ont besoin de Mono.

Supposons maintenant que 50% de tous les environnements de bureau sont KDE, l'autre moitié est GNOME. Et supposons encore que la moitié des utilisateurs de GNOME installent un programme qui dépend de Mono. Dans ce cas, vous obtenez environ 25% de votre base d'utilisateurs Linux sur laquelle Mono est installé. Personnellement, je pense que c'est déjà un nombre assez élevé, mais si vous donne une limite supérieure.Mon estimation serait d'environ 10%, mais c'est juste un sentiment d'intuition. J'espère que cela t'aides.

4

Votre meilleur pari global est d'aller avec .NET. Alors que nous nous concentrons sur l'obtention de la suite d'applications développée, nous gardons des technologies comme multiplateforme possible (j'utilise le terme générique, mais qui serait source de confusion).

Obtenez votre conception globale/architecture en place d'abord. Ensuite, étudiez les technologies que vous envisagez. Par exemple, si votre application va cibler une plate-forme Mono, il existe des technologies MS que vous ne devriez même pas considérer (MEF vient à l'esprit). Ne laissez pas une discussion Linux/Windows/Mono vous empêcher de faire quelque chose de bien accompli. ;)

Modifier en fonction du commentaire d'Am: Je ne me suis pas rendu compte que vous étiez vraiment préoccupé de savoir si la décision d'utiliser C# était la meilleure décision. À la lumière de cela, je vais ajouter un peu plus.

Mono est écrit en C#. La popularité est écrasante. Ajouter la flexibilité de C# et une extension (plus ou moins) de C++, je ne pense vraiment pas que vous pouvez vous tromper. Il y a encore des considérations, comme je l'ai mentionné ci-dessus, dont vous devez tenir compte.

+0

Aucuns soucis, le projet est déjà en cours, je me demandais si nous faisions le bon choix avec C#. – Amirshk

+0

Je crois que vous avez fait un excellent choix avec C#. C'est ce que nous utilisons. MonoDevelop est écrit en C#. Aller à www.koders.com et vous pouvez même trouver tous les fichiers open source Mono. Je n'avais pas réalisé que vous discutiez de l'utilisation de C#. – IAbstract

+0

Il existe des technologies MS que vous devriez éviter avec Mono mais MEF est livré prêt à l'emploi. WPF, Entity Framework et Windows Workflow sont les plus grands domaines à éviter. – Justin

2

Selon le Debian Popularity Contest, mono-runtime est installé sur 13184 sur 90447 participants hôtes Debian (rang de # 1504).

Cela se traduirait par une base installée de 15% sur toutes les installations Debian (y compris sûrement plusieurs serveurs). Pour une approximation des installations de bureau, j'ai regardé les installations xserver-xorg (49872 inst, rang # 390).

En supposant que mono est installé uniquement si un serveur X est installé, cela se traduirait par une base installée de 26% dans la population de postes de travail.

Autres:

  • bash: 99,9%
  • perl: 99,4%
  • python: 97%
  • php (4,5, cgi, cli): 56% (contient probablement une certaine doublons)
  • tcl8.4: 45%
  • tk8.4: 35%
  • java: 35% (plus de 50% sont le vieux soleil non-free JRE s)
  • ruby1.8: 26%
  • ghc6 (Haskell): 2%

Comme un côté note: en raison de la résolution automatique des dépendances et l'installation d'outils tels que apt et yum , une petite base installée de l'interpréteur est beaucoup moins un problème que sous Windows où le processus d'installation manuelle est beaucoup plus fastidieux.

+0

tnx @david, je cherchais quelque chose comme ça. – Amirshk