2009-03-09 8 views
8

Estoy a punto de comenzar una nueva aplicación de Windows. Será una herramienta de procesamiento de audio escrita en C++. Necesitará todos los elementos habituales de la GUI, como menús, barras de herramientas, etc. También tendrá un navegador web incorporado.¿Está bien escribir nuevas aplicaciones para .NET todavía?

Estoy pensando en compilarlo en .NET, pero me gustaría saber si .NET todavía tiene problemas para implementarlo. ¿Qué porcentaje de usuarios regulares ya tienen el tiempo de ejecución de .NET? No quiero causar ningún dolor a mis usuarios, como tener que descargar un tiempo de ejecución de 100 MB solo para iniciar mi aplicación.

¿Qué piensa usted sobre los desbordamientos? ¿Debería ir a .NET o debería atenerme a la simple API Win32? ¿O tal vez incluso un sistema de terceros como QT o wxWidgets?

+0

Necesita ver a su público objetivo y determinar si es un problema para ellos o no. En el entorno corporativo en el que trabajo actualmente .NET 3.5 no se implementa en nuestras estaciones de trabajo. Actualmente tengo que apuntar a .NET 3.0. – bruceatk

+0

3.5 va a ser expulsado a través de la actualización de Windows muy pronto por lo que escuché. – Echostorm

Respuesta

22

Puede dirigir a sus usuarios al .Net bootstrapper, es una descarga de 100kb que detectará qué partes del framework .Net tienen actualmente y descargará cualquier cosa que falte.

También hay http://smallestdotnet.com/ una iniciativa de @shanselman

13

No sé los números exactos, pero Vista tiene .NET incorporado, y otras versiones de Windows pueden quitarlo de Microsoft Update con bastante facilidad. También puede redistribuir el tiempo de ejecución de .NET con su aplicación.

No me preocuparía demasiado si sus usuarios tienen .NET instalado.

+0

Las diferentes versiones de .Net aún pueden ser un problema. Por ejemplo, ningún sistema operativo se envía con .Net 3.5. Si desea orientar eso, debe esperar que sus usuarios lo instalen. –

+0

"no me preocuparía demasiado si tus usuarios tienen .NET instalado" ¡¡¡Creo que debería ser un problema !! –

5

.NET Framework descarga/instalación no es que onerosa. Pero sugeriría que veas tu problema desde otro ángulo.

Si supiera que todos sus usuarios tenían instalado Framework, ¿optaría por C++ o utilizaría .Net? Debido a sus requisitos de GUI, supongo que está utilizando .Net para todas las sutilezas que trae a la mesa.

Las otras opciones enumeradas pueden ser aceptables, pero es difícil superar .Net Framework en su soporte para esos componentes del lado del cliente.

Teniendo en cuenta todo, la compensación de una única descarga en comparación con la mejor compatibilidad con la aplicación que obtendrás parece una muy buena.

2

.NET es como Java: debe asegurarse de que el tiempo de ejecución adecuado esté allí. ¡La d/l no es de 100mb! ¡DECIR AH! Es 196mb. Pero hay un "perfil de cliente" que lo reduce a 26mb, así lo escucho.

El despliegue del .NET runtime es un inconveniente, pero para mí, la productividad del desarrollador se mejora mucho en C# sobre C++. Con mucho gusto haré que mis usuarios soporten 45 segundos de tiempo de descarga, para obtener un orden de magnitud de mejor productividad. Pero solo soy yo. (pd: el instalador puede descargar automáticamente el tiempo de ejecución requerido).

+0

¡Con mucho gusto molestarás a tus usuarios! por supuesto, ¿a quién le importan sus usuarios de todos modos? – hasen

+0

¡Exactamente! 45 segundos de su tiempo, una vez, vale la pena salvar 4 semanas de dolores de cabeza para mí. – Cheeso

+1

También ahorrando 4 semanas de su tiempo de trabajo de su billetera –

0

No hay consejos sobre .Net, pero si decides, por alguna razón u otra, no usar .Net, te recomiendo usar QT sobre Win32 API. La API de Win32 me parece realmente desordenada y mucho más difícil de usar que QT, que, en mi opinión, es realmente agradable.

11

Microsoft está empujando el .NET framework muy fuertemente. Creo que ni siquiera puede instalar Microsoft Office 2007 sin tener el .NET Framework instalado en su computadora. Por lo tanto, si Microsoft requiere .NET para sus últimos programas de Office, probablemente esté seguro de asumir que sus clientes basados ​​en Microsoft tendrán instaladas las bibliotecas de base .NET prerrequisito. De los cursos, esto dependerá en gran medida del tipo de aplicación que esté creando.También he escuchado sobre algunos desarrolladores de videojuegos que envían sus paquetes de juegos con la versión Mono de .NET de código abierto. Lo creas o no, en realidad hay una versión muy sólida y estable de Mono para Microsoft Windows.

