U moet kijken naar het maken van een webservice (SOAP), http web-api (REST) of een andere middleware om uw gegevensopslag te abstraheren.
Dit heeft de volgende voordelen:
- Hiermee kunt u een groot deel van de bedrijfslogica uit uw desktop-app verplaatsen naar middleware
- Hiermee kunt u bedrijfslogica buiten SQL houden, wat een knelpunt kan zijn
- Hiermee kunt u uw bedrijfslogica bijwerken zonder uw desktop-app opnieuw te distribueren (gemakkelijker als u niet direct controle heeft over alle desktops).
- Hiermee kunt u de authenticatie controleren (veel webservers hebben hun eigen modules, authenticatiemethode). Uw app beheert de toegang en toegang tot opslag onder zijn eigen serviceaccount.
- Hiermee kunt u uw gegevensopslag volledig wijzigen (laten we zeggen dat u in de toekomst sommige opslaat in sql, sommige in mongodb, sommige in cloudopslag - nogmaals, zonder al uw desktops bij te werken.
- Hiermee kunt u uw front-ends uitschalen en mogelijk zelfs uw back-endopslag uitschalen (bijvoorbeeld DB-replica's lezen/schrijven)
Als je al met C# werkt, dan zou de nieuwe MVC4 web-api goed moeten passen. Lees hier meer:
Als u die route volgt, kunt u de toegang in uw service beheren en uw service toegang geven tot de database via inloggegevens in een verbindingsreeks of, als u IIS gebruikt, inloggegevens op de applicatiepool die is toegewezen aan uw site.
Als u uw desktop-app verzendt (u host de DB niet), kunt u ook zelf web-api hosten in zijn eigen exe als uw klanten IIS niet willen installeren/beheren.
Ten slotte, als uw mysql online is, kan uw middleware zich in de cloud bevinden (azure enz...)