Windows 10 og utvikling – what’s in it for me?

Windows 10 er rett rundt hjørnet som i seg selv er et kjempesprang inn i fremtiden. Ikke bare ser Windows annerledes ut, men det er gjort veldig mye på brukeropplevelse og tilpasninger for de ulike bruksmønstrene man har med ulike enheter. I tillegg har man jobbet veldig mye med det som er bak kulissene for å være klar for fremtiden i mye større grad. Med alt som er nytt i Windows 10 er det jo også da en hel del nye ting for deg som utvikler.

 

Frontend

Har du allerede en løsning som fungerer i Windows 8.1, vil denne løsningen bare fungere og sett fra et utviklingsperspektiv vil du kunne benytte de bibliotekene du allerede har benyttet uberørt. I bunn ligger fremdeles Win32 og muliggjør nettopp dette. Så har du en kodebase basert på Win32 direkte eller Windows Forms eller WPF, så vil dette både kjøre – samt også kompilere med Visual Studio 2015.

 

Windows Forms

I tillegg til å bare fungere, så er det gjort noen forbedringer på eksisterende APIer. For Windows Forms er det gjort minst, her har High DPI støtte stått i fokus. Det er bygget videre på det arbeidet som ble gjort i .NET 4.5.2 for dette og inkluderer nå støtte for følgende controls: DataGridView, ComboBox, ToolStripComboBox, ToolStripMenuItem, Cursor, DomainUpDown, NumericUpDown, DataGridViewComboBoxColumn, DataGridViewColumn og ToolStripSplitButton. For å støtte HighDPI i din løsning må du legge til et element i app.config:

<appSettings>
<add key=»EnableWindowsFormsHighDpiAutoResizing» value=»true» />
</appSettings>

 

WPF

Med .NET 3.0 som ble sluppet i 2006 ble det introdusert en ny måte å gjøre brukergrensesnitt på, et nytt markup språk og et helt nytt API. WPF har etter hvert blitt for veldig mange det man benytter for å lage Windows desktop applikasjoner. Og er videreført og utvidet i Windows 10. Mange har lurt på hva som har vært fremtiden for WPF og stillheten ble brutt av teamet med en roadmap i november.

Hovedpunktene som er forbedret:

· Transparente child windows

· Cursor filer med multi-image støtte

· Blend har en forbedret brukeropplevelse som ligger tettere opp mot Visual Studio sin look’n’feel

· Forbedring av touch og gestures

· Feil rapportert av kunder

· Nye debugging muligheter med live visualisering av det visuelle treet

· Timeline verktøy for å lettere se flaskehalser i løsningen

clip_image002

 

Universal Apps

Med Windows 8 introduserte man en ny runtime som het WinRT (Windows Runtime). Dette var modellen som ble benyttet i alle Windows Store baserte apps. Dette ble videre utvidet til å være tilsvarende i Windows Phone med Windows Phone 8.1. Både runtime og APIene ble da tilgjengelig her med målsetning om å kunne skrive mesteparten av koden en gang men kunne kjøre både på en vanlig Windows maskin og en Phone. Det var noen subtile forskjeller og APIene var ikke fullt ut implementert på alle områder for Windows Phone. Dette har nå endelig nådd det neste nivået og man kan med Windows 10 lage universal apps som ikke bare er for Windows og Windows Phone, men på langt flere steder.

clip_image004

Ikke bare er det en runtime og et API, men det er også en felles store for applikasjoner utviklet på denne runtimen. Dette gjør det mulig å lage løsninger som krysser et bredt spekter av enheter og gjør dette så sømløst for deg som utvikler som mulig.

· Adaptive UX – gjør det mulig å kunne tilpasse brukeropplevelsen i forhold til skjermstørrelse, samt enheten og mulighetene den har (Touch, Pen osv). Dette kan minne litt om det som på web kalles for responsive UI, men med fokus på enda mer enn bare skjermstørrelse / vindu størrelse som oftest blir assosiert på web.

· Muliggjør bruk av såkalte «natural inputs» i dine løsninger med tilgjengelig APIer for penn støtte, speech recognition og ting som øye tracking.

· Action center – tilgang til notification hubben i Windows.

Du finner mer informasjon om dette på Windows bloggen.

 

Apache Cordova + WinJS

Med muligheten for å lage løsninger med omtrent de verktøyene og fremgangsmåtene som du ønsker, er også støtten for Apache Cordova veldig interessant. Cordova er en plattform som muliggjør det å lage native applikasjoner med bruk av web teknologier (HTML, CSS og JavaScript). I Visual Studio 2015, out-of-the-box, har man muligheten til å bygge for akkurat dette. Sammen med WinJS kan man lett lage applikasjoner som har riktig look’n’feel for typisk Windows Store apps på kryss av devicer. Både Cordova og WinJS er open source. Du finner mer informasjon i følgende blogposts:

https://blogs.msdn.com/b/visualstudio/archive/2015/04/30/introducing-the-windows-10-apache-cordova-platform.aspx

https://blogs.windows.com/buildingapps/2014/10/23/apache-cordova-and-winjs/

 

Edge

Med Windows 10 lanseres også samtidig den nye nettleseren Edge som legger fortiden med Internet Explorer bak seg. Edge har en helt ny rendering engine som har hatt standardene rundt HTML5 og CSS3 samt hastighet som hoved fokusområder. Edge representerer en plattform for Microsoft til å kunne bygge på i fremtiden for nettleser. Motoren er også den samme på kryss av alle enheter som kjører Windows 10 og gir sluttbrukeren en mer konsekvent opplevelse. I Edge er det også en ny JavaScript motor som også har fått et sterkt fokus på hastighet. I desktop og universal apps ved bruk av WebView er det Edge som benyttes. Det er også mulig å publisere Web Apps til store hvor man pakker en web site og tilgjengeliggjør den via Windows store.

Internet of Things

Det siste året har det vært mye snakk i bransjen om IOT – Windows 10 støtter også opp om dette med en egen utgave for enheter som er ofte brukt som blant annet Raspberry PI og Arduino. Med universal app modellen kan man faktisk også lage løsninger som fungerer direkte på disse. Fra Visual Studio 2015 vil du kunne direkte kjøre opp løsninger og få hele den utviklingsmodellen og verktøysettet du er vant med. Les mer på Windows on Devices.

 

Cloud

Skyen er kommet for å bli, mer og mer av våre daglige interaksjoner med software er knyttet direkte eller indirekte til skyen. I utviklingsmodellen for Windows 10 er det gjort lett tilgjengelig og mulig å integrere en del av tjenestene som Microsoft tilbyr via Azure.

· Windows Notification Services for push notification meldinger

· Windows Roaming data for å kunne ha data knyttet til applikasjonen din som er tilgjengelig på flere enheter

· Windows Credential Locker for å kunne lagre påloggingsinformasjon på kryss av enheter

· Cortana AI – personlig assistent løsningen som Windows selv benytter

· OneDrive – lagring av data gjerne produsert av løsningen din til en harddisk i skyen

· Application Insight for å lettere få oversikt over hva som skjer i løsningen i produksjon.

 

Konklusjon

Windows 10 representerer et kvantesprang for utviklere. Med stort fokus på tilgjengeliggjøring og produktivitet. Kunnskapsmessig vil du kunne ta eksisterende kunnskap og videreføre, som gjør at terskelen for å komme i gang er lav. Når man først er i gang kan begynne å dra nytte av de nye mulighetene.

Happy coding!