Преобразование Smart Client в XBAP для запуска в браузере

У нас есть требование запустить приложение WinForm для умного клиента в браузере. В следующей статье объясняется, как разместить WinForm в приложении браузера WPF (XBAP).

http://www.codeproject.com/Articles/31429/Embedding-a-NET-WinForms-Application-in-an-Interne

Но наше приложение основано на архитектуре Smart Client (Smart Software Software Factory - Guidance Package). Таким образом, мы не можем контролировать создание и отображение форм. Кто-нибудь может поделиться информацией о том, что потребуется для размещения смарт-клиента в приложении на основе браузера WPF?

1 ответ

Наконец-то есть обходной путь для достижения этой цели.

Переопределенный метод Start класса WindowsFormsApplication, который запускает форму оболочки. Но это приводит к другой проблеме, связанной с формой. Метод CabApplication.Run внутренне вызывает метод Start, а затем удаляет форму после ее закрытия. Так как я не отображаю форму в методе "Пуск", она напрямую отправляется на утилизацию.

Чтобы преодолеть это, я прокомментировал вызов dispose из метода Run в среде SCSF и обработал его в приложении. Я не уверен, что изменение структуры - это хорошая идея, но она сработала для меня.

Чтобы получить объект Shell в приложении XBAP, я создал метод в приложении WinForm, который возвращает объект Form. Я также использовал событие в AfterShellCreated для уведомления приложения XBAP о создании оболочки.

Со всеми этими изменениями я могу разместить умный клиент в браузерном приложении WPF.

Надеюсь, что это поможет другим.

Другие вопросы по тегам