Windows 7 – Novità per gli sviluppatori

Salve a tutti!

Volevo iniziare con questo post, una lunga serie di interventi cercando di commentare e di spiegare quali siano le novità per gli sviluppatori introdotte da Windows 7 (e magari anche da Vista, ma sottovalutate o eluse all’epoca).

Il consiglio principale che posso darvi è di partire da qui, http://msdn.microsoft.com/en-us/library/dd371778(VS.85).aspx e leggere tutto, ma proprio tutto.

Innanzitutto, la compatibilità con il numero di versione.

Windows 7 e Windows 2008 R2 riportano come numero di versione 6.1, nonostante il nome di Windows stesso sia 7.

verisone

Questo è frequente motivo di incompatibilità dei programmi di setup o di applicazioni, che non riconoscono il sistema come supportato, perchè spesso sbagliano la comparazione della versione. Se non volete usare l’API GetVersion, potete usare il registry:

Hive:      HKEY_LOCAL_MACHINE
Key:       SOFTWARE\Microsoft\Windows NT\CurrentVersion
Name:    CurrentVersion
Type:     REG_SZ
Value:    6 = Windows Server 2008, 6.1 = Windows Server 2008 R2 (gli altri valori li trovate nell’SDK).

Fate comunque attenzione a come comparate il numero di versione.

Qui, http://windowsteamblog.com/blogs/windowsvista/archive/2008/10/14/why-7.aspx, trovate la vera storia del perchè Windows 7 riporti in realtà come numero di versione 6.1.

Della AppInit_DLL ho già parlato in un altro post. Ma conviene fare una rinfrescata perchè è importante. Eventualemnte date un occhiata a questo articolo.

La “Registry Reflection”, cioè quella feature che ricopiava parte delle entry del registry a 64 bit nelle chiavi della parte a 32bit del registry nei sistemi a 64 bit, è stata rimossa, perchè portava a delle inconsistenze. Quindi, se avete scritto in passato del codice per Vista che andava ad operare direttamente su alcune di queste chiavi, dovrete rivederlo. COM è il principale utilizzatore della Reflection. Se non usate oggetti COM, non dovete preoccuparvene. Al contrario invece, se programmate principalmente usando COM, vi consiglio una attenta disamina di questa pagina e di quelle linkate.

Windows Server 2008 R2 è solo a 64 bit, e il Wow64 è un componente opzionale (se installato in modalità Server Core). Fate quindi moltissima attenzione a dove andate ad installare il vostro programma. Se è a 32 bit e un vostro cliente vi dice che lo sta installando su un 2008 R2 Server Core, potrebbe non funzionare nemmeno. Il consiglio è di iniziare a programmare e testare i programmi a 64 bit.

Alla prossima!

Mario Raccagni
Senior Support Engineer
Platform Development Support Team