Silverlight - поддержка динамического кода? - PullRequest
3 голосов
/ 21 июля 2009

Я пытаюсь немного понять взаимосвязь кода на стороне сервера с кодом на стороне клиента в Silverlight.

Я бы ожидал, что вы не можете просто «проверить» строку и получить новый код, но не могли бы вы загрузить сборку на стороне сервера и включить ее в код Silverlight, который отправляется клиенту?

Я полный "новичок", когда дело доходит до Silverlight, поэтому я могу совершенно не понимать, как он работает, поэтому любые разъяснения будут оценены.

[Изменить]

Просто для того, чтобы немного больше понять, что я пытаюсь сделать, я хотел бы написать некоторый простой код (как только в логике), скомпилировать его на сервере и затем отправить обратно клиенту, чтобы это может быть использовано на стороне клиента. Я не уверен, что это будет DLL или вообще возможно ...

Ответы [ 2 ]

2 голосов
/ 21 июля 2009

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

http://www.nokola.com/trycsharp/HowToBuild.aspx

Он в основном использует Microsoft.CSharp.CSharpCodeProvider для компиляции кода, но использует Sivlerlight Dlls, поэтому он работает правильно.

Вы можете даже скомпилировать целую страницу silverlight (xaml & cs), но вы должны сделать это с помощью msbuild, поскольку для этого нужно выполнить этап перед компиляцией, чтобы сгенерировать файл .g.cs, который связывает объекты Xaml код C #.

Оба метода только на стороне сервера.

0 голосов
/ 21 июля 2009

Вас интересует запуск динамических языков на платформе Silverlight? Если это так, вам повезло:

http://silverlight.net/learn/dynamiclanguages.aspx/

Динамическая генерация кода в C #, с другой стороны, будет рассматриваться как тип отражения, и в настоящее время это невозможно в Silverlight (см. System.Reflection.Emit в полной версии .NET Framework для сравнения).

Редактировать 1: Это не похоже на вопрос, хотя вы все равно можете его рассмотреть. Вот хорошая статья о том, как динамически генерировать Xaml на сервере, упаковать его и вернуть клиенту:

http://msdn.microsoft.com/en-us/magazine/2009.01.cuttingedge.aspx

Часть уравнения, которая все еще отсутствует, - это как создать dll SL на сервере (вероятно, используя пространство имен Reflection.Emit). Эти библиотеки могут быть добавлены в Xap, как указано в статье, и отправлены обратно клиенту.

Вот еще один способ динамической загрузки библиотек в SL с сервера: http://www.shinedraw.com/data-handling/flash-vs-silverlight-loading-external-assemblylibrary-dynamically/

Теперь я не уверен, что вы можете динамически генерировать SL DLL, но я могу проверить.

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