2011-01-24 15 views
6

È possibile creare applicazioni desktop Windows in JavaScript?Applicazioni desktop JavaScript?

Sono a conoscenza dei programmi HTA (HTML Application), ma mi chiedevo se esistesse una nuova soluzione .NET in cui poter utilizzare le librerie DLL incluse in Visual Studio.

+0

Non so molto di .NET ma Actionscript è molto simile a Javascript. Con Flex/AIR, puoi creare applicazioni desktop. – zawhtut

risposta

4

Ultima versione .NET non ha questa caratteristica, ma hai le opzioni per farlo:

a) Un WebBrowserObject in un WPF o Windows Form (sarà un programma integrato di Internet Explorer).

b) Opera Widgets, che è un motore di presentazione basata su browser Opera che consente di implementare applicazioni desktop con tecnologie Web standard e segue lo standard W3C widget. Queste applicazioni possono essere eseguite da solo, il che significa che l'utente non avrà bisogno di aprire Opera per eseguirle. C'è una controparte: Opera deve essere installata nel computer dell'utente.

Ci sono altre opzioni come Mozilla XUL, ma la sua limitata sostegno allo sviluppo applicazioni desktop potrebbero impedire l'utilizzo di esso.

+1

Sembra che proverò l'applicazione Windows Form seguendo questo tutorial: http://www.webreference.com/js/column117/index.html. Grazie! – posfan12

2

Si potrebbe utilizzare l'ambiente XULRunner di Mozilla di utilizzare locali JavaScript in un'applicazione a costruire. L'ambiente di Mozilla può sfruttare i componenti XPCOM e XPCOM components can be developed using C++.

Pertanto, un'opzione potrebbe essere quella di utilizzare questo ambiente collaudato per creare l'applicazione utilizzando JavaScript e XUL e utilizzare la potenza di C++ e DLL nei componenti XPCOM.

Esempi di applicazioni desktop sviluppate su questa piattaforma sono:

3

ci sono un paio di soluzioni là fuori che vi permetterà di pacchetto javascript/html/codice CSS in un'applicazione "nativa" multipiattaforma, solitamente completa di un programma di installazione e aggiornamento.

Fuori della parte superiore della mia testa:

  • Mozilla Prism, non in fase di sviluppo più attivo, a quanto pare. open source.
  • Adobe AIR, che in realtà non è necessario utilizzare Flash, contrariamente alla credenza popolare. attivamente sviluppato, closed source.
  • Appcelerator Titanium Desktop, che è sia open source e sviluppato attivamente.
+0

Come si crea una GUI in AIR senza Flash? Flash non gestisce tutti gli elementi grafici? Inoltre, devo acquistare Adobe IDE per svilupparlo in AIR? Nota che non mi preoccupo tanto della compatibilità multipiattaforma, sebbene sia un vantaggio. – posfan12

+0

il runtime AIR include effettivamente il webkit. Ecco un vecchio post sul blog che mostra come creare un'app HTML in puro "ciao mondo": http://filchiprogrammer.wordpress.com/2008/03/12/creating-a-sample-hello-world-adobe-air-application -con-html-and-javascript/- Per quanto riguarda la compilazione di app AIR, è possibile farlo con Air SDK gratuito di Adobe (http://www.adobe.com/products/air/sdk/). Se si desidera un IDE gratuito, FlashDevelop è probabilmente l'opzione migliore attualmente disponibile. – Metal

5

so che questa domanda è un po 'vecchio, ma ho pensato di rispondere per i Googler là fuori.

Si potrebbe utilizzare this project.È fondamentalmente un interepter javascript che ha accesso al framework .Net.

Così si potrebbe fare qualcosa di simile:

jish.assembly('path/to/System.Windows.Forms.dll'); 

var mb = jish.create('System.Windows.Forms.MessageBox'); 
mb.Show('Hello World'); 

e funziona, non ho però provato WinForms più complesse applicazioni in modo non si può dire se cadrà alla fine.

Fammi sapere se qualcuno lo prova.

Edit 1: Beh, l'ho provato con un esempio leggermente più complesso e ha funzionato anche. Prova questo:

jish.assembly('path/to/System.Drawing.dll') 
jish.assembly('path/to/System.Windows.Forms.dll') 

var app = jish.create('System.Windows.Forms.Application'); 
var form = jish.create('System.Windows.Forms.Form'); 
var lbl = jish.create('System.Windows.Forms.Label'); 
form.Text = lbl.Text = 'Hello World!'; 
lbl.Location = jish.create('System.Drawing.Point', 50, 50); 
form.Controls.Add(lbl); 

app.Run(form); 

Guido

Problemi correlati