Troppe novità tutte insieme (1 di 2)

build_logoChe il //build fosse una conferenza dalle grandi novità ce lo aspettavamo un po’ tutti, ma che oltre a Windows 8 fossero mostrate tutte le next release dei principali tool e framework mi ha lasciato un po’ spiazzato; talmente spiazzato che questo post esce in ritardo rispetto a molti blogger in quanto ho dovuto metabolizzare tantissime informazioni J.

In ogni caso procediamo con ordine e vediamo tutte le novità lato dev che ci riguardano:

Retrocompatibilità

Steven Sinofsky durante la keynote ha dichiarato che tutte le applicazioni funzionanti in Windows 7 saranno funzionanti anche nella prossima release del sistema operativo. Questo vuol dire che, nonostante le importanti novità che elencherò di seguito, non dobbiamo allarmarci J.

Metro UI, Store ed altre novità

Sicuramente come news principale c’è la nuova Metro UI, ossia una nuova interfaccia inizialmente pensata per il mondo touch, ma poi effettivamente utilizzabile anche da chi come me non ha un device touch. A dimostrazione, il menù start non esiste più e, premendo il pulsate cuore di Windows, si accederà direttamente alla nuova Metro UI, dove è possibile effettuare ricerche o eseguire applicazioni.
Inizialmente questo nuovo comportamento può lasciare l’utente un po’ spiazzato ma poi, una volta abituatisi, risulta molto comodo e pratico.

image

Oltre ad essere molto reattiva, la parte Metro si può “unire” al classico desktop creando così un’ibrido dove, sulla parte sinistra possiamo tenere un’applicazione Metro Style e dall’altra una comunissima applicazione o il desktop stesso. Oltre a ciò è possibile “pinnare” sulla Welcome Page (e quindi la Metro UI) un po’ tutto, da applicazioni Metro a Visual Studio, un po’ come avviene per Windows Phone.

Per quanto riguarda la parte desktop, rimane (per ora) un po’ tutto come prima, ci sono alcune novità ma diciamo pure che l’habitué Windows non si troverà spiazzato.

Oltre alle novità legate alla UI, ne sono state mostrate parecchie altre: lo Store App (non ancora disponibile se si installa Win8), il Sync dei Settings (sfruttando Windows Live si avranno a disposizione le stesse cose per i differenti device, tablet, pc, phone, etc), Hyper-V direttamente nel sistema operativo, mount delle iso (stile Daemon Tool per intenderci), supporto al multi-monitor migliorato, controllo ortografico su tutto il sistema operativo, un minor consumo della ram (circa il 20% in meno rispetto a Windows 7), un avvio in pochi secondi (dai 4 agli 8 a seconda dell’hardware), un nuovo task-manager e, grazie ad una sorta di hibernate delle applicazioni (zero cicli di clock ma l’applicazione rimane aperta) sembra che la durata della batteria sia migliorata.

Sviluppo.

Con Windows 8 è stato introdotto un nuovo stack chiamato Metro Style che, come è facilmente intuibile dal nome, serve a realizzare applicazioni per la UI Metro. Ovviamente, per garantire la retro compatibilità sopra citata, il classico stack Win32/.NET rimane, ma non sarà possibile realizzare un’applicazione che utilizzi entrambi gli stack. Questo vuol dire che se si vogliono coprire entrambi gli scenari, Metro e Win32, è necessario realizzare due applicazioni.

C/C++, XAML, C#, VB, HTML, Javascript

Chi più ne ha più ne metta! Sono questi i Framework/linguaggi che si possono utilizzare oggi per sviluppare applicazioni metro style, e tutti fanno capo ad un “sotto strato” chiamato WinRT (Windows Runtime) che altro non è che un set di API verso il kernel di Windows.
La slide seguente mostra un po’ più nel dettaglio come è strutturato lo sviluppo in Windows 8.

image

Come potete vedere, lo XAML ora non è più parte del .NET Framework ma è presente direttamente nel sistema operativo, offrendone così la possibilità di utilizzo anche da linguaggi unmanaged come il C, o il C++.

Un’altra novità che mi ha colpito in questa slide è l’assenza di Silverlight per lo sviluppo di applicazioni Metro Style, rilegandolo così nell’angolino in basso a destra.

HTML + Javascript


Direi che è il vero protagonista (devside)! Di fatto ha molto più spazio ed importanza rispetto a Silverlight e apre nuove opportunità a tutti gli sviluppatori di frontend (HTML/Javascript). Ad oggi conosco diversi sviluppatori di frontend che, dopo la presentazione di Windows 8, si sono dimostrati interessati a sviluppare applicazioni per Windows.

Quale linguaggio scegliere?


Beh difficile dirlo. In primis lo skill la fa da padrone. Se si è abituati a scrivere solo codice C# (non tutta la BCL è disponibile per le Metro Apps) e non si conosce il Javascript, la risposta vien da sola J.
Personalmente vedo una grande crescita del C++ nello sviluppo di applicazioni Windows e, volendo azzardare un po’, scegliere il Javascript+HTML5 per applicazioni che non necessitano di performance o calcoli troppo complessi, ed il C++ per le applicazioni in cui la velocità è il primo pillar, può essere la scelta giusta.
Un altro vantaggio del C++ e della coppia HTML+JS è la non necessità del .NET Framework. Questo offre vantaggi in fase di deploy e dipendenze.

WinRT

Sopra ho accennato di cosa si tratta, ma è giusto approfondire un po’, riportando alcuni punti scritti da SuperRaf in questo post.

    • È il Windows Runtime che espone le funzionalità del sistema operativo in modo Object Oriented.

    • Non è codice managed e non necessita del .NET Framework. (Javascript, HTML, C e C++ non lo richiedono)

    • Ha delle "Projection" che permettono ai vari linguaggi di interagire con il sistema operativo (C++, C#, VB.Net, Javascript)

    • I linguaggi managed sopra WinRT hanno sempre bisogno del CLR e il Framework fornito con Win8 è la versione 4.5

    • WinRT è costruito con tecnologia COM e conserva tutti i relativi meccanismi (IUnknown, AddRef/Release, Apartment per i modelli di threading, la message pump per gestire le STA).

    • È possibile estenderlo, ma solo per una singola applicazione e quindi non condivisibile.

    • Il versioning di WinRT è basato sui concetti COM e prevede le estensioni che verranno nelle future versioni del sistema operativo

    Domande, dubbi e perplessità:

    • Ma WPF che fine ha fatto?
    • Perché Silverlight è stato escluso dalla parte Metro UI?
    • Il .NET non la fa più da protagonista come prima?

    Un grande passo in avanti e veramente tante novità...non saprei da dove partire! Anzi si, dal download disponibile qui e dalle sessioni qui.


    Comments