2010-05-23 3 views
1

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

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

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

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

веселит

джим

[править] - Тхо вряд ли будут реализованы в связи с существующей структурой сайта Joomla, будет ли использование OpenId счета помощи «клей» двойка сайты вместе?

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

ответ

1

Если аутентификация является фактором, вы можете использовать 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 и др.).

+0

Hi Jeff, Я думаю, что вариант 1 был бы моим предпочтительным маршрутом. на самом деле, на основе eaxmple на http://blogorama.nerdworks.in/entry-EnablingJSONPcallsonASPNETMVC.aspx, я действительно справился с этим. моим использованием будет в основном доступ к jQuery из приложения php (я пробовал это, и он отлично работает). Я, однако, заинтригован вашим предложением API. это будет выпущено из приложения php app-> client browser ->. net controller? –

+0

.. извините, что вы указали ключ API по отношению к абстракции на стороне сервера. –

+0

любые мысли о «целостности» использования md5 вокруг контекста. HttpContext.Request.UrlReferrer.AbsoluteUri, а затем сравнивая это со стороной .net ?? –

1

Вам лучший выбор для создания ASP.NET Web служб или служб WCF, которые предоставляют информацию вам необходимость. Затем вы можете использовать эти службы на своем php-сайте. Если у вас уже есть классы и методы, предоставляющие данные, то действительно просто просто выставить их в виде веб-сервисов.

+0

Бен, да, это был вариант, который я бы определенно использовал в своих приложениях для веб-форм и, безусловно, можно было бы здесь использовать. Здесь я нашел интересный подход, который позволил использовать фильтр действий обратного вызова jsonp в php. Я создал небольшой тестовый пример, и, похоже, он работает нормально. http://blogorama.nerdworks.in/entry-EnablingJSONPcallsonASPNETMVC.aspx –

Смежные вопросы