Hello,
My work is related with physical devices, such as card readers, IO modules, led displays, barcode readers and etc.
I have a class for each device. Every class initiates connection to device, handles events, and publishes events if something happens.
What I want to make is to create some DeviceEngine, which will control all these modules.
Now I have a windows service witch communicates via WCF. So if in project I need to use some modules I need to install several services.
For example if I'm doing some car entrance control solution, then I need to install Licenceplate, PLC, LedDisplay, Cardreader and main services. Some solutions contains 5-9 services.
I do not like such architecture, because if I restart one service, then WCF communication is broken and I need to restart other services as well.
What I want to do is to make is to create a DLL for each device. Lets say each driver will have a method "StartDriver". Then I want to create one service "DriverEngine" which, will scan a folder, find all Dll's adds them as assembly and calls "StartDriver". Every driver will communicate with messaging system like MQTT or ActiveMQ.
As you understand I want to create independent driver system and replace current multiple service architecture.
Maybe some of you have done similar system. What do you think, what is the best architecture for such hardware control?
Preferred .net framewrok or .net core.
br, Vytautas