2009-10-27 18 views
5

antes de pasar por lo que se siente desarrollando en .Net, tengo un par de preguntas de novato:Algunas preguntas antes de probar .Net

  1. ¿Puede un usuario que no es administrador de instalar .NET Framework, si el paquete original o cualquier actualización posterior requerida para ejecutar un programa? Algunos de nuestros clientes tienen servidores XP/Vista bloqueados y me preocupa instalar/actualizar su computadora cuando cargamos una nueva versión que requiere actualizar su versión de .Net Framework con el ServicePack más reciente

  2. Is el rendimiento aceptable en el hardware regular de Joe (es decir, no requiere el último y mejor hardware de usuario avanzado)? Nuestras aplicaciones son aplicaciones comerciales que los usuarios dejan abiertas todo el día, por lo que no importa si las aplicaciones .Net tardan más tiempo que sus equivalentes Delphi o VBClassic para iniciarse, pero el rendimiento está a la par una vez que el .Net Framework está funcionando. ¿corriendo?

  3. Si el rendimiento no es claramente tan bueno como, por ejemplo. aplicaciones compiladas de Delphi, ¿hay formas conocidas y confiables de acelerar las cosas?

  4. Dado que estoy acostumbrado a escribir scripts en Python, ¿está IronPython a la par con otros lenguajes .Net, o es más un lenguaje de hobby y debería dirigirme a VB.Net?


preguntas adicionales:

  1. Qué IDE debo usar? MS 'VisualStudio? SharpDevelop? ¿Otro? ¿Por qué?
  2. ¿Qué hace que Mono sea mejor que .Net para las aplicaciones de escritorio de Windows?
  3. En una aplicación, ¿cómo comprobar si el usuario tiene la versión correcta de .Net Framework y cualquier Service Pack necesario? Me gustaría evitar tener que empacar el .Net Framework requerido si no es necesario (es decir, si no está instalado y el usuario tiene suficientes derechos de administrador, descárguelo e instálelo antes de continuar ejecutando mi aplicación)
  4. ¿Qué ocurre si el el usuario no está registrado con suficientes derechos de administrador para instalar .Net y/o cualquier Service Pack necesario? ¿Hay un mensaje de error obvio, para que los usuarios no expertos en tecnología puedan decir lo que está mal?
  5. Es .Net compatible con versiones anteriores, es decir. ¿Puede una aplicación compilada para 2.0 ejecutar en 3.5, o hay incompatibilidades difíciles, por lo que se recomienda instalar .Net utilizada para compilar la aplicación?

Gracias por cualquier comentario.

Respuesta

2
  1. Depende de los derechos de los usuarios. Para las actualizaciones también hay algo llamado tecnología ClickOnce que acelerará cualquier versión que requiera su programa, y ​​le dará una gran cantidad de conjuntos de permisos sobre cómo se puede ejecutar su programa. (También una nota, Vista ya tiene .NET2.0 instalado, solo algunas máquinas XP no lo harán, pero puede obtenerlo a través de las actualizaciones de Windows - la instalación aquí depende de los derechos de los usuarios, no de .NET persay)
    1. Sí, mucho. Como con todo, Garbage in, Garbage out. .NET es, sin embargo, un lenguaje administrado y tiene Garbage Collection, lo que requiere mucho trabajo del desarrollo.
    2. N/A
    3. He entendido mal este punto la primera vez. Personalmente, IronPython está por ahí y funciona, pero el aprendizaje puede ser más difícil que algo como VB.NET/C#

Espero que esto ayude.

+0

Gracias por los comentarios. Para # 4, mencioné IronPython (http://www.codeplex.com/wikipage?ProjectName=IronPython), no C#. – Gulbahar

+0

Sí, ese fue mi error (lectura errónea), ya está actualizado, jeje. –

+0

¿Tiene alguna referencia para su primera respuesta? Esto parece no ser correcto en mi opinión. La configuración de .NET Framework modificará los archivos del sistema, p. escriba en% SYSTEMROOT% y en la sección de registro HKLM. Ambos requerirían privilegios administrativos. ¿O hay una versión que se instala totalmente en la carpeta AppData del usuario? –

0

Para responder a algunas de sus preguntas.

  1. obvously el usuario conectado debe tener derechos para instalar/desinstalar software, pero este es el mismo para cualquier software en la máquina, no un tema específico .net
  2. El rendimiento es muy aceptable, mucho mejor que la de Java e igual de bueno (si no mejor) que los ejecutables regulares
  3. El rendimiento es aceptable, pero se obtienen formas de convertir los ensamblados .net en .exe regulares de esta manera no requerirán ejecutar .net framework
  4. Go C# si es posible o vb.net (muchos más ejemplos de código, y mucho más flujo principal)
+0

Gracias. Para # 3: ¿Qué herramienta recomendaría para compilar estáticamente una aplicación .Net, y hay inconvenientes para las aplicaciones de envío de esa manera? Para # 4: pensé que sí. Supongo que C €/VB.Net son realmente los únicos idiomas con una gran tracción. – Gulbahar

+0

Cuando compila .NET de forma nativa, termina teniendo que atender diferentes configuraciones de máquina usted mismo. El framework .NET elige la compilación ideal en el JIT, lo que significa que no necesariamente tiene que preocuparse por este tipo de cosas. Esto es lo que he leído. –

+1

# 2 es probablemente discutible, # 3 está completamente equivocado. Si te refieres a 'ngen', entonces todo lo que haces es crear código nativo. La dependencia del marco permanece. – Joey

