Domanda

Microsoft ha recentemente rilasciato strumenti e documentazione per la sua nuova piattaforma Phone 7, che per la costernazione di coloro che hanno una grande base di codice C ++ (come me) non supporta più lo sviluppo nativo. Anche se ho trovato la speculazione su questa decisione viene annullata, ne dubito. Stavo pensando come praticabile potrebbe essere quella di rendere questa base di codice a disposizione Phone 7 adattandola per compilare in C ++ / CLI. Naturalmente le parti dell'interfaccia utente non potrebbe essere portato, ma non sono sicuro circa il resto. Chiunque ha avuto un'esperienza simile? Non sto parlando di codice che fa roba pesante di basso livello - ma c'è un uso abbastanza frequente di modelli e puntatori intelligenti

.
È stato utile?

Soluzione

c ++ / CLI può teoricamente essere utilizzato con WPF / Silverlight utilizzando il trucco di sostituire il C # generato dal XAML con una definizione di macro che può essere utilizzato all'interno della classe principale in un codice al file. Ho elaborato questa tecnica, ma non ho avuto la motivazione per portarlo oltre la teoria -. Sono abbastanza contento lingue di miscelazione

Per quanto riguarda utilizzando c ++ / CLI in una modalità sicura puro per il vostro codice di logica, questo potrebbe non essere ancora possibile, ma mi piacerebbe sentire come qualcuno va provando ora. Mentre la ricerca per Silverlight nel 2008 ho trovato questo scoraggiante Silverlight forum commento :

Ho appena dato Silverlight & C ++ un tentativo compilando il MSIL dal mio progetto C ++ in una DLL Silverlight-compatibili. La buona notizia: funziona, ed è possibile chiamare questo codice da un progetto di Silverlight. La cattiva notizia: il compilatore C ++ apparentemente utilizza istruzioni MSIL che Silverlight non consente

.

Quindi, se si tenta questo, anche con il più semplice dei programmi, sarà quasi immediatamente ottenere l'eccezione "Operazione potrebbe destabilizzare il runtime." Per me, questo fa sembrare meno probabile che vedremo Silverlight per C ++ presto, come il compilatore avrà bisogno di comportarsi un po 'diverso.

Altri suggerimenti

È possibile generare verificabili codice gestito in C ++ / CLI utilizzando il CLR /: opzione sicura. Il problema è che la maggior parte del vostro normale codice C ++ non viene compilato con questa opzione.

C # è attualmente l'unico supportato lingua per WinPhone7.

Mi aspetto che la SM aggiungerà il supporto per VB e C ++ / CLI anche in futuro, ma non aspettatevi di aprire il codice nativo kimono in qualunque momento presto.

codice nativo ha troppi problemi da superare, in particolare intorno a sicurezza, affidabilità, ecc codice gestito è molto più facile per verificare staticamente e molto più facile da controllare durante l'esecuzione.

Se sei arrabbiato per il porting di codice C ++ a C #, basta essere contento MS non ha forza di dover passare a Objective-C;)

Dalla nostra esperienza, i proces di porting ben scritto C ++ a C # prende in realtà molto meno fatica di quanto si possa in un primo momento si aspettano. Certo, c'è una curva di apprendimento, ma è necessario che con qualsiasi porta. Abbiamo avuto così tanto beneficio dal porting nostri motori principali app e dati per C # che abbiamo ri-lavorato tutta la nostra squadra di codice in C # e porta il nostro C # di nuovo a C ++, ove necessario, piuttosto che il contrario! Finora, abbiamo portato su solo due moduli di nuovo a C ++ e chiamiamo il nostro codice C # dal nostro codice nativo tramite interoperabilità, invece.

Ancora una volta, ricordate, WinPhone è un nuovo piattaforma utilizzando best of breed, altamente produttive, gli strumenti di sviluppo di prossima generazione e piattaforme. Non è WinMo di tuo padre.

Se il supporto per C ++ è qualcosa che si trova ad essere di fondamentale importanza, quindi assicurarsi MS sapere -. (Con rispetto e professionalità) dichiarare la propria posizione nei forum MSDN e in occasione di eventi per sviluppatori più vicino a te

Update1: 2012/12/17:

Mentre nativo C ++ ancora non è ufficialmente supportato per Windows Phone 7, Windows Phone 8 ora supporta codice nativo C ++ in modo da poter più facilmente porta la tua C esistente codebase ++ (s) a Windows Phone 8 (così come Windows 8 e Windows applicazioni desktop).

Mentre non v'è compatibilità al 100% tra le piattaforme Windows8 / Phone8 e API in questo momento, mi aspetto che le due piattaforme di diventare sempre più integrata nel prossimo paio di uscite.

Questo è particolarmente vero ora che una delle barriere chiave per una più stretta cooperazione tra Windows e gli altri gruppi di Microsoft ha recentemente lasciato l'azienda;)

Update2: 2014/04/15:

Come per i recenti annunci in // build / 2014, ora è possibile iniziare a costruire applicazioni "universali" in C ++ e XAML, C # / VB & XAML o JavaScript e HTML che verrà eseguito su Windows 8.1, Windows Phone 8.1 e Xbox Uno! Per maggiori dettagli sulla costruzione di Windows Phone 8.1 Universale Apps, leggere questo articolo .

L'idea di sviluppo intero è costruito su Silverlight. Penso che si possa aggiungere il DLL gestita scritto in C ++ senza alcun problema a questo progetto Silverlight, ma non riuscivo a utilizzare codice nativo.

Ho in programma di installare gli strumenti sulla mia macchina stasera e cercherò questo fuori.

E 'bene se MS decide di lasciare il percorso e creare qualcosa di nuovo, che è la decisione MS'. Quindi cerchiamo di affrontare la realtà. Silverlight è ancora successo. MS ha perso quota significativa a causa di Apple, Android e RIM. Gli sviluppatori di applicazioni devono semplicemente per valutare il business case per le proprie applicazioni e decidere se si sono rifugiati in un incremento di quota di Windows 7 telefono o no. Per l'azienda che ho eseguito, abbiamo deciso di non supportare più MS Windows Phone 7, non a causa di questo o l'altro motivo tecnico, ma solo perché che non credono nel ritorno del nostro investimento per la porta. Iniziamo supporto Apple, Symbian, MeeGo Andoid e in futuro, se vediamo un successo di mercato di questa nuova piattaforma. Tutto il supporto C / C ++ e ci permettono di riutilizzare la nostra comprovata core applicativi. Allora perché preoccuparsi affatto. preferenze tecnologia personale non dovrebbero essere gating. Se le preferenze personali preoccupare, quindi vorrei calci MS per la loro a me brutta cercando UI.

Thomas

scroll top