Переключение от Windows Form до веб-формы

Я создал исполняемый файл Windows Form в.NET 3.5, который использует dll для общения с машиной, которая сканирует проверки. Я в конечном счете испытываю необходимость для перемещения от исполняемого файла до Веб-формы, которая может сделать то же самое. Это будет месяцами с этого времени, но я хотел начать проводить исследование теперь, поскольку я не сделал этого прежде. Я испытываю необходимость для использования ActiveX для общения с устройством с помощью Веб-формы. Я также не сделал этого прежде.

Я хотел бы сохранить функциональность своего существующего исполняемого файла, не имея необходимость переписывать большую часть из него, хотя я действительно понимаю, что часть его должна будет быть переписана. Я провел исследование в области ActiveX и как использовать его, но я хотел знать, была ли у кого-то аналогичная ситуация как это. Что Вы делали для преобразования exe в веб-программу? Есть ли хорошие, определенные источники там, что я забыл, что это может указать на меня в правильном направлении для этой ситуации? Есть ли совет, который можно дать на основе событий, которые могут помочь мне уменьшить ошибки? Компания, на которую я работаю, не имеет никого больше здесь, который сделал это прежде, таким образом, я должен учить меня, что все должно было сделать это.

Заранее спасибо.

6
задан Aaron 3 March 2010 в 15:48
поделиться

4 ответа

Именно здесь проявляется разделение проблем и n-tier дизайн. Надеюсь, ваш слой пользовательского интерфейса слабо связан с вашей доменной моделью. Если это так, вы можете написать второй слой пользовательского интерфейса для веб. И вам не придется изменять модель домена. Затем вы можете компилировать для каждого сценария.

*примечание - В практическом использовании мне всегда приходилось расширять свой бизнес-домен, чтобы учесть некоторые проблемы со вторым пользовательским интерфейсом, но эти изменения обычно были незначительными и указывали на места, где я все равно слишком тесно связывал.


Другой вариант, который вы можете рассмотреть, - это создание слоя веб-сервисов поверх кода вашего бизнес-домена. А затем написать веб-приложение, которое взаимодействует с вашей доменной моделью через вызовы веб-сервисов. Это может иметь последствия для производительности, и я бы не стал отдавать предпочтение этому методу. Хотя вы можете найти его более удобным, если у вас нет хорошо спроектированного приложения для начала.

5
ответ дан 17 December 2019 в 02:27
поделиться

Обычно преобразование winforms в веб-формы вполне возможно, хотя обычно это медленный процесс разработки . Даже если у вас самый чистый в мире слой домена, тот факт, что объекты на вашей веб-странице каждый раз выбрасываются, означает, что слой веб-домена обычно пишется совсем не так, как слой домена рабочего стола.

Однако в вашем случае связь устройства с сервером будет очень сложной.

Вы смотрели xbap? По сути, это способ развертывания приложений WPF на веб-странице. Это требует, чтобы у ваших клиентов была установлена ​​правильная версия .NET, но это будет самый простой путь для вас, особенно с учетом того, что вы можете размещать winforms в WPF ...

0
ответ дан 17 December 2019 в 02:27
поделиться

Вы можете взглянуть на Silverlight 4,

http://silverlight.net/getstarted/ silverlight-4-beta /

Он содержит множество функций, которых нет в веб-формах ASP.NET.

Если ваша команда может принять что-то вроде ActiveX, почему не Silverlight 4? Единственный минус в том, что SL4 все еще находится в бета-версии.

0
ответ дан 17 December 2019 в 02:27
поделиться

«Я хотел бы сохранить функциональность моего существующего исполняемого файла без необходимости переписывать его большую часть»

В общем, если вы извлечете столько логики насколько это возможно, в его собственную сборку / dll, вы можете повторно использовать это из любого пользовательского интерфейса, который вы хотите. Просто убедитесь, что вы не делаете там ничего специфичного для пользовательского интерфейса (не открываете диалоговые окна и т. Д.).

1
ответ дан 17 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: