2010-01-31 13 views
11

Yo y algunos amigos estamos considerando escribir un nuevo proyecto de FOSS, y el debate se divide entre el uso de .NET u otra cosa..NET/Mono Install Base

Entonces, me pregunto si existe una base de instalación anunciada para Mono en máquinas Linux. y, si hay una base de instalación conocida de Mono o Microsoft .Net en máquinas con Windows?

Gracias.


Install Base - Una medida de la cantidad de unidades de un tipo particular de sistema realmente en uso.

+0

¿Qué quiere decir con 'base de instalación'? Estamos trabajando en un proyecto que es x-platform para Mono/Windows/Mac. – IAbstract

+0

¿Qué quiere decir con base de instalación? –

+2

@dboarman & @Amit - Creo que está buscando estadísticas aquí, como "el 97% de todas las computadoras tienen flash" (cualquiera que sea la estadística) ... así que sabe qué tan amplia es la audiencia desplegable. –

Respuesta

6

Hanselman gives a stat for .Net Framework Installs. Lo coloca en 90% de las PC. con más del 65% de las PC con 3.5 SP1. (Esto fue publicado el 19 de enero de 2010)

No estoy seguro de dónde vienen los números, pero es la única figura que he visto en bastante tiempo. En cuanto a Mono ... No estoy seguro.

+2

Dijo que la estadística se basa en las estadísticas de actualización de Windows. Entonces, realmente, la estadística dice que el 90% de las computadoras conectadas a Internet que están configuradas para usar Windows Update tienen .NET. No es realmente informativo en absoluto. – Paul

+0

interesante, al menos tiene algunas estadísticas para Windows. combinado con una _OS install base_, puedo obtener una buena suposición sobre cuánto es común. – Amirshk

+0

@Paul - Cierto, pero esperaba que la mayoría de las máquinas que no usan Windows Update están dentro de las empresas ... y si así es como funcionan, la instalación de cualquier software que desee probablemente no sea una opción de todos modos. Creo que los que no están conectados a/usan la actualización de Windows caen mayormente bajo esa categoría o los tipos de programadores/usuarios iniciales que se están alejando de XP ... y cualquier cosa más alta tiene .Net 2.0+ Me encantaría cualquier discusión sobre por qué ese número puede ser o no más o menos válido ... pero no conozco ninguna otra estadística informada sobre el tema, me gustaría ver a alguien publicarlo aquí para comparar. –

1

Todas las computadoras que ejecutan Vista tendrán al menos .NET 2 instalado y Windows-7 .NET 3.5.1.

Aaron Stebner has a page detallando qué versión de Windows tiene qué versión de .NET instalada de serie. Por lo tanto, si sabe que su audiencia objetivo correrá con el sistema operativo, podrá determinar si tendrán instalado .NET y qué versión.

6

Para Linux, simplemente miro las distribuciones más populares. Por ejemplo, Ubuntu viene con Mono por defecto. Justo ahí tienes una gran base de usuarios potenciales.

Vista + tendrá .Net.

En Mac OS X, GTK # y Mono realmente se pueden incluir con la aplicación. Banshee recientemente released una versión que hace esto.

Para Windows XP, simplemente creo un instalador usando el proyecto de instalación de Visual Studio y uso la función de requisitos previos para determinar las dependencias. Si las dependencias no están en la máquina, el instalador puede ponerlas por usted.

. Los formatos de instalador .RPM y .DEB pueden hacer lo mismo para usted en Linux.

Todo, en todo lo que yo digo, escribir la aplicación y luego trabajar alrededor de las dependencias escribiendo un buen instalador o paquete.

Por cierto, si no tiene Visual Studio para el instalador en Windows, Innosetup funciona muy bien también.

N8

+1

Por lo tanto, es bastante seguro decir que con C# puedo tener una gran cantidad de código de compilación cruzada para unix/mac – Amirshk

+0

Casi cualquier código funcionará. Manténgase alejado de WPF y P/Invoke. Si puede evitar Winforms y usar GTK #, estará mejor. La mayoría de las Winforms deberían funcionar ahora. – Nate

