При написании нового приложения на c # для замены приложения vb6, что можно использовать для замены COM-объектов? - PullRequest
0 голосов
/ 08 ноября 2018

Справочная информация:

У меня есть старое приложение vb6, которое мне действительно нужно выкинуть из моей жизни. Я люблю кодировать в c # и хочу сделать приложение, чтобы заменить старое приложение vb6.

Приложение vb6 имеет компонентное приложение, которое устанавливается через IIS и к которому основное приложение GUI vb6 подключается для различных целей. Причина, по которой приложение / компоненты COM существуют, заключается в том, что все сделано из одного и того же источника.

Пример: я работаю удаленно и мне нужно подключиться к FTP-серверу, доступ к которому возможен только из моей рабочей сети. Основное приложение с графическим интерфейсом подключается к COM-объекту, выдает команду, а затем этот набор компонентов создает FTP-соединение из моей рабочей сети / ip (вместо моей домашней сети / ip).

Вопрос:

При замене этого старого графического интерфейса и COM-объекта приложения, что является лучшим подходом в c #? Стоит ли мне использовать старый Component Services, который я так ненавижу? Или есть более новый, лучший способ выполнить ту же задачу?

1 Ответ

0 голосов
/ 08 ноября 2018

Нет ничего особенного в использовании FTP, который бы требовал COM (и, конечно, для написания графического интерфейса на C # тоже не требуется COM).

Если бы я делал это:

  • WPF GUI (будущее на случай, когда WinForms исчезнет ... и дает вам возможность работать с WinRT, который также поддерживает XAML).
  • Nuget в библиотеке FTP, например: https://www.nuget.org/packages/Ftp.dll/

Убедитесь, что вы отделяете свой графический интерфейс от внутренних коммуникаций через соответствующие интерфейсы / шаблоны, чтобы вы могли легко и просто заменить свое приложение на будущее.

Edit:

Итак, что вы на самом деле ищете: как я могу получить интерфейс GUI, который общается с сервером различными способами?

Итак, есть много ответов на это, и в основном это сводится к следующему: не делайте этого, «выберите линию и придерживайтесь ее», или «Используйте WCF».

WCF (Windows Communication Framework https://docs.microsoft.com/en-us/dotnet/framework/wcf/whats-wcf) - это серверная технология на стороне сервера, которая поддерживает несколько протоколов связи одновременно, но, как правило, позволяет взаимодействовать между клиентом и сервером. Изначально SOAP был популярным выбором, но он также поддерживает Remoting (на что вы ссылались), вы можете отправлять вложения через DIME, который затем похож на FTP, или вы можете свернуть свои собственные и делать все, что захотите (например, с помощью Capn Proto ( https://capnproto.org/) для отправки двоичных сообщений).

С другой стороны, если вы можете избежать попыток сделать все, вы можете вместо этого заглянуть в REST, который поддерживается Web API (https://msdn.microsoft.com/en-us/library/dn448365(v=vs.118).aspx). Это позволит вам отправлять легкие данные туда и обратно, и, как правило, в наши дни «так, как это делается».

Удачи!

...