Сделайте на сайте API и дергайте его из приложения. Если уж это так нужно. Самое гибкое решение, уменьшает связность частей.
> Но С как я слышал платно работает с другими БД, а не с MS SQL и не стабильно.
хрень какая-то.
www.mysql.com/downloads/connector/net/ все бесплатно, стабильно. Другой вопрос, что всякие плюшечки c# типа LINQ с mysql не работают.
> C#+MS sql. Но php сайт будет с нуля. Я буду писать. Никогда не писал на php для работы с ms sql.
с точки зрения php разницы минимум. Вместо одной функции вызывать другую, а вообще сайт должен быть абстрагирован от БД, и должен быть уровень-прослойка, позволяющий мигрировать с одной бд на другую. Вопрос только в том что сам SQL у MS SQL сервера немного отличается от MySQL. Вы его видимо не знаете.
Про яву не скажу, т.к. не пишу на ней.
Вообще сам факт того, что вы хотите из вашего приложения долбиться на удаленную базу (ту же с которой работает сайт) странный. Что будете делать если в агенстве недвижимости порт 3306 (или какой там у mysql) закрыт (а так чаще всего и есть, закрыто все кроме 80)? А если у них инет через прокси, причем не SOCKS5, а HTTP (а так чаще всего и есть)? Что вы со своей архитектурой будете делать когда захотите права доступа к разным объектам проверять? Как вы на уровне БД запретите юзеру править одни строки в таблице и разрешите править другие? Что будете делать когда понадобится структуру бд изменить? Переустанавливать все 100500 развернутых клиентов потому что там захардкожены уже кривые запросы, а на время переустановки вся система встанет (бд уже обновили, а клиенты еще нет)?
Повторюсь — единственное правильное решение сделать на сайте API и дергать его из приложения. Если бы все писали на c# мог бы вам посоветовать Web Service сделать, а с php вам придется самому стандарт взаимодействия скорее всего изобретать. Не мудрствуя лукаво можете просто гонять XML между сайтом и программой. Программа отправляет POST'ом XML с параметрами запроса, получает XML с ответом, обработка XML есть и в c# и в php. Или json можете использовать, но лучше XML он в c# лучше поддерживается. Такая архитектура снизит связность частей системы, добавит дополнительные уровни абстракции, развяжет вам руки для последующего развития.