Paul
- multiple clients distributed over a fairly slow connection via the internet (128kbps)
This is a low bandwidth connection. I presume it is over a telephone line. I think you will find that the accual sppen you will get will be even lower then 128kbps.
- client application ideally should be quite interactive (quite a rich interface would be beneficial). It could be web but ideally winforms.
I presume the reuirement is to provide the client with a responsive and rich experience. The choise is either web but using AJAX to provide the rich interface or winforms.
The web advantage is that there is no client instalation. With winform, there is software that need to be installed on the client, but I think this can be reduced by using SMART client technology.
However, your bigest problem is the low bandwidth. I feel you have very little choise but to use winforms pre-installed on clients and then communicate to the server for data only.
- the datasets aren't very large that need to be exposed via the UI in the client app
This is indeed good and should be a relief to you.
So it seems there are a number of alternatives available to us:
a. web application hosted in the same LAN as the DB.
b. winforms clients which connect directly via SQL (port 1433) but this is a security issue for us
c. SOA type arch where there is a web application on the same LAN as the DB which serves up content off Gen Pro entities / collections.
I think there is alternative 'd' avaliable. This is:
SOA type arch where the client 'talks' to the server using remoting over HTTP. XML is passed between the client and the server. The server hosts IIS, the business layer and the database.
The MS Pattern and Practices publish Application Architecture blueprint. Have a look at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/uipab-ch01.asp
...some guidelines on developing distributed application such as the one you are trying to develop.
Hope this helps