Двойное использование asp.net mvc и php в одном домене - PullRequest
1 голос
/ 23 мая 2010

У меня есть сценарий, когда у нас есть клиент, у которого есть php-приложение, размещенное на Linux (joomla), которое они хотят интегрировать с некоторыми внутренними функциональными возможностями asp.net mvc, которые были созданы для «сестринского» сайта. По сути, на сайте mvc есть цены и методы доступа к запасам, которые (на дочернем сайте) заполняют выпадающие списки и другую информацию о стиле заказа на страницах. Мне было поручено изучить варианты интеграции, чтобы сайт php мог использовать эту информацию в качестве «службы». (как всегда, эти ребята смотрят на стоимость владения, обслуживания и т. д., так что это их предпочтительный маршрут)

Кто-нибудь делал что-нибудь подобное с успехом? Я полагаю, что (как и на родственном сайте) будут использоваться либеральные дозы ajax, чтобы заполнить части страницы по требованию. Так что это может иметь отношение к любым предложениям, которые вы можете иметь. Кроме того, вызываемые методы в конечном итоге заполняют одну и ту же базу данных, поэтому проблем с сопоставлением идентификаторов на разных платформах не возникает.

Я действительно не хочу идти по какому-либо маршруту типа 'iframe', если это вообще возможно, но реальность может диктовать это как вариант. Возможно, мне (наивно) кажется, что я мог бы просто вызывать функции mvc непосредственно из приложения php с некоторой переменной 'session', передаваемой для аутентификации.

довольно высокий заказ или довольно прямолинейный ??

веселит * +1009 *

джим

[править] - вряд ли это будет реализовано из-за существующей структуры сайта joomla, поможет ли использование учетной записи openID «склеить» два сайта вместе?

также нашел эту небольшую статью, которая «может» пойти иначе, чем я думаю: http://www.jeffancel.com/archive/2009/04/05/70.aspx

Ответы [ 2 ]

1 голос
/ 23 мая 2010

Если аутентификация является фактором, вы можете использовать API-ключ, чтобы сообщить приложению .net, кто вы, также они могут добавить фильтры, которые позволят использовать только определенные ресурсы. В PHP есть несколько способов использования сервисов .net, как я делал это несколько раз. Если вы звоните со стороны сервера (фактический PHP), то вы бы хотели, чтобы они предоставляли данные, которые вы потребляете, в xml или json; так что вы можете анализировать его в PHP и использовать по своему усмотрению. Вот несколько маршрутов, которые я могу предложить:

1.) Ajax или запрос в ваше PHP-приложение, которое, в свою очередь, использует PHP для использования сервисов с вашего дочернего сайта; в худшем случае вам, возможно, придется анализировать html напрямую, хотя я бы посоветовал им открыть объект XML или JSON с помощью службы RESTful (это довольно простая модификация, если вы не возражаете добавить пару методов в ваш контроллер).

2.) Ajax использует запрос jsonp для получения HTML-виджета с сайта, с которым вы общаетесь. Это также потребует некоторой работы со стороны дочернего сайта, но это очень выполнимо. Если вы пойдете по этому пути, то они должны внести изменения между доменами, о которых я упоминал в этом посте (хотя это .net mvc 1.0).

В конце концов, все сводится к вашим конкретным требованиям относительно того, что вы бы выбрали. Я лично выбираю маршрут 1 и использую большинство сервисов со стороны сервера, поскольку он может абстрагировать такие вещи, как API-ключи и другие вещи, которые пользователи не хотят видеть. Также легче иметь дело с XML из PHP, а не с javascript из-за поведения отдельных браузеров (то есть по сравнению с firefox и др.).

1 голос
/ 23 мая 2010

Лучше всего создать веб-сервисы asp.net или сервисы wcf, предоставляющие необходимую информацию. Затем вы можете использовать эти услуги с вашего php-сайта. Если у вас уже есть классы и методы, предоставляющие данные, то очень просто представить их как веб-сервисы.

...