2009-05-28 4 views
3

Я реализую некоторые объекты, которые будут иметь равное количество богатства как на стороне клиента, так и на стороне сервера.Стратегии проектирования для библиотек классов, которые охватывают Javascript и C#

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

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

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

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

+0

Хммммм. Гипотетически? Интерфейс к черту. Сделайте все возможное, чтобы отделить их, вы хотите, чтобы бесплатно не привязывались идеально. Если вы неизбежно делаете общение с клиентом и сервером, сначала получите это право. Я думаю, что медиатор и/или наблюдатель основаны. – annakata

+0

То, что я ищу, - это нечто вроде того, что получала Аннаката. Я рад помочь прояснить вопрос, если это необходимо. – Larsenal

ответ

3

Взгляните на скрипт # от Никила Котари, может помочь вам. Это компилятор C# для JavaScript.

0

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

[assembly:System.CLSCompliant(true)] 

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

3

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

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

WPF Пример: AvalonExampleGallery alt text http://jsc.sourceforge.net/examples/avalon/assets/AvalonExampleGallery/Preview.png

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

1

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

Смежные вопросы