Post by enoquickNon credo che sia un obbligo usare una sandbox
Se lo fosse occorre portare anche la sandbox in win7 e xp
Tutte le app "Modern UI" (quelle full screen win8) possono solo girare
nella sandbox.
Il Windows Runtime non è trasportabile su altri OS perché è parte di
Windows. Il fatto che usa direttamente i servizi del kernel è uno dei
motivi per cui non è portabile.
Post by enoquickVa bene,ma qui non si parla di installazione
Si spacca il package e si fa una installazione manuale
Non girerebbe comunque, oltre al fatto che le risorse contenute nel
package non sono riferite per folder locale ma per Uri ms-appx://
Post by enoquickIl windows runtime è un componente lui stesso ed una volta caricato l'
applicativo in memoria diventa una estensione dell' applicativo
Il Windows Runtime non è un componente ma una infrastruttura composta
da core services e librerie.
Il runtime usa diversi processi a contorno che vengono usati dalle
applicazioni come broker.
Post by enoquickQuindi, lascio stare la dizione applicativo che non è appropriata e passiamo
al momento dell' esecuzione
A questo punto abbiamo un processo e se lui stesso usa le vecchie API
teoricamente potrebbe girare
Dubito comunque che Windows Runtime usi solo vecchie API
Ripeto, non è solo una questione di API ma il fatto che WinRT è parte
integrante di Win8.
Oltre al fatto che è legato al kernel di Win8, in qualsiasi caso i
componenti di sistema non possono essere copiati per motivi legali.
Post by enoquickwin7 e XP supportano .NET
Chiaramente anche qui vale lo stesso discorso delle API
Occorre una compatibilità di API .NET,meglio ancora la stessa versione di
.NET
Ripeto, non è solo una questione di API.
Le Portable Class Library sono state fatte apposta per questo scopo.
Per esempio la INotifyPropertyChanged di WinRT è, come tutto il codice
WinRT, nativo (C++). Quando si crea una applicazione .NET per Win8
vengono generati in automatico dei wrapper che rimappano quella
interfaccia su quella .NET. Questo meccanismo si chiama Projection e
ovviamente fa molto di più (rimappa il type system etc. etc.).
Ergo la DLL deve essere differente affinché il CLR possa sapere se sono
necessarie le projection o meno.
Post by enoquickVa bene, non è obbligatorio usarle tutte
Ma a questo punto mi chiedo,in win7 e precedenti si possono usare API
insicure ?
forse non ho capito la domanda, ma in Win7 non è cambiato nulla. Le API
sono sempre quelle e da desktop sono 'insicure' by design.
Le App nuove Win8 hanno limitato le API in modo da evitare che una app
possa danneggiare altre app, il sistema operativo o il profilo utente.
Questo è il motivo per la sandbox.
Post by enoquickI COM esistono anche in win7 e XP, anche qui deve esistere la compatibilità
Si purché:
- siano prive di registrazione regsvr32 ("registration free")
- usino solo API Win32/COM che siano tra quelle ammesse per le app win8
--
Raffaele Rialdi http://www.iamraf.net
Weblog: http://blogs.ugidotnet.org/raffaele
Microsoft MVP profile
https://mvp.support.microsoft.com/profile/raffaele
UGIdotNET - http://www.ugidotnet.org/