Quais são as principais diferenças entre o Windows Server 2008, 2008 SP2 e 2008 R2?
As bases de código para esses sistemas operacionais são diferentes?
Se estou desenvolvendo aplicativos para qualquer um desses três, devo me preocupar com a possibilidade de não funcionar nos outros dois?
O Windows Server 2008 e o Windows Server 2008 SP2 são o mesmo sistema operacional, apenas em um nível de service pack diferente (o Windows Server 2008 foi iniciado no nível SP1 porque foi lançado um pouco após o Windows Vista e o SP1 já terem sido lançados).
O Windows Server 2008 R2 é a versão de servidor do Windows 7, portanto, é a versão 6.1 do sistema operacional; ele apresenta muitos recursos novos, porque na verdade é uma nova versão do sistema. Este é um bom lugar para começar: http://www.microsoft.com/windowsserver2008/en/us/whats-new.aspx .
Há também diferenças no nível da GUI, porque o WS2008R2 usa a mesma nova GUI introduzida no Windows 7 (nova barra de tarefas, etc.).
Dependendo do tipo de aplicativos que você está desenvolvendo, eles podem ou não encontrar problemas em diferentes versões do sistema operacional; você deve definitivamente verificar o MSDN.
O ponto mais importante: o Windows Server 2008 R2 existe apenas para plataformas de 64 bits, não há mais versão x86.
Ok, maneira simples de olhar para isso:
Windows Vista SP1 = Windows Server 2008
Windows Vista SP2 = Windows Server 2008 SP2
Windows 7 = Windows Server 2008 R2
Ok, é um pouco confuso, o Windows Server 2008 é baseado no kernel do WindowsNT 6.0 service pack 1. Por causa disso, o primeiro service pack foi o Service pack 2 (Windows Server 2008 SP2). O Windows Server 2008 R2 também é baseado no Kernel do WindowsNT 6.1 (é semelhante ao Windows 7, assim como o Server 2008 é semelhante ao Vista) com alguns recursos e capacidades expandidos.
Como o kernel é o mesmo, a menos que você esteja fazendo algo bastante exótico, não há problema, lembre-se de consultar o MSDN para obter melhores informações. O maior problema que pude ver é a capacidade do R2 ser executado sem uma interface GUI. Isso provavelmente será uma minoria de casos, não é o padrão para isso, o padrão é como qualquer outro Windows Server, não tenho certeza de quantos usarão a capacidade.
A única coisa que encontrei até agora é que o Windows Server 2008 R2 é muito mais seguro do que o Windows Server 2008 normal. Por exemplo, desenvolvo para o SharePoint, cujo problema conhecido é que ele "esquece" de habilitar o lançamento / ativação local para o Componente COM do IIS Wamreg. No Windows Server 2008, você pode simplesmente abrir a janela op de Component Services e habilitar todas as contas necessárias. No Windows Server 2008 R2, você precisa primeiro entrar no registro e apropriar-se da chave do registro IIS WamReg antes de poder alterar as configurações de segurança.
O Windows Server 2008 não permite o modo BranchCache como o 2008 R2.