Какие преимущества ScriptSharp может принести к моему инструментарию?

Используйте let вместо var здесь:

Измените

var myId = this.state.siteid[i].id;
var myDaily = this.state.siteid[i].daily;
// ....

на

let myId = this.state.siteid[i].id;
let myDaily = this.state.siteid[i].daily;
// ....

var is ограничен ближайшей функцией, а не блоком while. Он поднимается, и ваш код будет выглядеть примерно так:

var i;
var myId;
var myDaily;

i = 0;

while ( i < 2 ) {
    myId = this.state.siteid[i].id;
    myDaily = this.state.siteid[i].daily;
}

Поскольку вызовы dataProvider являются асинхронными, значение myId будет заменено на значения AK при первом вызове. .

dataProvider(GET_LIST, 'clicks', {
    //
})
 .then(response => this.setState({ [myWeekly]: response.data.count }))
       /* ^^ This callback runs after the while block
           By this time, myDaily === "AKdaily" */

20
задан Mauricio Scheffer 20 December 2009 в 15:41
поделиться

5 ответов

Я использую ScriptSharp, как мы говорили, обнаружив его 2-3 недели назад. Честно говоря, я люблю это. Собственный Javascript - это сложная задача, а модель DOM делает программирование на стороне клиента еще хуже. Затем я обнаружил jQuery около шести месяцев назад и подумал, что это находка. jQuery увеличил мою производительность, но я все еще часто теряюсь из-за jQuery, потому что вам все еще приходится писать, отлаживать и настраивать Javascript.

Введите ScriptSharp. Это повысило мою производительность по сравнению с jQuery и значительно уменьшило мои головные боли. Самым большим преимуществом, которое я вижу, является тот факт, что возможности C # и Visual Studio принадлежат вам во время написания кода. Сила этого не может быть преуменьшена. Теперь мелкие маленькие ошибки Javascript, которые раньше занимали часы на отладку, устранены во время компиляции. Количество строк кода, вероятно, примерно вдвое больше, чем в jQuery, но производительность намного выше, так кого это волнует? Вы в основном просто пишете код, с гораздо меньшим количеством циклов компиляции / тестирования / отладки. Часы становятся минутами.

Я скажу, что сначала было довольно сложно заставить ScriptSharp работать с Microsoft AJAX, пока я не узнал об очень важном шаге , который вы должны предпринять, чтобы работать с ним. Я выдернул свои волосы на несколько дней, прежде чем я знал об этом. (Я полагаю, что это задокументировано в 61-страничном PDF-файле ScriptSharp, но его очень легко замаскировать.) Ключ в том, чтобы выбрать тип проекта "Script # Class Library внутри веб-сайта" (или «Библиотека классов 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 был все еще там.

Возможно, пример будет поучительным:

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 был все еще там.

Возможно, пример будет поучительным:

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 был все еще там.

23
ответ дан 29 November 2019 в 23:14
поделиться

Это делается во внутреннем классе в сборке System.Web.Mvc под названием System.Web.Mvc.ControllerTypeCache ].

Кстати, методы действия не обязаны возвращать ActionResult . Например, они могут с радостью вернуть void .

  • C # в MSIL для JavaScript для браузера
  • C # в MSIL в JavaScript для AppJet
  • C # в MSIL в PHP5 для хостинга решений
  • C # в MSIL в Java для браузерных апплетов
  • C # в MSIL в Java для приложений
  • C # для MSIL в Java для JavaCard
  • C # для MSIL в C99 для собственных приложений-заглушек
  • C # для MSIL в ActionScript3 для Flash 9
  • C # для MSIL для Adobe Alchemy C для Flash 9
  • От C # до MSIL до C # 2.0

С некоторыми усилиями Visual Basic также можно использовать в качестве исходного языка. Компилятор jsc никогда не читает ваш исходный код, даже если GWT и Script # делают это. Мой компилятор читает ваш IL.

jsc compiler -

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

Последним примером является плазменная анимация, в которой одиночная реализация может использоваться между этими платформами:

FlashPlasma
(источник: sourceforge.net )

8
ответ дан 29 November 2019 в 23:14
поделиться

Точный сценарий Прототип: Microsoft GWT

Согласно этой странице:

  • Чистый язык с естественными конструкциями.
  • Упрощенный рефакторинг и разведка.
  • Возможность генерировать документацию.
  • Возможность легко настраивать код скрипта.

Я не уверен, согласен ли я со всем этим, но в любом случае это шаг продаж. Похоже, это напечатано с некоторыми функциями ОО. Мнение следующее: Как я уже упоминал, разработчики Java и C #, похоже, хотят отказаться от прототипированных / нетипизированных аспектов Javascript, потому что им неудобно писать код таким образом. Нетипизированные языки прототипов имеют свое место.

3
ответ дан 29 November 2019 в 23:14
поделиться

В моей последней компании я очень широко использовал 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! Не уверен, насколько эффективен получаемый код ... Редактировать:

: есть новый проект под названием JSIL, который также переписывает .net-код в JS

Заинтересовавшись кросс-компиляцией, вы также можете взглянуть на проект http://jsc.sourceforge.net/ , который позволяет использовать .net 3.5 и компилировать в JS, Java, Flash или даже PHP. ! Не уверен, насколько эффективен получаемый код ... Редактировать:

: есть новый проект под названием JSIL, который также переписывает .net-код в JS

Заинтересовавшись кросс-компиляцией, вы также можете взглянуть на проект http://jsc.sourceforge.net/ , который позволяет использовать .net 3.5 и компилировать в JS, Java, Flash или даже PHP. ! Не уверен, насколько эффективен получаемый код ... Редактировать:

: есть новый проект под названием JSIL, который также переписывает .net-код в JS

17
ответ дан 29 November 2019 в 23:14
поделиться

Я хотел бы поделиться своими классами-обертками jQuery для Script#. Вы можете получить доступ и использовать мощные возможности jQuery в вашем проекте Script# прямо сейчас.

Получите их отсюда: http://www.springsys.com/blog/

0
ответ дан 29 November 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: