В настоящее время мы используем jQuery для добавления поддержки RIA к нашим приложениям, но в последнее время мы внедряем Coveo Search engine в наш портал Sharepoint и обнаружили, что ScriptSharp использовался в своем продукте. Что может сделать ScriptSharp в таблице?
Какие преимущества может внести ScriptSharp в мой набор инструментов?
Ответ 1
Я использую ScriptSharp, когда мы говорим, обнаружив его около 2-3 недель назад. Честно, мне это нравится. Родной Javascript - это вызов, и модель DOM делает клиентское программирование еще хуже. Затем я обнаружил jQuery около шести месяцев назад, и я подумал, что это была находка. jQuery увеличил мою производительность, но я все равно часто увязываюсь с jQuery, потому что вам все еще нужно писать и отлаживать и настраивать Javascript.
Введите ScriptSharp. Это повысило мою производительность над jQuery и значительно уменьшило мои головные боли. Самые большие преимущества, которые я вижу, это тот факт, что мощь С# и Visual Studio принадлежит вам, когда вы пишете код. Сила этого нельзя недооценивать. Теперь небольшие ошибки Javascript, которые занимали часы для отладки, устраняются во время компиляции. Строки кода, вероятно, примерно в два раза больше, чем у jQuery, но производительность намного выше, поэтому кто заботы? Вы в основном просто пишете код, с гораздо меньшим количеством циклов компиляции/тестирования/отладки. Часы становятся минутными.
Я скажу, что первоначально было довольно сложно заставить ScriptSharp работать с Microsoft AJAX, пока я не узнал о очень важном шаге, который вы должны предпринять, чтобы работать с ним. Я вытащил свои волосы за несколько дней до того, как узнал об этом. (Я считаю, что это документировано в 61-страничном PDF файле ScriptSharp, но его очень легко замаскировать). Ключ должен выбрать тип проекта "Script # Библиотека классов внутри веб-сайта" (или "Класс MS Ajax" Библиотека внутри веб-сайта ") при создании библиотеки ScriptSharp. Это помещает проект ScriptSharp в каталог Bin/Scripts на веб-сайте и - очень важно - направляет скомпилированный вывод в этот каталог, а не в каталог" bin" по умолчанию проекта ScriptSharp. Возможно, пример будет поучительным:
Web Site or Application directory\
Bin\
Scripts\ <-- "..\\" config setting sends .js files here.
ScriptSharp Project directory\
Bin\ <-- will not be used at run time
Debug\ <-- will not be used at run time
Короче, я нашел этот проект стоящим. Я собираюсь написать свой собственный HOW-TO (который в моем случае включает в себя использование элементов управления веб-пользователей) о том, как связать все вместе и разместить URL-адрес здесь. Теперь, когда я понял ScriptSharp, это сделало меня очень продуктивным в моей разработке RIA. Если бы это было более заметно, и если бы еще был сайт CodePlex.
Ответ 2
В моей последней компании я использовал Script # очень широко. Мне удалось написать несколько классных элементов управления (на самом деле весь стек MVC на стороне клиента), которые я бы не смог сделать с моим знанием javascript. Однако я не буду использовать его снова по нескольким причинам.
- Проект закрыт, и поддержка невелика (практически не существует, поскольку форум был закрыт). Есть много неприятностей, когда вы используете его на большой глубине, что может быть исправлено, если у вас есть источник. Это становится все более серьезной проблемой, чем больше вы инвестировали в код s #.
- Он ограничивается подмножеством .NET 2.0, и даже тогда его нечеткая абстракция
- Недавно модульное тестирование Javascript и VS intellisense для javascript стало намного лучше, поэтому важность статической типизации несколько снижена.
- Использование этого ограничено моим изучением jquery и javascript
Инструмент для js только улучшается, и до тех пор, пока Script # не будет найден, он остановится.
Если вы заинтересованы в кросс-компиляции, вы также можете посмотреть проект http://jsc.sourceforge.net/, который позволяет использовать .NET 3.5 и скомпилировать JS, Java, Flash или даже PHP! Не уверен, насколько эффективен код, который создается, хотя...
edit: существует новый проект под названием JSIL, который также перезаписывает код .net для JS
Ответ 3
Проект jsc-компилятора позволяет использовать эти сценарии:
- С# для MSIL для JavaScript для браузера
- С# для MSIL для JavaScript для AppJet
- С# для MSIL для PHP5 для хостинга решений
- С# для MSIL для Java для приложений браузера
- С# для MSIL для Java для приложений
- С# для MSIL для Java для JavaCard
- С# с MSIL на C99 для собственных приложений заглушки
- С# для MSIL для ActionScript3 для Flash 9
- С# для MSIL для Adobe Alchemy C для Flash 9
- С# - от MSIL до С# 2.0
С некоторыми усилиями Visual Basic также можно использовать в качестве исходного языка. Компилятор jsc никогда не читает ваш исходный код, даже если GWT и Script # делают это. Мой компилятор читает ваш IL.
jsc компилятор
- экспериментальный проект
- еще одно усилие.
- скорее полезен уже.
- 3 года.
- ожидание пожертвований для оптимизации времени компиляции и выхода
Последний пример - плазменная анимация, где single реализация может использоваться между этими платформами:
- Flash 10
- Java-апплет (через элемент canvas)
- JavaScript
- Windows Forms
- Windows Presentation Foundation
FlashPlasma http://jsc.sourceforge.net/examples/web/FlashPlasma/assets/FlashPlasma/Preview.png
Ответ 4
Script sharp Прототип: Microsoft GWT
Согласно этой странице:
- Чистый язык с естественными конструкциями.
- Простой рефакторинг и разведка.
- Возможность генерации документации.
- Возможность легко настроить код script.
Я не уверен, согласен ли я со всеми этими, но что продажи все равно. Кажется, он набирается с некоторыми функциями OO. Следующее мнение: Как я уже упоминал в других случаях, разработчики Java и С#, похоже, хотят выбросить прототипы/нетипизированные аспекты Javascript, потому что им неудобно писать код таким образом. У них неттипированные языки прототипирования.
Ответ 5
Я хотел бы поделиться своими классами оболочки jQuery для Script #. Теперь вы можете использовать и использовать мощные функции jQuery в вашем проекте Script #.
Получите это отсюда: http://www.springsys.com/blog/