I am about to embark on the arduino experience. However, I would not like my end users to have to learn anything about the arduino except how to connect sensors and relays. I use VB.Net as my application IDE and Clickonce deployment. This works very well for me and makes updating for my end users simple. I have the arduino IDE installed an know how to create the firmware image. Is there a way to update the arduino firmware from my application as needed and also get the drivers installed by having the user do as little as possible or, preferrably, nothing. The more transparent, the less aggravation for all and sundy. I currently use Phidgets and this process works well for them. Many thanks for any insight into this sticky problem. If this is doable, it would make support and upgrading of various arduinos easier.
Interesting, this way you could provide pre-compiled code to your users and they could upload this to an Arduino via your application. Keep in mind that code is compiled and uploaded via the Arduino IDE and this is Arduino dependant (you must select the Arduino your are using from a drop-down list). Not a huge obstacle but nonetheless.
You could also consider making a custom PJSquareDuino with your application pre-installeed
I did a bit of searching and you can create or integrate HEX file uploading into your application, this guy did it: