we have an APP that uses a lot of local resources, such as the Windows print API, the Windows registry, some Active X for connecting to POS devices (to pay money and receive a receipt, the price is sent from the APP), a barcode printer for printing labels RFID devices for reading and writing some data. The application is written with .Net framework 3.5 and uses some new features of the .Net framework (for example: WCF). The forms in the application are very heavy forms (7 of them are significant), in each form there are more than 100 text fields, combos, switches, panels and many other controls that are displayed or hidden in accordance with the user's needs, disabled or allowed, filled out and cleared many times.
After the user completes this work, prints will be sent to the previously selected printer automatically, labels will be printed mainly using a barcode printer, if necessary, RFID and POS devices.
The problem is that now we need a version of the web base. the reason is that there is an administrative department that needs to know about any transactions online (there is dashboard software). In the WIN APP version, we use WCF to send and receive new data (something like replication happens).
According to my searches, there are 3 (even 4) ways to achieve this, as shown below.
Using WPF Technology
Using Clickonce
Using Pure html + Active X (which means asp.net, very heavy javascript and Write Active X)
Windows Forms Hosting in IE
WPFs XBAP is good, but: It should load all the DLLs on the local machine and then run the application. This also happens every time a new version is uploaded to the server. Dll sizes are about 5 mg. There is also a risk that the user may parse the DLL. We also need to sign assemblies in order to be able to use the win API, and the user needs to add the site to his secure site.
The main drawback is that WPF is not really a web architecture, I mean, dlls perform client-side calculations, and the server is only responsible for storing objects (and some checks). refer to https://stackoverflow.com>
Clickonce: No idea, we can deploy the application (WPF version or Windows Form version) as a clickonce application, but the server is only responsible for updating new versions of software.
Pure web and HTML + Active X : This is a time-consuming job, everything looks fine, but in reality we need to be jQuery and AJAX masters, and I think most of the time is spent on debugging javascript. Also, only IE can launch the @all application due to Active X elements on the page.
Winform in IE : Not a good choice, but we can do it, the output works only in IE, and the displayed user interface is in a very bad style.
There is another way , it can be hacked when we develop using the clean Internet, we can write some WCF services to execute the hardware (related to equipment, local resources and other things) and install them on clients (for example, run cassini). Therefore, when we need, for example, to work with hardware and local resources (POS, RFID, Registry and others), we can call them from our website by calling a web service (which points to the local host).
Which one is a good choice and what? Is there any other solution? any idea can help.
thank you very much .