Сейчас я смотрю на node.js и его влияние на производительность (я зависим от скорости), но я не слишком углублялся в это.
Профиль, профиль, профиль. Это единственный способ узнать, что ваши ускорения оказывают должное влияние. Вы можете догадаться, что это достаточно быстро. Но большинство людей любят преждевременно оптимизировать. Это хуже, чем играть с собой во время свидания.
Мне интересно, может ли node.js полностью заменить мою типичную веб-разработку на C # и ASP.NET MVC, если он лучше в качестве дополнения к C # и ASP.NET MVC, или если есть некоторые вещи, которые следует просто «оставить в покое»? ».
Существуют ли варианты использования для / против C # и node.js?
Конечно, если вы находитесь в магазине, который регулярно пишет код на C #, то вам следует использовать MVC (он намного лучше, чем WebForms и называется WebPages). Вы не потеряете много времени на обучение инструментам, и ваши рабочие процессы уже должны справиться с этим.
То, что вы не указываете выше, это причины, по которым следует выбирать каждый. Вы предоставили два текущих рыночных варианта, один из которых находится на стадии разработки Alpha, а другой - на третьем году выпуска платформы. Я бы не хотел сравнивать текущие тестовые модели электромобилей с гибридами Honda, которые уже есть на рынке. Они в двух разных лигах.
Теперь у вас есть причина держаться подальше от node.js, если вы номинально являетесь магазином C #.
В настоящее время вы не работаете с асинхронным вечерним вводом-выводом, вы в настоящее время работаете в процедурном формате.
Это противоположность тому, что nodejs собирается сделать для вас.
Тем не менее, если вы часто пишете асинхронный код на C # и часто используете его в четном стиле, тогда да, node.js - это то, что вам следует серьезно рассмотреть.
Вот что вы откажетесь:
IIS - это действительно важно для многих людей. Такие вещи, как встроенная аналого-цифровая интеграция, уже сделаны и практически не содержат ошибок. На самом деле node.js теперь хорошо интегрируется с IIS.
- Шаблонирование Razor. Если вы работали с серьезным C # MVC, то вы используете Razor и любите его, а также то, как быстро вы можете создавать вещи. В ноде есть похожие шаблоны, и я, конечно, не стучу нодом, но весь набор инструментов уже присутствует в C #, и большая часть его в настоящее время создается в мире нод. NB: много этого инструмента теперь достаточно зрелые _
- сборка dlls во время компиляции - node.js обычно компилируется на лету, то есть не все пути проверяются при запуске. Вполне возможно иметь действительно плохой код в узле, который никто никогда не трогает, не проверяет и не проверяет.
- Все инструменты, в настоящее время встроенные в VS, которые вы используете ежедневно - просто не так много поддержки VS для javascript. Отчасти потому, что все в JavaScript так динамично. NB: Microsoft, очевидно, работает над инструментальной поддержкой javascript _
Вот что вы получите:
- все, что вы разрабатываете, будет на одном языке, при условии, что вы выполняете сценарии на стороне клиента, а также на стороне сервера. (или почему вы даже рассматриваете javascript на сервере)
Итак, поскольку мне кажется, что здесь я полностью блокирую Node, позвольте мне отметить, что узел является моим языком воспроизведения дома, мне это нравится, и я помогаю людям иногда отлаживать его на серверах чата stackoverflow (комната 642). Я вижу, что это имеет большой и колоссальный потенциал в будущем.
Я просто говорю, не выбрасывайте ребенка и не удивляйтесь, почему вода в ванной грязная.
Вы не указали причину, по которой вы должны отказаться от многолетнего опыта и начать что-то новое. Или плохие инструменты? Не за что. И то, и другое великолепно и делает разработку проще простого.
Может ли узел заменить C #? Да, конечно. Так мог бы PHP или Java или Ruby. Вы не спрашиваете об этом.
Вот как вы узнаете, когда будете готовы программировать node.js вместо C #:
- Вы подумываете о том, чтобы написать книгу, чтобы помочь другим людям «получить javascript» вместо скучных старых программ, которые они написали ранее на C # и т. Д.
- У вас есть проблемы с синхронным (блокирующим) вводом-выводом, мешающим вашим приложениям выполнять реальную работу.
- Вы не используете ЛЮБЫЕ библиотеки в C #, кроме MVC по умолчанию, и это только для маршрутизации, и вы почти уверены, что можете сделать лучший механизм маршрутизации, и вы кодируете все настолько близко к металлу, насколько это возможно.
- Каждый объект данных, который вы разрабатываете, вы видите как хеш вместо строго типизированного объекта.