JavaScript desktop applications?
Asked Answered
D

5

7

Is it possible to create Windows desktop applications in JavaScript?

I am aware of HTA (HTML Application) programs, but was wondering if there were a newer .NET or other solution where I could make use of the DLL libraries included with Visual Studio.

Departmentalize answered 24/1, 2011 at 10:25 Comment(7)
I don't know much about .NET but Actionscript is very similar to Javascript. With Flex/AIR, you can create desktop applications.Mauceri
Possible duplicate of Can you do Desktop Development using JavaScript?Capri
@EmileBergeron Actually, this one seems to be pretty .net-specific and not a dupeSinglestick
@Singlestick It's quite old, but it also sounds a lot like an XY problem, where OP thought that leveraging .NET was the solution.Capri
@EmileBergeron I understood the ability to call .net APIs from the application as a requirement, not as a solution idea. But yeah, it's old and probably still off-topic, so let's just leave it at that.Singlestick
@EmileBergeron is correct, except that this thread has better answers.Departmentalize
Yes, the answers are divided between a lot of different questions and I don't believe any deserve to be removed, but definitely linked together (I chose the oldest as the dupe target but newer questions tends to have more relevant answers)Capri
C
5

Latest .NET version doesn't have such feature, but you've options to do it:

a) A WebBrowserObject in a WPF or Windows Forms application (it'll be an embedded Internet Explorer).

b) Opera Widgets, which is a Opera browser-based presentation engine which lets you implement desktop applications with standard Web technologies and it follows the W3C widgets standard. These applications can run standalone, meaning that user won't need to open Opera to run them. There's a counterpart: Opera must be installed in user's machine.

There're other options like Mozilla XUL but its limited support for desktop application development would prevent you from using it.

Crumpled answered 24/1, 2011 at 10:33 Comment(1)
Looks like I'll be trying the Windows Forms application by following this tutorial: webreference.com/js/column117/index.html. Thanks!Departmentalize
C
5

I know this question is a bit old, but I thought I'd answer for the googlers out there.

You could use this project. Its basically a javascript interepter that has access to the .Net framework.

So you could do something like:

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

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

And it works, I've not however tried more complex winforms apps so can't say whether it will fall down eventually.

Let me know if anyone tries it.

Edit 1: Well I tried it with a slightly more complex example and it worked also. Try this:

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

Cassell answered 13/6, 2011 at 4:32 Comment(0)
E
3

There are a few solutions out there that will let you package javascript/html/css code into a cross-platform "native" application, usually complete with an installer and updating mechanism.

Off the top of my head:

  • Mozilla Prism, not under active development anymore, apparently. open source.
  • Adobe AIR, which doesn't actually have to use Flash, contrary to popular belief. actively developed, closed source.
  • Appcelerator Titanium Desktop, which is both open source and actively developed.
Eduino answered 24/1, 2011 at 10:40 Comment(4)
How do you create a GUI in AIR without Flash? Doesn't Flash handle all the graphical elements? Also, do I need to purchase the Adobe IDE in order to develop in AIR? Note that I am not so much concerned with cross-platform compatibility, though it's a plus.Departmentalize
the AIR runtime actually includes webkit. Here's an old blog post showing how to make an "hello world" pure HTML air app: filchiprogrammer.wordpress.com/2008/03/12/… - as far as compiling AIR apps, you can do it with Adobe's free Air SDK (adobe.com/products/air/sdk ). If you want a free IDE, FlashDevelop is probably the best option currently out there.Eduino
Let's not forget about Nokia's popular Qt. Their latest Qt 5 implemented the GUI widget framework Qt Quick 2, which allows defining the windows, controls, and event handlers in Javascript, so simple apps (no persistence, no sockets, etc., but there is a graphics device) could be developed in Javascript only, but classes that allow persistence etc. could be exposed to Javascript from C++. For example a calculator could be made in Javascript alone, I think. Oh and Qt is cross-platform and builds cross-platform apps, and it's free to use for open-source projects.Hagfish
Oh and there's also [Qt WebEngine] (doc.qt.io/qt-5/qtwebengine-overview.html) you can use to display web content inside desktop applications, which is more along the lines of your description. Of course, these components (Qt Quick and WebEnginge) did probably not exist at the time of your comment in 2011.Hagfish
F
2

You could use Mozilla's XULRunner environment to utilize local JavaScript in an application you build. Mozilla's environment can take advantage of XPCOM components, and XPCOM components can be developed using C++.

Therefore, one option could be to use this tried and tested environment to build your application using JavaScript and XUL, and use the power of C++ and DLL's in the XPCOM components.

Examples of desktop applications developed on this platform include:

Fleetwood answered 24/1, 2011 at 10:38 Comment(0)
D
1

You can use WebKit in a WinForms application (the HTML engine used in Safari and Google Chrome).

.Net control: http://webkitdotnet.sourceforge.net/

Deadening answered 24/1, 2011 at 10:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.