Programación de Windows: ¿debería dejar UAC activado?

11

¿Cuál es la configuración recomendada de Control de cuentas de usuario (UAC) al desarrollar en Windows?

Incluso en Win7 lo encuentro lo suficientemente molesto como para apagarlo (porque me hace más productivo con él), pero a veces me siento mal porque sé que encontraré más problemas en mi código si lo dejo encendido.

Brian R. Bondy
fuente
"¡Funciona en mi máquina!" La respuesta clásica de un desarrollador al que se le informa sobre un problema con su software. Esto podría deberse a diferencias en los derechos de acceso, recursos de hardware o bibliotecas instaladas (y algo más). Solo trate de estar al tanto de las posibles limitaciones de la máquina de un usuario en comparación con la suya y pruebe si puede antes del lanzamiento. Porque ... "¡No enviaremos su máquina!"
Martin Maat

Respuestas:

16

La recomendación (incluso de Microsoft) es dejarlo encendido y también ejecutar su IDE sin elevar siempre que sea posible.

En primer lugar, obliga al programador a vivir con las mismas "molestias" que tendrá un usuario del mundo real (si no lo sabe, ¿programaría correctamente a su alrededor?).

Luego, deshabilitar UAC y trabajar como administrador es tan malo como en Unix para trabajar como root (décadas de sabiduría común le dirán por qué eso es malo).

Wizard79
fuente
44
Windows no es Linux, esa no es realmente una buena comparación ..
Thomas Bonini
99
@Kop: ejecutar con todos los privilegios es bueno o malo independientemente del sistema operativo ... No puedo ver cómo Windows y UNIX / Linux son diferentes en eso.
Wizard79
1
@Brian: Todavía hay algunas bibliotecas que requieren derechos de administrador (como el desarrollo para Azure), pero la gran mayoría de las tareas se pueden realizar como no administrativas.
Agent_9191
2
@Walter: puede crear servicios de Windows sin elevar. Sin embargo, necesita derechos elevados para instalar / desinstalar el servicio. De todos modos, nunca debe instalar algo directamente desde el IDE, por lo que un símbolo del sistema elevado funciona mejor, ya que eso es lo que los profesionales de TI terminarían usando.
Agent_9191
2
@zneak: estás equivocado. Desde un punto de vista técnico, ser usuario root de un administrador (o administrador elevado con UAC) es exactamente lo mismo. Por supuesto, no puede usar el comando de formato en la partición del sistema, pero esta es solo una opción de interfaz de usuario. Puede utilizar un programa de terceros que formatea la partición del sistema o cualquier otra cosa.
Wizard79
4

Independientemente de si programa con él activado o no, debe probar su programa con una cuenta de usuario limitada. Esto debería detectar la mayoría de los problemas que los usuarios pueden tener al ejecutar su programa con una cuenta limitada o con el UAC activado.

Gelatina
fuente
El problema es que, si tiene UAC apagado, debe tener una máquina dedicada o una máquina virtual con él encendido para las pruebas.
Wizard79
Incluso si el UAC está apagado, una cuenta limitada aún le permitiría probar privilegios limitados.
Gelatina
2
Es necesario poner a prueba ambos escenarios unelevated sin privilegios y privilegiados.
Ben Voigt
4

Estoy ejecutando Windows 7 y dejo UAC activado y mi cuenta no es una verdadera cuenta de administrador. Entonces, cuando me encuentro con UAC, tengo que ingresar la contraseña de administrador para continuar. Incluso bajo Vista lo mantuve encendido. Escuché a varios desarrolladores decir que se interpone en el camino, pero aún no lo he visto. Bajo Vista, era un problema mayor ya que varias áreas eran demasiado restrictivas.

La pregunta que siempre hago cuando los desarrolladores dicen que UAC se interpone en el camino es "¿Qué haces para que sigas tropezando?". Si está intentando manipular archivos en las carpetas del sistema (Windows, Archivos de programa, sitios IIS), está haciendo algo mal. Los sitios web de IIS pueden existir fuera de C: \ inetpub. Las bases de datos de usuarios de SQL Server pueden existir fuera de los archivos de programa. La única vez que debería ver regularmente el aviso de UAC es la instalación y actualización de aplicaciones. Si lo ve con más frecuencia, es probable que trabaje contra el sistema en lugar de hacerlo con él.

Agent_9191
fuente
2
Visual Studio no le permitirá abrir un proyecto de aplicación web alojada en IIS a menos que se ejecute de forma elevada.
Heinzi
Para extender el punto de @ Heinzi, si ejecuto dos versiones de la misma aplicación (por ejemplo, dos ramas SVN que están almacenadas en una ubicación diferente), necesita VS studio para poder configurar IIS en la carpeta correcta en la que está trabajando (es decir, la última solución que abrió de estos dos). Sin privilegios elevados, no solo tiene que actualizar IIS manualmente, también corre el riesgo de olvidar y probar una versión de la aplicación (en el navegador) completamente diferente de la que está desarrollando (en VS)
Flater
1

En mi humilde opinión, se reduce a lo que estás haciendo.

En mi trabajo actual, desarrollo aplicaciones web y servicios de Windows. Por eso me encuentro más productivo con eso. Si estaba trabajando en aplicaciones que un usuario instalaría, lo dejaría activado para poder estar lo más cerca posible de lo que el usuario experimentaría.


fuente
¿Cómo ayuda dejar UAC fuera? El desarrollo de aplicaciones web no debería requerir derechos de administrador, excepto para configurar IIS inicialmente. Los servicios de Windows requerirían derechos de administrador para iniciarse y detenerse, pero a través de una sola ventana de comandos y net start/stopusted tiene un solo aviso de UAC. De lo contrario, debe tener la lógica construida para tener un corredor de línea de comando y un corredor Win Service.
Agent_9191
No ayuda con el desarrollo, pero elimina la molestia de UAC. Si no lo necesita para simular acceso bajo, apáguelo; de lo contrario déjelo encendido
2
La depuración de una aplicación web alojada en IIS requiere privilegios elevados, creo.
FinnNk