Как я могу уменьшить объем обслуживания, когда мои кодовые базы JavaScript и C # перекрываются? - PullRequest
1 голос
/ 09 июня 2009

У меня есть библиотека с некоторыми объектами, которые я использую как из C #, так и из JavaScript. Есть несколько объектов, назовем один из них Foo с одинаковой базовой реализацией в C # и JavaScript. Когда я хочу передать объект этого типа с сервера в браузер, я просто вызываю Foo.ToJson () для сериализации этого объекта в JSON, а затем возвращаю объект на стороне браузера с помощью безопасной операции eval ().

Это все хорошо, но библиотека становится все сложнее, и необходимость синхронизировать базы кода JavaScript и C # становится все более сложной и подверженной ошибкам. Мне интересны идеи по упрощению этой архитектуры или упрощению ее обслуживания. Мысли

Ответы [ 4 ]

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

Вы можете посмотреть, используя скрипт #: http://projects.nikhilk.net/ScriptSharp

Поскольку все ваши классы закодированы в C #, вы можете повторно использовать один и тот же файл .cs для проектов сервера и клиента. таким образом, когда вы вносите изменения, он автоматически компилируется в javascript: -)

2 голосов
/ 09 июня 2009

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

Всего одно решение.

http://en.wikipedia.org/wiki/Web_services

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

Используйте DTO. Объекты передачи данных.

Таким образом, если ваши объекты JScript или C # изменяются, ваши DTO не обязательно должны изменяться, если только это свойство не требуется немедленно на клиенте. И даже тогда у вас есть четкое разделение того, что предназначено для сериализации, а что нет.

Дейв Уорд из Encosia много говорит об этом .

1 голос
/ 09 июня 2009
  1. Сделайте так, чтобы части вашего приложения пересекались как можно более управляемыми данными. При определенном размере проще иметь с обеих сторон интерпретатор конечного автомата, который может анализировать одни и те же данные.
  2. Введите код один раз. Есть пара компиляторов C # для JavaScript, которые вы можете посмотреть. Script # и jsc .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...