Domanda

La mia azienda ha un'applicazione WinForm già esistente che è in esecuzione su WinXP. L'applicazione esegue un sacco di elaborazione del suono utilizzando DirectSound.

La mia azienda vorrebbe valutare Mono, in alternativa al costo per workstation rispetto a Vista / Win Server 2008.

Ho sentito che stime diverse, che vanno da "funzionerà facilmente su Mono" a "potrebbero richiedere mesi di ricodifica in alcuni casi per far funzionare un'app WinForm con Mono su Linux".

Qualcuno ha una buona esperienza nel mondo reale con questo? Un buon riferimento di collegamento? Vorrei avere un'idea migliore prima di impegnarmi in test.

Grazie!

È stato utile?

Soluzione

La parte di WinForms sarà semplice, potresti dover fare ben poco poiché Mono ora afferma di supportare Winforms al 100%, tuttavia tutte le chiamate DirectSound dovranno essere riscritte per usare un'API disponibile su Linux, essendo ALSA la scelta ovvia .

Ho scritto piccole app in VS 2005 e le ho portate facilmente su Mono. Se esegui molte P / Invoke, dovrai tenerne conto, poiché potrebbe essere necessario riscriverle o ripensarle completamente.

Inoltre, controlla MOMA : " Lo strumento Mono Migration Analyzer (MoMA) ti aiuta identificare i problemi che potresti avere durante il porting della tua applicazione .Net su Mono. Aiuta a individuare chiamate specifiche della piattaforma (P / Invoke) e aree che non sono ancora supportate dal progetto Mono. & Quot;

Altri suggerimenti

Mono può aiutarti a spostare il codice gestito, ma non ti aiuterà a spostare il livello audio.

Purtroppo, il framework .NET non fornisce un'API completa per l'elaborazione audio. Fornisce semplicemente un modo per riprodurre un piccolo campione sonoro, e non è nemmeno molto bravo in questo (vedi il post di Jeroen sugli intervalli audio quando si esegue l'emulatore C64 sotto IKVM).

Dovrai ricercare quale API Linux si adatta meglio a ciò che la tua applicazione audio sta facendo.

Il blog di Lennart Poettering sull'audio è un ottimo punto di partenza:

http://0pointer.de/blog/projects/guide -to-sound-apis.html

Una volta deciso su un'API, proprio come in Windows, dovrai P / Invocare l'API giusta per te.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top