Il Porting di Windows in C# GUI in C#, web app :come ottenere un lavoro out-of-the-box per Win, Mac e Linux?

StackOverflow https://stackoverflow.com//questions/9648555

  •  10-12-2019
  •  | 
  •  

Domanda

Vorrei riscrivere un'applicazione che attualmente lavora come GUI di Windows in C#.Il problema è, funziona bene su Windows, ma non è adatto per Mac e Linux a causa di problemi di interfaccia GUI con Mono.

Quindi la mia idea era di continuare con C# (necessaria a causa di un essenziale sub programma che deve eseguire C# e non possono essere portate) e provare a riscrivere come un'applicazione web che qualsiasi utente su Windows, Mac o Linux in grado di accedere facilmente e farlo funzionare.

È importante, inoltre, che la mia domanda rimane di lavoro "out-of-the-box" in quanto mira ad alta accessibilità.

Ho cercato soluzioni come :

  • KayakHTTP ma non supporta i dati POST !(necessario per una web GUI)
  • XSP2 da Mono e fare un ASP.NET MVC web app, ma è veramente il lavoro con la mia web app per fare un out-of-the-box di applicazione ?

In alternativa, avete qualche altra idea per me hanno un C# web app funzionante per gli utenti finali ?L'unica cosa necessaria sarebbe di installare Mono su Mac e Linux.

La ringrazio molto per il vostro aiuto.

EDIT 1 :Mi rendo conto che non ho spiegato tutti gli aspetti correttamente.In realtà, ci sono 2 applicazioni nel mio progetto :

  • Il NUCLEO dell'applicazione che è scritto in C# ed è troppo grande per essere portato o riscritto e, quindi, deve usare Mono per l'esecuzione su Mac e Linux
  • La mia applicazione GUI utilizzando Windows Form che è scritto in C# troppo e controlli il NUCLEO dell'applicazione

Il mio obiettivo è quello di convertire la mia applicazione GUI in una web app applicazione in modo che non c'è più il Form di Windows GUI problemi su Mac e Linux.

È stato utile?

Soluzione

È necessario che la tua applicazione principale funzioni sul client?

In caso contrario, l'approccio migliore è quello di riscrivere tutto come un'applicazione Web (ASP.NET) che funzionerà su un server Windows. Gli utenti su tutte le piattaforme di destinazione accederanno a questa app tramite un browser Web.

Se sì, allora un'app Web non è una buona idea. Non vuoi davvero richiedere un server web sui tuoi clienti. Hai due possibilità:

    .
  • Dai un'occhiata al Toolkit GUI Disponibile per MONO e selezionalo che è disponibile su tutto Le piattaforme di destinazione per evitare di avere diverse front-end per ciascuna delle tue piattaforme.
  • Per garantire la migliore esperienza utente su tutte le piattaforme è necessario scegliere il toolkit GUI nativo per ciascuna delle piattaforme e scrivere un front-end diverso per loro: usando MONO o utilizzando un ambiente di sviluppo nativo finché la tua applicazione principale ha un'interfaccia che è possibile accedere da esso (ad es. riga di comando o simile).

Altri suggerimenti

Questo è un duplicato domanda, ma non ho il tempo per trovare i duplicati.

Brevemente, la risposta è:non fare questo.Non si può tradurre un applicazione desktop per un'applicazione web su un uno-a-uno base:i due paradigmi sono troppo diverse.

Vi consiglio invece di refactoring applicazione corrente per rimuovere tutte le dipendenze sulla GUI.Quindi, scrivere una totalmente nuova applicazione web per soddisfare i requisiti, e avere l'applicazione web chiamata il codice di refactoring di applicazione desktop.

Essere consapevoli del grande, nascosto differenza tra le due piattaforme:l'applicazione web sarà in esecuzione su un server.Sarà utilizzato da più utenti allo stesso tempo, e da più thread contemporaneamente.Mentre si refactoring, essere certi di nota alcun codice per essere sensibile alla differenza.Per esempio, il codice che usi static membro campi potuto lavorare in applicazione desktop perché c'è un solo utente alla volta.In un'applicazione web, che static saranno condivisi tra tutti gli utenti e tutti i thread.

Questo potrebbe non essere quello che si aveva in mente.

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