Quais são as principais diferenças entre a programação para Windows XP e para Vista?
-
09-06-2019 - |
Pergunta
Do ponto de vista do desenvolvedor de aplicativos de desktop, há alguma diferença entre desenvolver para Windows XP e desenvolver para Windows Vista?
Solução
Interface de usuário
Olhando para o Diretrizes de experiência do usuário do Windows Vista você pode ver que eles mudaram muitos elementos da interface do usuário, dos quais você deve estar ciente.Algumas coisas importantes a serem observadas:
- Ícones maiores
- Novo Fonte (O que afeta alguma consistência da UI personalizada)
- Novo recursos da caixa de diálogo (diálogos de tarefas)
- Alterado diálogos comuns (como abrir arquivo, salvar como, etc.)
- Texto da caixa de diálogo estilo e tom, e olhe e sinta
- Novo Assistentes Aero
- Redesenhado barras de ferramentas
- Melhorar IU de notificação
- Novo método recomendado para incluir um controle de pesquisa
- Vidro
64 bits
O Vista tem uma edição de 64 bits e, embora o XP também tenha, é mais provável que seus usuários usem o Vista 64 do que o XP 64.Agora você tem que lidar com:
- Virtualização de registro
- Redirecionamento de registro (Uau6432Node)
- Reflexão do registro
- Assinaturas digitais para módulos do kernel
- Os instaladores MSI têm novas propriedades lidar com
UAC
Controle de conta de usuário afeta enormemente as permissões padrão que seu aplicativo possui ao interagir com o sistema operacional.
- Como o UAC funciona e afeta sua aplicação (veja também o documento de requisitos)
- Os instaladores precisam lidar com o UAC
Novas APIs
Existem novas APIs voltadas para novos métodos de construção de aplicativos ou para permitir novas funcionalidades:
- API de criptografia:Próxima geração (GNC)
- Linguagem de marcação de aplicativo extensível (XAML)
- Fundação de comunicação do Windows (WCF)
- Fundação de Fluxo de Trabalho do Windows (WF)
- E muitos mais menores
Instaladores
Como as instalações só podem usar tempos de execução comuns após a conclusão de uma transação, ações personalizadas vai falhar se sua dll de ação personalizada exigir os tempos de execução do Visual C++ acima do CRT do VS 2005 (não SP1).
Outras dicas
Não sempre suponha que seu usuário tenha acesso a certas áreas principais do disco (ou seja,arquivos de programas, diretório do Windows, etc.).Em vez disso, a conta de usuário padrão só poderá gravar em uma pequena seção dos dados do aplicativo.Além disso, eles não poderão gravar em áreas globais do registro - apenas na seção do usuário atual.
É claro que você pode aumentar seus privilégios, mas isso por si só é uma tarefa.
Geralmente a programação para o Vista é igual à do XP, são apenas as novas restrições de conta com as quais você deve ter cuidado.
Dê uma olhada nesta página para tornar seu aplicativo "consciente do UAC"
http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx
Pode haver, mas é uma escolha consciente que você faz como desenvolvedor.Você pode usar novidades do Vista, como UAC, CommandLinks, Aero e assim por diante.Mas você não precisa (até mesmo o UAC pode ser programado - apenas não faça nada que precise de privilégios de administrador).Se você optar por ignorar todas as coisas do Vista, não haverá absolutamente nenhuma diferença entre os dois.
Se você quiser incluir essas coisas em seu aplicativo, isso faz diferença.Mas eu diria que não é um grande problema.E se você abstrair as diferenças (por exemplo, escrever sua própria função que mostra um TaskDialog para o Vista, mas que simplifica a entrada fornecida em um MesssageBox no XP), então você estará escrevendo apenas em seu próprio código, e as diferenças parecerão quase nada.
Além disso, muitas das novidades do Vista (por exemplo, UAC ou Aero) são coisas com as quais você se preocupa uma vez, quando cria a primeira funcionalidade que o utiliza, faz com que funcione e nunca mais pensa nisso enquanto estiver desenvolvendo o aplicativo.
De longe, a parte mais dolorosa de mover um aplicativo do XP para o Vista (do meu ponto de vista) é lidar com os inúmeros serviços e itens IPv6 que usam portas que antes eram gratuitas e lidar com a transição de provisionamento sem fio -> WiFi nativo.
O assunto do UAC é basicamente um ponto discutível;há muito pouco que o desenvolvedor de aplicativos precisa fazer.