24 - 11 - 2017
Main Menu
Development
Old stories

AgetoAgeSqlite (x86) og XP

User Rating:  / 0
PoorBest 

I dag skal vi se litt på hva en programmerer trenger å tenke på angående kompatibilitet med eldre versjoner av Windows. Jeg utvikler AgetoAgeSqlite med en pc som kjører Windows 7 (32 bit) og jeg har overhodet ikke tenkt på om programmet mitt vil kjøre på en pc som kjører XP for eksempel. Og det er helt greit for en programmerer skal ikke trenge å bekymre seg om dette under utviklingen. Dette er et problem som (skulle kunnet) løses enkelt når utviklingen er ferdig eller at man har kommet til et punkt der man er fornøyd og man kan begynne å tenke på å publisere programmet.

Men når Windows versjoner kommer og går så kan det være enkelte ting som forandres drastisk i systemet og fra XP til Windows 7 fikk vi noen drastiske forandringer i f.eks path til environment variablene (altså hvor de enkelte systemfiler ligger).

 
For eksempel hvis vi ser på XP så er dette:
 

  •  %ALLUSERSPROFILE% C:\Documents and Settings\All Users
  • %APPDATA% C:\Documents and Settings\{username}\Application Data
  • %COMMONPROGRAMFILES% C:\Program Files\Common Files
  • %COMMONPROGRAMFILES(x86)% C:\Program Files (x86)\Common Files
  • %COMSPEC% C:\Windows\System32\cmd.exe
  • %HOMEDRIVE% C:
  • %HOMEPATH% C:\Documents and Settings\{username}
  • %PROGRAMFILES% C:\Program Files
  • %PROGRAMFILES(X86)% C:\Program Files (x86) (only in 64-bit version)
  • %SystemDrive% C:
  • %SystemRoot% C:\Windows
  • %TEMP% and %TMP% C:\Documents and Settings\{username}\Local Settings\Temp
  • %USERPROFILE% C:\Documents and Settings\{username}
  • %WINDIR% C:\Windows

----------------------------------------------------------
Og for Vista og Windows 7 er dette:
-----------------------------------------------------------

  • %ALLUSERSPROFILE% C:\ProgramData
  • %APPDATA% C:\Users\{username}\AppData\Roaming
  • %COMMONPROGRAMFILES% C:\Program Files\Common Files
  • %COMMONPROGRAMFILES(x86)% C:\Program Files (x86)\Common Files
  • %COMSPEC% C:\Windows\System32\cmd.exe
  • %HOMEDRIVE% C:
  • %HOMEPATH% C:\Users\{username}
  • %LOCALAPPDATA% C:\Users\{username}\AppData\Local
  • %PROGRAMDATA% C:\ProgramData
  • %PROGRAMFILES% C:\Program Files
  • %PROGRAMFILES(X86)% C:\Program Files (x86) (only in 64-bit version)
  • %PUBLIC% C:\Users\Public
  • %SystemDrive% C:
  • %SystemRoot% C:\Windows
  • %TEMP% and %TMP% C:\Users\{username}\AppData\Local\Temp
  • %USERPROFILE% C:\Users\{username}
  • %WINDIR% C:\Windows

-------------------------------------------------------------
Som man ser er det noen forandringer på hvor systemet finner disse variablene og programmet man har laget må kunne håndtere dette. Men som sakt dette problemet er eller skulle ikke være nødvendig å tenke på under utviklingen.
Jeg føler nå at jeg har kommet til det punkt der jeg kan begynne å finne løsninger på dette og siden jeg har en mistanke om at det finnes en mengde pc'er rundt omkring som fremdeles kjører XP (XP er vel den første versjonen av Windows som virkelig er bra!) vil jeg nå prøve å gjøre programmet kompatibelt med XP.
I Microsoft Visual C# Express 2008 som er verktøyet jeg bruker er det noen valg for nettopp dette og jeg prøver nå noen av disse, men siden jeg ikke har en pc med XP installert er det vanskelig å teste dette. Men håper noen med XP kan teste dette og gi tilbakemelding.
Når det gjelder andre ting er det faktisk så enkelt som å kompilere for x86 og at den .Net versjonen som jeg har brukt under utviklingen ikke er nyere enn den som er installert på brukerens pc. (brukeren kan oppdatere sin .Net versjon hvis det ikke er tilfellet)

Add comment


Security code
Refresh