Моя компания планирует превратить старое приложение Winforms в приложение клиента / сервера WPF / Silverlight.
Идея наличия небольшого серверного приложения состоит в том, чтобы иметь список доступных баз данных в сочетании с типом пользователя, который может обращаться к каждой из баз данных, вместо того, чтобы управлять базами данных в административном управлении каждого клиента. Кроме того, было бы здорово, если бы SQL-запрос обрабатывался сервером, который затем возвращал бы результат.
Приложение должно работать с произвольным набором баз данных, которые будут «зарегистрированы» на сервере, и пользователи получат список баз данных в соответствии с их правами аутентификации. Затем они могут делать практически все в этих базах данных, что можно себе представить. Система должна обрабатывать до 2 миллионов строк.
Базы данных очень разные, их может быть много, это могут быть MS Access, Oracle, SQL Server и т. Д., Поэтому я не могу указать их все раньше. Кроме того, необходима связь с кешем SQLite.
У меня уже есть все необходимое для запросов SQL из приложения Winforms.
Я думал:
1) Простой сервер WCF, указывающий в файле конфигурации доступные базы данных для каждого типа пользователя.
2) Интерфейс, который определяет все необходимые запросы SQL, которые могут быть сделаны к серверу.
3) Клиент ...
Идея такова:
клиент-серверное приложение, в котором клиент использует службы WCF для выполнения запросов SQL (INSERT, UPDATE, SELECT и т. д.) к таблицам путем вызова методов служб.
В идеале служба должна быть расходной как для WPF, так и для приложения Silverlight.
Это путь? Какие существующие технологии я мог бы использовать в отношении форматов, связи, услуг и т. Д.
Если это будет проблематично, я хотел бы вернуться к настольному приложению, но как решить проблему типа пользователя / доступа к базе данных для каждого клиента?