Programação Windows - você deve deixar o UAC ativado?

11

Qual é a configuração de Controle de Conta de Usuário (UAC) recomendada ao desenvolver no Windows?

Mesmo no Win7, acho chato o suficiente desativá-lo (porque isso me torna mais produtivo com ele), mas às vezes me sinto mal porque sei que vou encontrar mais problemas no meu código se o deixar ativado.

Brian R. Bondy
fonte
"Funciona na minha máquina!" A resposta clássica de um desenvolvedor que está sendo informado sobre um problema com seu software. Isso pode ser devido a diferenças nos direitos de acesso, recursos de hardware ou bibliotecas instaladas (e algumas). Apenas tente estar ciente das possíveis limitações da máquina de um usuário em relação à sua e teste se puder antes da liberação. Porque ... "Não estamos enviando sua máquina!"
Martin Maat

Respostas:

16

A recomendação (mesmo da Microsoft) é deixá-lo ativado e também executar seu IDE sem alterações sempre que possível.

Antes de tudo, força o programador a viver com os mesmos "aborrecimentos" que um usuário do mundo real terá (se você não o conhece, programaria corretamente com ele?).

Então, desabilitar o UAC e trabalhar como administrador é tão ruim quanto no Unix funcionar como raiz (décadas de sabedoria comum lhe dirão por que isso é ruim).

Wizard79
fonte
4
O Windows não é linux, isso não é realmente uma boa comparação ..
Thomas Bonini 03/09
9
@ Kop: executar com privilégios totais é bom ou ruim, independentemente do sistema operacional ... Não consigo ver como o Windows e o UNIX / Linux são diferentes nisso.
precisa saber é o seguinte
1
@Brian: Ainda existem algumas bibliotecas que exigem direitos de administrador (como o desenvolvimento para o Azure), mas a grande maioria das tarefas pode ser executada como não administrativa.
Agent_9191
2
@ Walter: você pode criar serviços do Windows não elevados. Você precisa de direitos elevados para instalar / desinstalar o serviço. Você nunca deve instalar algo diretamente do IDE, de modo que um prompt de comando elevado funcione melhor, pois é isso que os profissionais de TI acabariam usando.
Agent_9191
2
@ zneak: você está errado. Do ponto de vista técnico, ser usuário root de um administrador (ou administrador elevado com UAC) é exatamente a mesma coisa. Obviamente, você não pode usar o comando format na partição do sistema, mas esta é apenas uma opção de interface do usuário. Você pode usar um programa de terceiros que formata a eliminação da partição do sistema ou qualquer outra coisa.
usar o seguinte comando
4

Independentemente de você programar com ele ativado ou desativado, você deve testar seu programa com uma conta de usuário limitada. Isso deve detectar a maioria dos problemas que os usuários podem ter ao executar seu programa com uma conta limitada ou com o UAC ativado.

Gelatina
fonte
O problema é que, se você tiver o UAC desativado, deverá ter uma máquina dedicada ou uma máquina virtual ligada para os testes.
usar o seguinte comando
Mesmo se o UAC estiver desativado, uma conta limitada ainda permitirá testar privilégios limitados.
Gelatina
2
Você precisa testar ambos os cenários unelevated sem privilégios e privilegiados.
Ben Voigt
4

Estou executando o Windows 7 e deixo o UAC ativado e minha conta não é uma conta de administrador verdadeira. Então, quando eu topar com o UAC, tenho que inserir a senha de administrador para continuar. Mesmo no Vista, eu continuei. Ouvi vários desenvolvedores dizerem que isso atrapalha, mas ainda não vi isso. No Vista, o problema era maior, pois várias áreas eram um pouco restritivas demais.

A pergunta que sempre levanto quando os desenvolvedores dizem que o UAC atrapalha é "O que você está fazendo e continua se deparando com ele?". Se você está tentando manipular arquivos em pastas do sistema (Windows, Arquivos de Programas, sites IIS), está fazendo algo errado. Sites do IIS podem existir fora de C: \ inetpub. Os bancos de dados de usuário do SQL Server podem existir fora dos Arquivos de Programa. A única vez em que você deve ver regularmente o prompt do UAC é a instalação e atualização de aplicativos. Se você o vê com mais frequência, provavelmente está trabalhando contra o sistema e não com ele.

Agent_9191
fonte
2
O Visual Studio não permitirá que você abra um projeto de aplicativo Web hospedado no IIS, a menos que esteja em execução elevada.
Heinzi
Para estender o argumento de @ Heinzi, se eu executar duas versões do mesmo aplicativo (por exemplo, duas ramificações SVN que são armazenadas em um local diferente), você precisará do VS studio para definir o IIS na pasta correta em que você está trabalhando (ou seja, a última solução que você abriu desses dois). Sem privilégios elevados, você não apenas precisa atualizar o IIS manualmente, mas também corre o risco de esquecer e testar uma versão completamente diferente do aplicativo (no navegador) do que está desenvolvendo (no VS)
Flater
1

IMHO, tudo se resume ao que você está fazendo.

No meu trabalho atual, desenvolvo aplicativos da web e serviços do Windows. Por causa disso, eu me acho mais produtivo com isso. Se eu estivesse trabalhando em aplicativos que um usuário instalaria, deixaria ativado para que eu pudesse estar o mais próximo possível do que o usuário experimentaria.


fonte
Como deixar o UAC desligado ajuda? O desenvolvimento de aplicativos da Web não deve exigir direitos de administrador, exceto para configurar o IIS inicialmente. Os serviços do Windows exigiriam direitos de administrador para iniciar e parar, mas através de uma única janela de comando e net start/stopvocê tem um único prompt do UAC. Caso contrário, você deve ter a lógica criada para ter um corredor de linha de comando e um corredor do Win Service.
Agent_9191
Não ajuda no desenvolvimento, mas tira o aborrecimento do UAC. Se você não precisar dele para simular baixo acesso, desative-o; caso contrário, deixe-o ligado
2
A depuração de um aplicativo Web hospedado no IIS requer privilégios elevados, acredito.
FinnNk