2011-01-24 17 views
6

¿Es posible crear aplicaciones de escritorio de Windows en JavaScript?JavaScript aplicaciones de escritorio?

Conozco los programas HTA (Aplicación HTML), pero me preguntaba si existía una solución .NET más nueva en la que pudiera utilizar las bibliotecas DLL incluidas con Visual Studio.

+0

No sé mucho acerca de .NET pero ActionScript es muy similar a Javascript. Con Flex/AIR, puede crear aplicaciones de escritorio. – zawhtut

Respuesta

4

Última versión .NET no tiene esa característica, pero has opciones para hacerlo:

a) Un WebBrowserObject en un WPF o aplicación de Windows Forms (que va a ser un objeto incrustado de Internet Explorer).

b) Opera Widgets, que es un motor de presentación basado en el navegador Opera que le permite implementar aplicaciones de escritorio con tecnologías Web estándar y sigue el estándar Widgets W3C. Estas aplicaciones pueden ejecutarse de manera independiente, lo que significa que el usuario no necesitará abrir Opera para ejecutarlas. Hay una contraparte: Opera debe instalarse en la máquina del usuario.

Existen otras opciones como Mozilla XUL, pero su soporte limitado para el desarrollo de aplicaciones de escritorio le impediría usarlo.

+1

Parece que voy a probar la aplicación Windows Forms siguiendo este tutorial: http://www.webreference.com/js/column117/index.html. ¡Gracias! – posfan12

2

Puede utilizar el entorno XULRunner de Mozilla para utilizar JavaScript local en una aplicación que cree. El entorno de Mozilla puede aprovechar los componentes de XPCOM y XPCOM components can be developed using C++.

Por lo tanto, una opción podría ser usar este entorno probado para construir su aplicación usando JavaScript y XUL, y usar el poder de C++ y DLL en los componentes de XPCOM.

Ejemplos de las aplicaciones de escritorio desarrollados en esta plataforma son:

3

Hay algunas soluciones por ahí que le permitirá paquete javascript/html/código css en una aplicación "nativa" multiplataforma, generalmente completa con un instalador y un mecanismo de actualización.

De la parte superior de mi cabeza:

  • Mozilla Prism, que no están bajo desarrollo activo más, al parecer. fuente abierta.
  • Adobe AIR, que en realidad no tiene que usar Flash, contrariamente a la creencia popular. activamente desarrollado, fuente cerrada.
  • Appcelerator Titanium Desktop, que es tanto de código abierto como desarrollado activamente.
+0

¿Cómo se crea una GUI en AIR sin Flash? Does not Flash maneja todos los elementos gráficos? Además, ¿necesito comprar Adobe IDE para desarrollar en AIR? Tenga en cuenta que no estoy tan preocupado por la compatibilidad multiplataforma, aunque es una ventaja. – posfan12

+0

el tiempo de ejecución de AIR realmente incluye webkit. Aquí hay una antigua publicación de blog que muestra cómo hacer una aplicación de aire HTML pura de "hello world": http://filchiprogrammer.wordpress.com/2008/03/12/creating-a-sample-hello-world-adobe-air-application -with-html-and-Javascript/- en lo que respecta a la compilación de aplicaciones de AIR, puede hacerlo con Air SDK gratuito de Adobe (http://www.adobe.com/products/air/sdk/). Si desea un IDE gratis, FlashDevelop es probablemente la mejor opción actualmente disponible. – Metal

5

Sé que esta pregunta es un poco viejo, pero pensé que me gustaría responder por los empleados de Google por ahí.

Puede usar this project.Es básicamente un intérprete de JavaScript que tiene acceso al framework .Net.

Por lo que podría hacer algo como:

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

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

y funciona, sin embargo, no he intentado WinForms aplicaciones más complejas por lo que no puede decir si se va a caer con el tiempo.

Avísame si alguien lo intenta.

Edit 1: Bueno, lo probé con un ejemplo un poco más complejo y funcionó también. Prueba esto:

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

Cuestiones relacionadas