Эта проблема выходит за рамки ClickOnce, это общая проблема с сетью.
Первый вопрос: можно ли вообще добраться до SQL Server из дома?
Скорее всего, ответ «нет», если SQL Server находится во внутренней сети компании. Вам нужно будет настроить VPN для доступа к серверу. Если вы настроите VPN, то вы сможете использовать ту же самую строку подключения из дома, если полностью укажете имена серверов, то есть SqlServer.mycompany.local
, а не SqlServer
. Скорее всего, вы будете подключаться к VPN с использованием учетных данных домена, поэтому вы сможете использовать те же строки подключения.
Но еще лучше было бы использовать оболочку, такую как WCF Data Services . Это предоставит данные через веб-сервис (WCF) и предоставит вам множество функциональных возможностей - вы можете написать Linq против всего этого. В долгосрочной перспективе с этим, вероятно, будет легче работать, если вы ожидаете, что приложение будет использоваться удаленно.
В нашем случае у нас на самом деле есть бизнес-сервисы - довольно большой API, который предоставляет бизнес-логику через веб-сервисы, а не просто упаковывает таблицы базы данных (назовите его SOA, если хотите). В сверхдолгосрочной перспективе это вариант best , поскольку он абстрагирует логический API, а не от базы данных, но если вы ищете быстрое решение, то службы данных WCF могут быть подходящим вариантом. .