+0

No, eso es nuevo para mí. No se puede instalar Office 2007 sin instalar .NET? Nunca escuché de eso. Hay algunas piezas de Office que usan .NET ... Creo que BCM para Outlook 2007 es uno. Pero MSWord y MSExcel no lo requieren. – Cheeso

1

¿Qué tipo de aplicación estás construyendo? Eso es realmente importante. Si usted está preocupado acerca de sus usuarios entonces:

  • si el control de sus usuarios, entonces no hay problema - a controlar sus máquinas y puede asegurarse de que .NET ya está instalado
  • si usted está hablando acerca de los usuarios que son externos (a su organización), entonces recomendaría la aplicación ASP.NET o Silverlight

Decida usted mismo. Probablemente iría con Silverlight, ya que está más cerca de las aplicaciones de escritorio (a las que creo que se refiere) y, sin embargo, la descarga es muy pequeña (supongo que algo así como 2 MB). Eche un vistazo al http://silverlight.net.

+0

Dudo mucho que la edición de sonido sea algo que quieras hacer en una aplicación en línea. –

+0

* editing = processing –

0

.Net hará que su vida sea más fácil en comparación con las API nativas de C++ y Windows, o incluso QT. Pero si la interfaz gráfica de usuario no es complejo, es mejor utilizar QT como el tamaño NET Framework es relativamente grande

2

El .NET Framework 2.0 Runtime sólo 22MB, y es un buen marco para apuntar, especialmente si usted no necesita o WPF WCF. Los usuarios de Vista tendrán al menos 3.0 instalados, por lo que no necesitan hacer nada, y muchas otras aplicaciones ya apuntan a 2.0, por lo que ya lo tendrán instalado.

Además, su aplicación en .NET será significativamente más pequeña que lo que escribiría en C++. Los archivos ejecutables son mucho más pequeños en sí mismos, y el archivo MSI resultante de crear un proyecto de instalación en VS es más pequeño que cualquier otra cosa que haya visto.

+0

No cuando agrega el tiempo de ejecución. Llevar un sistema de .net a 3.5 es una descarga significativa y he tenido la falla de instalación en varios sistemas la primera vez que se realizó. – bruceatk

+0

Eso no hace que mi respuesta sea menos válida. No necesita 3.5 hoy a menos que necesite algunas de las tecnologías más nuevas. Y que la instalación falla, * su * sistema puede deberse a requisitos previos faltantes. –

+0

Estoy comentando sobre "Los ejecutables son mucho más pequeños ...". Siempre tengo que considerar la carga completa de lo que estoy entregando y sus dependencias. – bruceatk

2

Implementamos varias aplicaciones a clientes en diferentes industrias, y actualmente .NET Framework 2.0 no es un problema en absoluto. (Y de todos modos solo es una descarga de 22 MB.) Todavía puede usar Visual Studio 2008 y C#, pero debe elegir .NET 2.0 como el marco de destino y debe usar Windows Forms en lugar de WPF para la GUI (que podría ser Dependiendo de sus experiencias,

.NET Framework 3.0 y 3.5 (y 3.5 SP1 etc.) no parece ser mainstream al menos en redes corporativas, es significativamente más grande, tiene más peligros potenciales durante la instalación, y no soporte Windows 2000 y Windows 98 más (que .NET 2.0 todavía lo hace).

1

Por lo que he leído Mono (la implementación del software libre de .NET) se envía con un enlazador - puede compilar su aplicación usando Mono, enlazando para ello todos los componentes necesarios.

Lo bueno es que obtendría un paquete independiente: no es necesario que el usuario final instale un .NET framework específico si no lo ha hecho aún. La desventaja es que, dependiendo de cuántas bibliotecas .NET esté utilizando, su ejecutable puede terminar siendo enorme, anulando los beneficios.

0

La API ClickOnce también es algo que vale la pena investigar. Puede usarlo para distribuir su aplicación a través de Internet, y la aplicación puede llamar a casa para recibir actualizaciones automáticamente (si lo desea).

Uso en mi trabajo ahora y hace que la distribución y actualización del software de escritorio sea muy fácil.

+0

Esta respuesta no aborda la preocupación de si es una buena idea escribir para .NET en función del tamaño del tiempo de ejecución. –

Cuestiones relacionadas