Запускать приложение GWT (включая апплеты) внутри IFRAME из приложения ASP.NET 3.5? - PullRequest
7 голосов
/ 12 февраля 2010

Мы планируем интегрировать полнофункциональное приложение GWT (Google Web Toolkit 2.0) с существующим приложением ASP.NET 3.5. Моя первая внутренняя реакция заключается в том, что это ужасная идея Франкенштейна. Однако заказчик настаивал на том, чтобы мы использовали это приложение, разработанное сторонней организацией.

У меня почти нет контроля над разработкой приложения GWT.

Моя первая мысль - попытаться встроить это в iFrame. Поскольку GWT работает под управлением Tomcat / Jakarta, он размещен на сервере, отличном от приложения .NET, поэтому iFrame src будет иметь URL-адрес на другом компьютере.

Мне нужно использовать нашу собственную схему авторизации ASP.NET, чтобы ограничить доступ к встроенному приложению GWT. Приложение GWT также использует встроенные Java-апплеты, которые, похоже, не работают прямо сейчас в iframe. Приложение GWT выполняет вызовы с внутреннего сервера (используя GWT-RPC?).

Какие-либо серьезные проблемы с этим подходом, которые кто-либо может увидеть? Будет ли GWT работать с iframe, если он находится на другом компьютере?

ПРИМЕЧАНИЕ: ПРОСТОЙ ДОБАВЛЕНИЕ DIV С ИМЯ ИМЯ НЕ РАБОТАЕТ!

Ответы [ 2 ]

6 голосов
/ 13 апреля 2010

Чтобы изложить сказанное Тони, GWT может жить на любой странице. На самом низком уровне GWT подключается к div по его идентификатору или элементу body как RootPanel и добавляет к нему виджеты.

Просто добавьте div на свою страницу ASP, например <div id="gwt-root" />, и в своем коде GWT начните с RootPanel root = RootPanel.get("gwt-root"). Затем вы можете начать добавлять виджеты на эту панель для создания GWT-части вашей страницы.

Вам также потребуется ввести сгенерированный GWT-код с тегом script, например:

<script type="text/javascript" src="gwt-app-name/gwt-app-name.nocache.js">

Также, если вы хотите, GWT может взаимодействовать с остальной частью страницы, используя обычный JavaScript, используя JSNI .

1 голос
/ 12 февраля 2010

вам не нужен IFRAME. Напишите ваше приложение так, чтобы главная панель размещалась внутри div с определенным идентификатором. Если ваш ASP.net может предоставить div с тем же идентификатором, то все, что вам нужно сделать, это включить сгенерированные файлы JavaScript (+ некоторые таблицы стилей), и ваше приложение отобразится внутри div.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...