Портирование кода C ++ в Silverlight - PullRequest
4 голосов
/ 15 июля 2010

У меня есть приложение C ++, в котором пользовательский интерфейс разработан с использованием MFC, выполняет некоторые сетевые подключения с использованием сокетов (с использованием библиотек boost) и некоторую обработку изображений. Я хочу переместить это приложение в среду Silvelight (я могу использовать 4.0, если требуется), чтобы его можно было легко использовать через Интернет. Здесь я хочу переместить все части (UI + сеть и т. Д.) В C #, но сохранить код обработки изображений только в неуправляемом C ++. Я еще не знаю .NET Framework, но все, что я до сих пор читал, говорит о том, что неуправляемый код невозможно вызвать из веб-приложения. Правильно ли мое понимание? Можно ли что-то сделать, чтобы добиться того, что я пытаюсь сделать? Кроме того, если у кого-то есть предложения по переносу кода?

Ответы [ 2 ]

5 голосов
/ 15 июля 2010

Silverlight 4 поддерживает COM при работе в доверенном режиме.

Таким образом, технически вы можете заставить Silverlight вызывать вашу библиотеку c ++ с помощью COM. Основная проблема, которую я вижу, связана с развертыванием, и я не думаю, что это хорошоidea. Кроме того, помните, что Silverlight может работать на компьютерах Mac, но COM - только для Windows. Что вы можете сделать, это сделать так, чтобы обработка изображений происходила на сервере, но затем вы можете столкнуться с проблемами масштабируемости. Передача больших объемов данных между клиентом и сервером может стать проблемой. Ответ пользовательского интерфейса, вероятно, тоже должен быть внимательно оценен. Что касается переноса кода, то вы наверняка смотрите на полное переписывание.
0 голосов
/ 17 июля 2010

Я бы предложил использовать WPF вместо Silverlight, если это возможно. С WPF вы сможете повторно использовать ваш C ++ как есть, потому что настольное .NET / неуправляемое взаимодействие очень хорошо (P / Invoke или CLI / C ++).

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

...