Силно не препоръчвам клиентски програми да се свързват директно към сървър на база данни през Интернет поради следните причини:
- Клиентските библиотеки са проектирани и изградени въз основа на предположението, че базата данни е на разстояние под няколко милисекунди, особено много бъбриви протоколи (MSSQL е сред тях). В резултат на това кратките операции може да отнемат значително повече време.
- Това е отговорност за сигурността, не само излагате сървъра си на база данни в Интернет, но също така вграждате подробности за връзката (като пароли) в приложението си.
- Не се поддава на мащабируемост. Ами ако въведете множество сървъри на база данни с балансирано натоварване или отказ, ще трябва да пренапишете клиента си.
- Предполага се също, че няма да има проблеми със свързването. Много мрежи (особено мобилни мрежи) ограничават дейността извън порт 80/443, за да предотвратят злоупотреба с тяхната мрежа (като зомбита потребители, стартиращи атаки).
Идеалното решение в тези случаи е да разработите интерфейс на уеб услуга за вашата база данни; след това вашето приложение ще взаимодейства с уеб услугата вместо с вашата база данни. Това има и други предимства.
Разбира се, клиентите (особено мобилните клиенти) трябва да използват кеш за данни, така че приложението да продължи да работи, когато е офлайн.
Обратно към темата:ако приемем, че все още искате да използвате директна връзка, тогава не виждам защо MySQL клиентската библиотека няма да работи на 4.5. Можете да модифицирате манифеста/конфигурацията на сборката, така че да работи в бъдещи версии на .NET CLR (ще се сблъскате с проблеми само ако споменатата библиотека използва премахнати оттогава типове и членове или разчита на променено поведение. Рамката .NET има добра репутация за съвместимост назад и напред).