Du bør overveje at oprette en webservice (SOAP), http web-api (REST) eller en anden middleware for at abstrahere din datalagring.
Dette har fordelene ved:
- Giver dig mulighed for at flytte meget af forretningslogikken ud af din desktop-app og ind i middleware
- Giver dig mulighed for at holde forretningslogik ude af sql, hvilket kan være en flaskehals
- Giver dig mulighed for at opdatere din virksomhedslogik uden at omdistribuere din desktop-app (lettere, hvis du ikke har direkte kontrol over alle desktops).
- Tillader dig at kontrollere godkendelse (mange webservere har deres egne moduler, godkendelsesmetode). Din app ville kontrollere adgang og adgang til lagerplads under sin egen tjenestekonto.
- Giver dig mulighed for at fuldføre ændringen af din datalagring (lad os sige, at du i fremtiden gemmer nogle i sql, nogle i mongodb, nogle i cloud storage - igen uden at skulle opdatere alle dine desktops.
- Giver dig mulighed for at udskalere dine frontends og endda muligvis udskalere dit backendlager (f.eks. læse/skrive DB-replikaer)
Hvis du allerede arbejder med C#, så burde den nye MVC4 web-api passe godt. Læs mere her:
Hvis du går den vej, kan du kontrollere adgangen i din tjeneste og få din tjeneste til at få adgang til databasen enten via legitimationsoplysninger i en forbindelsesstreng, eller hvis du bruger IIS, legitimationsoplysninger på applikationspuljen, der er knyttet til dit websted.
Hvis du sender din desktop-app (du er ikke vært for DB), kan du også selv hoste web-api i dets egen exe, hvis dine kunder ikke ønsker at installere/administrere IIS.
Endelig, hvis din mysql er online, kan din middleware være i skyen (azurblå osv...)