+0

es suficiente. Mantenemos nuestro uso de WinForms hasta los huesos (básicamente 6 controles diferentes) - al menos hasta que tengamos GTK # y nuestro marco listo para aparearse (léase, tan pronto como aprenda a usarlo ... jaja) – IAbstract

1

Permítanme tratar de darle una conjetura de la penetración Mono en Linux. Para KDE casi no hay aplicaciones que dependan de Mono. Para GNOME que podría ser diferente. Varias aplicaciones populares (TomBoy, F-Spot, mi propio material GIMP #) necesitan Mono.

Supongamos ahora que el 50% de todos los entornos de escritorio son KDE, la otra mitad es GNOME. Y supongamos nuevamente que la mitad de los usuarios de GNOME instalan un programa que depende de Mono. En ese caso, obtiene aproximadamente el 25% de su base de usuarios de Linux que tiene Mono instalado. Personalmente, creo que ya es un número bastante alto, pero si te da un límite superior.Mi propia estimación sería de alrededor del 10%, pero eso es solo una corazonada. Espero que esto ayude.

4

Su mejor apuesta general es ir con .NET. Si bien nos estamos enfocando en desarrollar el conjunto de aplicaciones, mantenemos las tecnologías lo más diversas posibles (usaría el término genérico pero sería confuso).

Obtenga primero su diseño/arquitectura general. Luego estudia las tecnologías que estás considerando. Por ejemplo, si su aplicación se dirige a una plataforma Mono, existen tecnologías de MS que ni siquiera debería considerar (se le ocurre a MEF).

No permita que una discusión de Linux/Windows/Mono le impida lograr nada. ;)

Edición basada en el comentario de Am: No me di cuenta de que realmente te preocupaba si la decisión de usar C# era la mejor decisión. A la luz de eso, agregaré un poco más.

Mono está escrito en C#. La popularidad es abrumadora Agregue la flexibilidad de C# y una extensión (más o menos) de C++, realmente no creo que pueda equivocarse. Todavía hay consideraciones como mencioné anteriormente que debes tener en cuenta.

+0

No se preocupe, el proyecto ya está en marcha, solo me preguntaba si tomamos la decisión correcta con C#. – Amirshk

+0

Creo que ha tomado una excelente decisión con C#. Es lo que estamos usando. MonoDevelop está escrito en C#. Vaya a www.koders.com e incluso puede encontrar todos los archivos Mono de código abierto. No me di cuenta de que realmente estabas discutiendo el uso de C#. – IAbstract

+0

Hay tecnologías de MS que debes evitar con Mono, pero MEF las envía listas para usar. WPF, Entity Framework y Windows Workflow son las áreas más importantes para evitarlas. – Justin

2

De acuerdo con Debian Popularity Contest, mono-runtime está instalado en 13184 de los 90447 hosts Debian participantes (rango n. ° 1504).

Eso se traduciría en una base instalada del 15% en todas las instalaciones de Debian (seguramente incluyendo muchos servidores).

Para una aproximación de las instalaciones de escritorio, miré las instalaciones xserver-xorg (49872 inst, rango # 390).

Suponiendo que mono solo está instalado si se instala un servidor X, eso se traduciría en una base instalada del 26% dentro de la población de escritorio.

Otros:

  • bash: 99,9%
  • Perl: 99,4%
  • pitón: 97%
  • php (4,5, cgi, CLI): 56% (probablemente contiene algunos duplicados)
  • tcl8.4: 45%
  • tk8.4: 35%
  • java: 35% (más del 50% de los cuales son el viejo JRE sol no libre s)
  • ruby1.8: 26%
  • ghc6 (Haskell): 2%

Como un lado-nota: debido a la resolución automática de dependencias y la instalación de herramientas como apt y yum , una pequeña base instalada del intérprete es mucho menos problemática que en Windows, donde el proceso de instalación manual es mucho más tedioso.

+0

tnx @david, estaba buscando algo como esto. – Amirshk