Windows Background Service


#1

I have a customer that want an application that will listen some WS to upload and download documents. And this application need to run in service on windows. Ops… and need have an interface with some features to final user (Login, reports, etc).

So, the question is… It’s possible to do this with Electron?


#2

Others might disagree, but Electron isn’t designed to run your background services for you.
But if you write a service with something else, say a node or .net application, then you probably could use Electron to interact with that service (via bundled Node accessing Windows APIs).


#3

Right, another solution it’s create a feature like System Tray, right? Then I can schedule some jobs.

What you think?


#4

Technically, there is no reason why your app can’t do all of that, systray, services etc… It’s just that whatever you use Electron for should only be responsible for the GUI layer of your app.


#5

Hm… Thank you for reply!

So I need to do something like a dropbox client. The client will search files in the server and then get this files and to put in a directory. But in this app I need show the output in an interface. List, edit, create, delete and send documents too,

I thought with just an Electron application would supply this.

Thank you for reply again!


#6

Yea that does sound like Electron would be good for that GUI interface to manage files etc.

I’d just recommend using something else for the background service you have planned.


#7

You could do a nodejs module with a cli, ship this as part of your Electron application and create a shortcut in the Autostart settings of your OS of choice of it (hint: cli is usually found in app/node_modules/.bin/)


#8

Thanks for reply!

In this case the user need nodejs installed to execute this cli. Is that right?

I was thinking in something easy to install and use like atom (+ background process on windows).

Let me see if I understood:

Step 1 - Create a node module with all the logic of app. This include communication with the server (cloud) and the process to move all these files and directories.

Step 2 - Create an Electron app with a dependency for node_module(mentioned step 1) and my installer will start the module with the logic.

Step 3 - Create the interface for the user in the Electron app.

Step 4 - Create the installer for (windows, osx, linux) and ship.

PS: It’s my first time to build something for desktop users. I’m a web developer with this mission. So I would like to use NodeJS for accomplish this.

It’s newer and I’m excited to do this.


#9

For the node.js requirement thing… if you take a closer look at the download area at nodejs.org you can find static binaries that you can ship with your application to bundle nodejs with them: https://nodejs.org/dist/latest/win-x64/ or https://nodejs.org/dist/latest/win-x86