Разработка стратегий для библиотек классов, охватывающих Javascript и C # - PullRequest
3 голосов
/ 29 мая 2009

Я реализую некоторые объекты, которые будут иметь примерно одинаковое количество функций как на стороне клиента, так и на стороне сервера.

В этом конкретном случае я буду строить (надеюсь) небольшую библиотеку классов для работы с поисковыми токенами. Так что в качестве примера псевдокода я хочу иметь возможность сделать эквивалент следующего в Javascript и на сервере (C # в моем случае).

s = new SearchTokenList();
s.Add(new SearchToken(field, value, negation));

Какие стратегии дизайна помогут избежать создания большого шарика грязи для библиотеки, которая должна охватывать C # и Javascript?

Обновление: ищет больше стратегий, чем механики. Но я приму любое руководство, которое смогу получить от тех, кто ранее делал подобные вещи.

Ответы [ 4 ]

3 голосов
/ 07 июня 2009

Я думаю, вы должны проверить мой компилятор C # для JavaScript на http://jsc.sourceforge.net/

В отличие от Script # мой компилятор jsc работает на уровне MSIL.

WPF Пример: AvalonExampleGallery alt text

Свяжитесь со мной, если у вас есть какие-либо конкретные вопросы.

3 голосов
/ 02 июня 2009

Взгляните на Script # by Nikhil Kothari, может вам помочь. Это компилятор C # для JavaScript.

1 голос
/ 07 июня 2009

Если производительность не критична, вы можете загрузить данные в JSON или XML и передать их обратно на сервер и выполнить обработку. Я думаю, что WCF может генерировать интерфейс JavaScript из коробки. См. .NET на примере: вызов службы WCF из Javascript .

0 голосов
/ 07 июня 2009

Вы должны иметь возможность запускать некоторый код Javascript на вашем .NET-сервере, используя Microsoft JScript.NET - скомпилируйте его с /target:library и убедитесь, что он совместим с CLS и что вы объявите этот факт с

[assembly:System.CLSCompliant(true)]

или другие варианты деклараций соответствия CLS . После того, как вы добились этого, вы можете запустить (немного) JS-код как на сервере (вызывая его из C #), так и на клиенте (вызывая его из другого JS), и более легко обеспечить равную функциональность с обеих сторон.

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