Сценарий, который я мог бы использовать для совместного использования этих трех технологий, - это распределенная система с богатым графическим интерфейсом (C # в Windows), надежной серверной частью (EJB или аналогичной Java Framework) и веб-интерфейсом для удаленных пользователей (PHP). .
Хотя разумный аргумент может быть приведен для тех, кто является лучшим в каждом конкретном случае, проблема такого соглашения заключается в дублировании. Каждая структура данных должна дублироваться в базе данных, на серверной части, в графическом интерфейсе и в PHP. Кроме того, проблема интеграционного тестирования и отладки значительно усложняется. Все должно быть сведено к примитивам для передачи данных между уровнями, трудно изменить протоколы, которые декодируют сообщения, будут построены на трех языках, и оттуда дела пойдут вниз.
Лучшим подходом было бы использование основной функциональности продукта (вашего кода) на одной платформе. Затем предоставьте точки интеграции в виде веб-сервисов и буферных таблиц в MySQL, которые позволяют взаимодействовать с вашим приложением по определенным путям, и позволяют разработчикам, которые хотят писать плагины, использовать эту интеграцию на языке их предпочтений. Что касается интеграции с базой данных, разумным подходом может быть использование определенных таблиц для этой цели плюс хранимые подпрограммы, которые написаны для сопоставления этих таблиц с вашей внутренней структурой данных. Это даст вам гораздо лучшую инкапсуляцию, чем непосредственное запись модулей в вашу модель данных.