This documentation is in still being developed and we think these sections should be added. Feel free to contribute.
Electron calls this the Renderer process and uses Chromium in a native window. Chromium is downloaded with each app.
Photino tries to use whatever is normally included in the OS:
- Windows - Chromium Edge WebView2
- Linux - WebKitGTK+2
- Mac - WKWebView
Electron calls this the Main process and uses Node.js which is downloaded with each app.
Photino.Native can be wrapped for any back end (C++, Rust, etc.).
Photino.NET uses .NET 5 (or later).
Electron uses custom inter-process communication (IPC). The ipcMain and ipcRenderer libraries use ‘channels’- strings that identify which listener to use on the other end. ipcRenderer – can call all Node.js APIs e.g. const root = fs.readdirSync(‘/’)
because everything is JavaScript in Electron applications and JavaScript code can be marshalled between processes as strings.
Photino.NET uses memory streams to communicate with the Photino.Native process and ‘schemes’; which are outlet points in the HTML. The standard is to transfer a JSON payload which includes a unique message id, the name of the method to call, any parameters to pass and to receive a JSON payload containing the unique message id of the original call and any response data.
In addition, it's common for Photino.NET projects to host REST services which can be called from the browser control using standard JavaScript in a commonly used communication pattern.
Electron uses electron-forge, or electron-builder, or electron-packager. Photino uses standard .NET distribution methods. Manual Distribution
Electron maintains update.electron.js, free open-source webservice for self-updating. Developers can use the update-electron-app module package to initiate updates from the application. Alternately, deploy your own update server (3 to choose from).
Photino
Electron Supports a JavaScript notification API for the Renderer process and a Notification module for the main process.
Electron supports the recent document functionality built into Windows and Mac.
Electron supports icon with progress indicators on Windows, Mac & Unity.
Electron supports the Mac Doc.
Electron supports the Windows task bar.
Electron supports Represented Files on Mac OS Browser Windows
Electron supports iFrame, WebView (deprecated), BrowserView (overlaid on top of DOM)
Electron supports BoilerPlate-CLI and there are various tools to help users create new projects. Photino.NET supports project templates in Visual Studio as well as the dotnet CLI
Must be built specifically for Electron.
Menu | Electron (electronjs.org) MenuItem | Electron (electronjs.org)
dialog | Electron (electronjs.org)
crashReporter crashReporter | Electron (electronjs.org)
Electron supports Shell shell | Electron (electronjs.org) **Photino.NET supports anything you can do in .NET, including shelling out to the operating system.
Both Electron and Photino support hiding the native window's title bar and creating a custom title bar in HTML.