Я пытаюсь перенести простое приложение WinForms в веб-приложение ASP.Net. Приложение WinForms в основном представляет собой только уровень представления для сложного простого приложения на языке Си и взаимодействует с устаревшим кодом через взаимодействие COM. У меня есть скромный опыт работы с ASP.Net, javascript, jQuery и большой опыт работы с WinForms и взаимодействием, поэтому я знаю основы, мне просто нужно принять решение по проектированию.
То, как приложение выглядит прямо сейчас, таково:
Существует множество устаревших кодов C (даже C ++), которые можно изменить и перекомпилировать, но перенос не возможен. Это бизнес + уровень данных, назовите его как хотите. Я буду называть его устаревшим кодом .
При запуске устаревший код создает экземпляр COM-сервера, который используется для представления и взаимодействия с пользователем. Данные презентации сериализуются и отправляются этому COM-объекту ( «Я отправляю вам какой-то вывод.» ), а взаимодействие с пользователем достигается с помощью циклического опроса ( «У вас есть какие-то данные для меня? «). Не самое красивое решение, но простое до чертиков.
COM-объект на самом деле является приложением WinNETms .NET 2.0, представляемым как COM. Это приложение также предоставляет некоторые функции другим приложениям .NET через .NET Remoting, но это также не так важно.
Хотя система довольно сложная, приложение WinForms действительно используется только для взаимодействия, поэтому ее довольно легко переключить на веб. Я не уверен, что это лучший способ взаимодействия с устаревшим кодом веб-сервера <--->.
Первое, что приходит мне в голову (так как у меня уже реализовано .NET Remoting), это предоставление функциональности WinForms веб-части через локальное .NET Remoting, заставляя ее действовать как своего рода прокси между устаревшим кодом и веб-приложение. На самом деле мне нужна была только коммуникационная часть, без форм. В этом случае веб-приложение должно было бы получить доступ к этой функции через .NET Remoting (локально).
Целесообразно ли веб-приложение взаимодействовать локально с другим приложением с помощью .NET Remoting? Кроме того, я мог бы изменить приложение на службу Windows, но смогу ли я представить его функциональность через COM устаревшему коду?
Что может быть лучше для достижения этой цели? Обратите внимание, что при необходимости я также могу внести некоторые изменения в устаревший код.