Komponenter

Den mytiske 'Vista Application'

2017 Personality 01: Introduction

2017 Personality 01: Introduction
Anonim

Jeg elsker analytikere. Uanset om det forudsiger morgendagens næste store ting eller kaster dødsbrøjen til gårsdagens industristasetter, går analytikere aldrig ud af nye måder at få det galt.

Case in point: Windows Vista og "app gap". Evans Data Corporation (EDC) , skriver mindre end 10 procent af udviklerne for Microsofts nuværende topmoderne. De fleste (49 procent) skriver stadig for XP, mens en lille, men voksende, kontingent (13 procent) fokuserer på Linux. I mellemtiden fortsætter de utallige store medier, der mangler nye Vista-applikationer. "Det er OS'et, som ingen ønsker", siger de, og udviklerne "reagerer i overensstemmelse hermed." Selvfølgelig er de forkerte. Igen.

[Yderligere læsning: Vores bedste Windows 10-tricks, tip og tweaks]

Du ser, der er ikke sådan noget som et Vista-program. Ligesom der ikke er noget som en XP-applikation. Eller en Windows 2000-applikation. Udviklere, der skriver til Windows, søger sjældent en bestemt version. I stedet vælger de en bestemt API-ramme - for eksempel MFC / ATL eller.Net - og fortsætter derfra. Hvorvidt den resulterende applikation kører på en given Windows-version afhænger af, om der er nogen versionsspecifikke API-udvidelser, som udvikleren anvender i deres projekt.

For de fleste applikationstyper er dette et nonissue: De bruger den generiske API-funktioner, som gør det muligt for dem at køre på tværs af enhver version af Windows, der understøtter denne ramme. Og da Microsoft gør et godt stykke arbejde med at sende nye rammer til sine gamle OS-platforme, er udviklerne sjældent konfronteret med et valg mellem rich API-funktionalitet eller en bred installeret base (den bemærkelsesværdige undtagelse er videospiludviklere, for hvem der udnytter DirectX 10 forpligter sig til Vista).

Så hele Vista "app gap gap" argumentet er lidt af en halm mand. Det virkelige spørgsmål bør være: Hvorfor udvikler ikke udviklere de forskellige iterationer af. Net-rammen? Som enhver, der følger Microsofts udviklingsplan, vil det vise sig, at størstedelen af ​​virksomhedens banebrydende API-udvikling finder sted inden for.Net. Faktisk, når "eksperterne" taler om nye programmatiske ressourcer i Vista - Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) osv., Taler de faktisk om.Net Framework 3.0. Og siden.Net 3.0 er tilgængelig på platforme på down-level (som f.eks. Windows XP), går argumentet rundt om et spørgsmål om. Net accept blandt udviklere - og hvorfor de har (hidtil) afskåret det. svaret er to gange: For det første kan udviklere ikke lide at målrette API'er, der ikke er bredt tilgængelige på tværs af den installerede base. På trods af Microsofts aggressive understøttelse af versioner på down-level er der stadig stor forskel mellem "tilgængelig" og "tilgængelig efter download af 20 MB plus af komplekse biblioteker og at have dem installeret på tværs af forskellige dele af dit system." Faktum er, at.Net ikke afsendes som en del af Windows XP, og det betyder, at udviklere skal overbevise brugerne om først at installere den nødvendige version af.Net-rammen, før de kan installere et stykke software - ikke altid en let sælger, især i den låste IT-verden.

Som det første OS, der skulle leveres med.Net-rammen, der blev installeret som standard, skulle Vista tilskynde til udvikling af.Net 3.0-applikationer. Men da det også understøtter gamle Win32-, COM-, ATL-, MFC- og down-level. Net rammeprogrammer, er der ingen reel mangel på Vista-programmer. Faktisk, medmindre du lige skal have den nyeste og bedste WPF / WCF-rammefunktionalitet, er der ikke meget at motivere dig, udvikleren til at gøre hoppet til.Net 3.0 eller endda 2.0. Hvis du antager, at du ikke støder på UAC-mekanismen (User Account Control), ser dit "arven" Windows-program sandsynligvis ud og fungerer godt under Vista, som det er. Jeg ved, fordi det var tilfældet med min egen kode: Et par tweaks til at rumme UAC (for det meste skifte nogle midlertidige filer væk fra nyligt beskyttede katalogstrukturer) og mine applikationer og tjenester løb som champs under Vista - ligesom de gør under Windows XP, Server 2003 og Windows 2000. Hvorfor rette den, når den ikke er brudt?

Den anden grund til, at udviklere har afskaffet. Net er, at det er langsomt. Mange fælles funktioner tager bare længere tid under. Net, hvilket tvinge udviklere til at vælge mellem API-raffinement og rå ydeevne. Ikke overraskende vælger de fleste udviklere sidstnævnte, da jeg engang var tvunget til at gøre, da jeg opdagede, at.Net-ækvivalenten af ​​Performance Data Helper (PDH) var alt andet end ubrugelig til realtidsprøvetagning af Windows Performance-tællerdata. Som et resultat er jeg nødt til at opretholde en aldrende (omkring 1997) Visual Studio 6-kodebase, mens jeg venter på, at Microsoft endelig strømliner. Net til et punkt, hvor det er et rentabelt alternativ. Det er en gammel historie og alt for almindelig blandt Windows-udviklere.

Bottom Line: Når analytikere (og deres mediapræsentanter) afkaster manglen på "Vista-applikationer", tømmer de bare deres egen uvidenhed.

Jeg gætter, det er en Mac ting: Så mange af mine samtidige er blevet fanget i realitetsforvrængningsfeltet, at ideen om en forbindelse mellem API-funktionalitet og OS-version er blevet en accepteret del af den konventionelle visdom. Det er en ærlig fejl, der svarer til Apples arkaiske patchwork af versionsafhængigheder til Microsofts ufuldkomne, men langt mere fleksible API-udbredelse.

For meget frugt vil gøre det for dig.