Quote Originally Posted by Schmidt View Post
There's basically only two choices for you (if you don't want to change the "innards" of your existing App)...

1) Move only the SQLServer into the Cloud (e.g. Azure offers specific options and "plans" for that)
1.1) Place full copies of your App-Binaries on each Customer-Client-machine (a real Setup for each Client)
1.2) and the Client-App will then work "normally" (just with a changed Connection-String, which addresses the new SQLServer)

This has the disadvantage that - if your App is "data-heavy"
(if you Select and transfer Rs-Sizes which are in the MByte-Range),
you will definitely see a speed-difference due to higher transfer-times of the larger ResultSets
(most Inet-connections still cannot compete with 1GBit-LAN-speed).

2) Move your App to "TerminalServices in the Cloud"
2.1) Basically meaning, that the App and the SQLServer-instance will run on the same CloudHardware
..... and therefore Rs-DataTransfers remain local on that Host (or HostEnvironment)
2.2) The App is then shared by WinServer-2016 TerminalServices (each User running in its own RDP-Session)

This has the disadvantage, that you need a more powerful Host-machine with "decent RAM-size"
(if the amount of concurrent Clients is high). And the "Cloud-plans for that" will cost quite a bit more.

But the performance (transferring only changed Pixels over RDP) is quite good - these days,
I barely see a lag (typing, or triggering "Mouse-Actions"), when I work via RDP against an Online-Server.

For 2) you could get away with *much* cheaper RDP-Hosting (usually also with better performance),
when you're willing to maintain such a configuration yourself (offering "your own cloud-services" - for your customers).
But if your customer is willing to pay the higher costs for "Big-Vendor-Cloud-Hosting" without fuss
(he asked for it, didn't he) - then everything should be fine.

Olaf
Thank you so so much. I am so grateful for this detailed analysis.
From what i read, i should be recommending the Option 2, where you said i move the App and Database to a cloud server maybe like Azure and then the Client systems here would access the App via Terminal Services using RDP. This is what i have understood from what you said. I hope i am right.