0

I'm currently making an desktop application for the company I work for. The goal of the application is to control the flow of a manufacturing process and it will be used by 5-7 user (working of remote desktop clients) with different UI windows, two to input orders into a database and the remaining (like in a manufacturing assembly-line) change the status of those orders until complete.

I started building the application in C# Windows forms with a SQLite db for data storage and rendering the views with CEFSharp (Chromium).

My original idea was to somehow deploy the application in the network, perhaps just using the DLLs and .exe and monitor the database for changes to update the views. I've since seen that SQLite not having a server will make listening to the db difficult.

I thought about trying to create a timer tick in the client to check for changes or perhaps have a service that starts as soon as one client is using and passes messages between themselves (signalr or a socket) but I don't know the implication of that on the network.

I'm locked into a corner due to the restrictions imposed by the business and I'm afraid I'm creating a broken application from the start.

The restrictions are: No installation required for the application, information flow needs to be "live", they would prefer not to have a local server running, and it needs to work offline, besides their system/network administration team being anything but helpful.

My question is, is it at all possible to build & deploy this application with this requirements and without disrupting their network (in this or another tech stack)? And which would the better approx to be?

1

Consider building a web based application

I think the tech stack that would be most suitable to your needs is a web application. You don't need to install it since it runs in the browser.

On the server end you would build some sort of web API to store and receive things to your SQLite database.

Some things to consider adding in when building such an application, to meet the requirements

  1. Websockets to send and receive data live. (the server can push). Popular library here is Socket.IO
  2. Service Worker allows you to create offline functionality, in case the server is unavailable.

To answer the question of "Will this disrupt the network?", any multi-user application is going to impact the network, undoubtedly. You can't avoid hitting the network, but with service worker you can at the very least reduce some traffic.

  • Not sure if I completely understood, so, I need to create a web API like OWIN Self-Hosting, and use Websockets on the clients to communicate with the API's self host e.g. //host:8080? Questions: what will be the implications on the Local Network of creating an instance of local host? Do i need to ask the SysAdmin team were to point the configuration to (specific IP/Port)? Will the clients require any type of special access to initiate the host? – Miguel_Ryu Oct 2 '17 at 8:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.