Мы смотрим на интеграцию полноценного GWT (Google Web Toolkit 2.0) приложение с существующим ASP.NET 3,5 приложения. Моя первая реакция пищеварительного тракта состоит в том, что это - ужасная frankenstein идея. Однако клиент настоял, чтобы мы использовали это приложение, разработанное третьим лицом.
Я не имею ПОЧТИ НИКАКОГО КОНТРОЛЯ разработкой приложения GWT.
Моя первая мысль состоит в том, чтобы на самом деле попытаться встроить это в iFrame. Поскольку GWT работает под Tomcat/Джакартой, он размещается на другом сервере из приложения.NET, таким образом, iFrame src будет к URL на другой машине.
Я должен использовать нашу собственную схему авторизации ASP.NET для ограничения доступа к встроенному приложению GWT. Приложение GWT также использует, встроил апплеты Java, которые, кажется, не работают правильно теперь в iframe. Приложение GWT выполняет вызовы к серверу бэкэнда (использующий GWT-RPC?).
Какие-либо основные проблемы с этим подходом, который кто-либо видит? GWT будет работать над iframe, в то время как размещено на другой машине?
Примечание: ПРОСТО ДОБАВЛЕНИЕ DIV С ТЕМ ЖЕ ИМЕНЕМ НЕ РАБОТАЕТ НА ЭТО!
Чтобы объяснить то, что сказал Тони, GWT может существовать на любой странице. На самом низком уровне GWT перехватывает div
по его идентификатору или элемент body
, как его RootPanel
, и добавляет к нему виджеты оттуда.
Просто добавьте div на свою страницу ASP, например
, и в коде GWT начните с RootPanel root = RootPanel.get ("gwt- корень ")
. Затем вы можете начать добавлять виджеты на эту панель для создания части GWT вашей страницы.
Вам также нужно будет ввести свой сгенерированный GWT код с тегом script
, например так:
<script type="text/javascript" src="gwt-app-name/gwt-app-name.nocache.js">
Кроме того, при желании GWT может взаимодействовать с остальной частью страницы, используя обычный JavaScript. с использованием JSNI .
Вам не нужен IFRAME. Напишите ваше приложение так, чтобы главная панель размещалась внутри div с определенным id. Если ваш ASP.net может предоставить div с тем же id, то все, что вам нужно сделать, это включить сгенерированные файлы JavaScript (+ некоторые таблицы стилей), и ваше приложение будет отображаться внутри div.