Можно ли связать Silverlight со статической библиотекой C ++? - PullRequest
2 голосов
/ 25 марта 2010

Я сейчас занимаюсь исследованиями, чтобы начать новый проект. Этот проект будет состоять из двух частей: легкий клиент (вероятно, консольный) и тяжелый, использующий Silverlight. Легкий клиент должен быть кроссплатформенным.

Однако они оба будут использовать одно и то же ядро ​​(кстати, ядро ​​должно будет использовать сокеты).

Я бы хотел использовать C ++ для создания легкого клиента, но, учитывая, что ядро ​​является общим для обоих приложений, было бы очень признательно, если бы это мог быть один и тот же код.

Итак, вопрос довольно прост: можно ли скомпилировать Silverlight со статической библиотекой C ++? И если это возможно, что насчет кроссплатформенных проблем (при лунном свете)?

Если это невозможно. Какой язык я могу использовать для работы с Silverlight, будучи кроссплатформенным? Из-за производительности, скомпилированный язык будет лучше!

Спасибо за ваш опыт :)

Ответы [ 2 ]

3 голосов
/ 25 марта 2010

номер

Мало того, что Silverlight является только управляемым кодом, он не использует стандартный CRL, но и специальный CRL, известный как CoreCLR . Сборки Silverlight являются настоящими .Net сборками, но скомпилированы с ограниченным подмножеством основных библиотек .Net. При работе в CoreCLR (в вашем браузере) сборки Silverlight ограничены несколькими способами из соображений безопасности. Вы даже не можете писать сборки Silverlight с C ++, и никакой код Silverlight не может быть помечен как небезопасный (я допускаю, что может быть способ обойти это ограничение).

Этот ответ относится только к Silverlight 2 и 3, и, хотя у меня нет большого опыта работы с Silverlight 4, я не знаю ничего, что бы дало вам эту возможность кросс-браузерно с SL4.

Я думаю, вы будете разочарованы, если рассчитываете на Moonlight для совместимости с Linux. Моя команда выбрала Silverlight, так как он работает на Firefox, IE и вскоре на Chrome и неофициально на Opera для Windows, а также на Firefox и Safari на Mac.

Редактировать: Отметьте дату автора этого поста, это до SL4.

2 голосов
/ 25 марта 2010

Нет. Silverlight - это только управляемый код.

Однако Silverlight 4 будет поддерживать COM-взаимодействие при запуске с повышенными разрешениями вне браузера. Это не будет работать на других платформах - это только функция Windows. Джастин Энджел упомянул об этом в своем блоге о (не совсем) кроссплатформенной версии Silverlight .

...