Лучший способ обернуть приложение MFC Doc / View в .NET API? - PullRequest
1 голос
/ 31 мая 2011

В настоящее время у меня есть проект MFC (свободно), использующий архитектуру doc / view. Это приложение содержит всю бизнес-логику, а также код GUI. Я хочу предоставить API-подобный доступ к нему, который был бы доступен через .NET. При этом я хотел бы свести к минимуму переписывание, поэтому мне интересно, какие есть варианты?

Есть ли способ включить интерфейс .NET вокруг приложения MFC, при этом используя ввод / запуск MFC как есть? Чтобы текущее приложение могло быть запущено и чтобы другое приложение динамически получало дескриптор приложения и использовало API?

Любые другие подходы, которые могут иметь больше смысла?

[EDIT] Конечная цель заключается в том, чтобы разбить бизнес-логику на библиотеку и графический интерфейс пользователя для какого-то нового фреймворка (winforms, wpf, что-то ...) На данный момент я ищу путь к первой цели базового API управление из стороннего приложения. Имея эти знания, стоит ли выполнять промежуточный шаг интерфейса COM, а затем, когда логика втягивается в библиотеку, пишущую оболочку .net для базового доступа к API?

1 Ответ

0 голосов
/ 31 мая 2011

Что вы действительно хотите здесь?Вы хотите предоставить API-интерфейс сторонним разработчикам для управления вашим приложением?Или вы действительно хотите заменить свой пользовательский интерфейс MFC на .NET UI?

Если это первое, то ответ - COM.COM виден из .NET, поэтому, если ваше приложение MFC поддерживает интерфейс COM, приложения .NET могут выполнять вызовы через него.

В настоящее время я работаю над приложением MFC, которое поддерживает именно то, что вы описываете.Наш EXE предоставляет COM-интерфейс, которым могут управлять другие приложения, написанные на C ++, C #, VB или даже Java.

[Редактировать в ответ на ваши изменения]

Если вы в конечном итоге захотитечтобы заменить пользовательский интерфейс MFC на пользовательский интерфейс WinForms / WPF, вы можете обернуть существующий бизнес-код C ++ в C ++ / CLI и получить к нему доступ из C #.Добавление COM API на самом деле не является промежуточным этапом в вашем сценарии.Это большая работа, и, вероятно, она того не стоит, если вы действительно хотите заменить пользовательский интерфейс.

Вы можете обратиться к этому вопросу , чтобы прочитать подробности моего опыта работы сзамена интерфейса MFC на WPF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...