2
  1. No. Los archivos del sistema deben modificarse y, por lo tanto, el marco solo puede ser instalado por un usuario con privilegios. Sin embargo, las aplicaciones que se ejecutan en .NET no requieren permisos especiales para instalar o actualizar.

  2. El rendimiento de las aplicaciones .NET no es realmente un problema para las aplicaciones empresariales. Sí, están a la par con Delphi, VB pre .NET y Java.

  3. Igual que con cualquier aplicación: creación de perfiles y optimización. La creación de perfiles de las aplicaciones .NET puede ser muy fácil dada la cantidad de metadatos que pueden almacenarse en el ejecutable real (y lo están por defecto) para que los utilice el perfilador.

  4. Sin comentarios realmente, ya que no he usado ninguno de los tres.

+0

Muchas gracias por la gran respuesta de todos. Google me dice que para comenzar con VB.Net, necesito: .Net framework + SDK (compilador) + VisualStudio (IDE). ¿Es esto correcto? ¿Hay complementos/alternativas que deba conocer (por ejemplo, SharpDevelop open-source IDE)? – Gulbahar

+0

IMO, SharpDevelop es bueno para el desarrollo mono en Linux, pero no lo use en Windows. Vaya por Visual Studio Express en su lugar. En cuanto a lo que necesita ... Si instala Visual Studio, tiene todo lo que necesita. –

0
  1. nunca trató esto, pero es bastante fácil para que lo pruebe.
  2. Sí, lo es.
  3. Puede instalar aplicaciones pero rara vez es necesario.
  4. No puedo ayudarte con esto. Sin embargo, algunos podrían decir que VB.net es un lenguaje de hobby :-) Si está comenzando desde cero, busque para ver qué código de muestra está disponible en los diferentes lenguajes .NET en su dominio problemático. En serio, echa un vistazo. VB.Net debería ser más fácil de leer que C# porque usa muchas palabras agradables en lugar de, por ejemplo, llaves desagradables {}. Pero una vez que te gusta, C# es muy fácil de leer y está mucho más desordenado que el viejo y detallado VB.
+0

Encontrará que la mayoría de los artículos, respuestas de foros, ejemplos de códigos, etc. están en C#. Tenemos que usar VB donde trabajo y a veces es complicado convertir algunas soluciones de C# a VB, especialmente para algunas construcciones que no existen en VB (aún). Mi consejo para cualquiera que se pregunte cuál elegir es C#. Lo único que me gusta más con VB es que el editor VS2008 es mucho mejor para autocompletar y formatear el código. – MetalMikester

+0

Hay muchas cosas ASP.NET en VB debido a las personas que cambiaron de VB6 a VB.NET. Existen otros dominios de problemas, como la administración de identidades, donde VB domina. – serialhobbyist

0
  1. creo que usted no necesita derechos de administrador para instalar el marco. Pero tanto el XP actual como el Vista deberían venir con la versión 2.0 del framework, que es un buen objetivo para nuevas aplicaciones.

  2. El rendimiento es aceptable para todo menos para juegos de gráficos intensivos.

  3. Realmente no es necesario.

  4. Puede usar IronPython para el desarrollo de aplicaciones y sé de al menos una tienda comercial que lo hace (http://www.resolversystems.com/), pero recomendaría C# o VB.NET. Personalmente, me gusta Delphi Prism (http://www.embarcadero.com/products/delphi-prism).Si te gusta Delphi, tal vez ese sea el camino a seguir.

+0

XP no viene con .NET. Recuerde que .NET data de 2002, mientras que XP es de 2001. – Joey

+0

"XP actual" ... ¡Supongo que cualquier organización grande se habría actualizado a SP2 ahora! –

1

IronPython no tiene el mismo nivel de compatibilidad que C# y VB. Aún así, funciona excepcionalmente bien, y si te gusta Python es una victoria.

4

¿Puede un usuario no administrador instalar el .Net framework, ya sea el paquete original o cualquier actualización posterior requerida para ejecutar un programa?

En general, no. Para el desarrollo, definitivamente necesitará el marco instalado para usar la mayoría de las herramientas, y necesitará acceso administrativo para eso. Dicho esto, hay algunas soluciones técnicas que le permiten implementar una sola aplicación sin tener .NET Framework en la computadora de destino.

¿El rendimiento es aceptable en el hardware regular de Joe (es decir, no requiere el último y mejor hardware de usuario avanzado)?

Sí, mucho más.

Si el rendimiento no es claramente tan bueno como, por ejemplo. aplicaciones compiladas de Delphi, ¿hay formas conocidas y confiables de acelerar las cosas?

Hay muchas herramientas de introspección, creación de perfiles y optimización disponibles - Perfilador CLR, dotTrace, Reflector, etcétera. Algo así como un punto discutible, ya que la mayoría de los programas .NET están a la par (o mejores que) sus contrapartes, como se señaló anteriormente.

Dado que estoy acostumbrado a escribir scripts en Python, ¿está IronPython a la par con otros lenguajes .Net, o es más un lenguaje de hobby y debería dirigirme a VB.Net?

Aunque la aplicación es relativamente maduro y se llegó a la "simplemente funciona" etapa, las herramientas de apoyo IronPython no son tan robustos como los otros lenguajes .NET en la familia. Para un principiante, es posible que desee probar C# solo para mojarse los pies, ya que los conjuntos de herramientas estarán bien desarrollados y tendrá muchos ejemplos para seguir. Dicho esto, utilizo IronPython e IronRuby de forma rutinaria en proyectos de producción. ¡Buen material!

+0

+1 El buen punto, el perfil y el soporte de desmontaje son excelentes para el código .Net. Las versiones más nuevas de reflector (EAP) incluso pueden obtener el código fuente durante la depuración, de un ensamblaje para el que no tiene un código fuente. – Groo

Cuestiones relacionadas