2012-11-12 17 views
13

Sarebbe possibile codificare e compilare C#, su un Tablet Windows 8 (WinRT) (l'edizione del processore ARM)?Compilare C# su un tablet ARM Windows 8 (non per)

In sostanza si tratta di questo:

  • Esiste un compilatore C# che gira su ARM?
  • C'è e IDE che può essere eseguito in WinRT?

Se quanto sopra è vero, non vedo alcun problema, ma al momento non riesco a trovare se il compilatore C# gira su ARM (solo un sacco di messaggi sulla compilazione per ARM). Ho anche guardato SharpDevelop e ho scoperto che il loro codice sorgente viene compilato per "Any CPU", che in base a questo post: Windows RT and c# significa che verrà eseguito su ARM.

Sharpdevelop richiede tuttavia il runtime .NET "completo", che non è stato possibile trovare se WinRT lo ha o meno. Scommetto che non funziona, dato che WinRT dovrebbe essere un'edizione davvero leggera di Windows.

Come sidenote, so che i tablet Windows saranno disponibili in due edizioni, una per ARM e una per processori classici. I processori classici eseguiranno una normale edizione di Windows 8, il che significa che può eseguire tutte le applicazioni native. Compilare C# non sarebbe un problema qui - quindi la domanda è piuttosto, posso fare lo stesso su ARM?


Questo sarebbe fantastico per viaggiare e provare nuove idee rapidamente.

+1

Questo non risponde direttamente alla tua domanda, ma nel caso non lo sapessi, c'è [ShiftEdit] (https://shiftedit.net) – JMK

+2

È molto improbabile che SharpDevelop funzioni su Windows RT. A tutti gli effetti puoi considerare WinRT una piattaforma separata da "Windows .NET". Condividono una buona parte della libreria standard, ma se vuoi creare un'app GUI * devi * codificare esplicitamente le API specifiche di WinRT. – millimoose

+1

@ JMK, ShiftEdit sembra fantastico, mi ricorderò di quello strumento. :) Ma sì, non quello che stavo cercando. : P Sul percorso degli IDE online, c'è https://compilr.com/, che darò un'occhiata a. –

risposta

6

Attualmente: no e no.

Sarebbe certamente possibile creare un'app di Windows Store che contenga un compilatore IDE e C#. Tuttavia, non sarebbe possibile eseguire programmi creati con tale app. Le app di Windows Store vengono eseguite con privilegi ridotti in una sandbox. In questa sandbox, CLR caricherà solo gli assembly e gli assembly di sistema contenuti nel pacchetto dell'app. Il pacchetto dell'app è immutabile e non può essere modificato in fase di runtime.

+0

Quindi il reflection è azzoppato (nessun supporto per i codegen dinamici) quando si usa .NET in un contesto WinRT/Store? Suppongo che tu possa ancora prendere l'output e caricarlo da qualche parte, quindi installare/aggiornare il pacchetto di app appena generato da lì utilizzando lo Store. –

+0

@BenVoigt: non esiste alcun supporto per il codegen dinamico, Reflection :: Emit non è supportato, System :: Assembly :: LoadFrom non è supportato (in realtà nessuno dei metodi di caricamento è completamente supportato). Nel codice nativo, LoadLibrary e VirtualAlloc/VirtualProtect non sono supportati. È possibile utilizzare un secondo PC con Windows 8 (su x86 o x64) e comunicare in qualche modo con quella macchina e ottenere di distribuire la nuova app sul dispositivo ARM. Ma poi, se lo fai, qual è il punto di costruire l'app su ARM, in primo luogo? (perché, per esempio, non remoti nella macchina x86/x64?) –

+0

Quindi cosa è successo alle classi framework che hanno generato il codice in fase di runtime, come i serializzatori XML? Solo non disponibile? E Microsoft .NET sarà l'unico JIT mai supportato (perché Java/Python/Flash/qualunque runtime non è in grado di generare codice ed eseguirlo)? –

1

In realtà, il framework .Net sulla superficie include csc.exe, il compilatore Csharp. Ho ottenuto il codice da compilare, ma a WinRt non sembra piacere che venga eseguito senza una corretta firma.

L'IDE non accadrà per un po ', non ancora almeno. Sono sicuro che con la firma corretta, è possibile eseguire un eseguibile compilato.

Oppure l'altro ragazzo potrebbe avere ragione e non è solo un problema di firma.

Problemi correlati