Ich schaue jetzt auf node.js und seine Auswirkungen auf die Leistung (ich bin süchtig nach Geschwindigkeit), aber ich habe mich nicht so sehr damit beschäftigt.
Profil, Profil, Profil. Nur so können Sie feststellen, dass Ihre Beschleunigungen den richtigen Effekt haben. Sie können sich vorstellen, dass es schnell genug ist. Aber die meisten Leute optimieren gerne vorzeitig. Das ist schlimmer als mit dir selbst während eines Dates zu spielen.
Ich frage mich, ob node.js meine typische Webentwicklung in C # und ASP.NET MVC vollständig ersetzen kann, ob es besser als Ergänzung zu C # und ASP.NET MVC ist oder ob es einige Dinge gibt, die einfach "gut genug in Ruhe lassen" sollten ".
Gibt es Anwendungsfälle für / gegen C # und node.js?
Wenn Sie sich in einem Geschäft befinden, das routinemäßig Code in C # schreibt, sollten Sie MVC verwenden (es ist viel besser als WebForms und heißt WebPages). Sie werden nicht viel Zeit für das Tooling-Training verlieren, und das sollten Ihre Workflows bereits erledigen.
Was Sie oben anscheinend nicht angeben, sind die Gründe für die Auswahl. Sie haben zwei aktuelle Marktoptionen angegeben, eine befindet sich noch in der Alpha-Phase, die andere im dritten Jahr der Veröffentlichung der Plattform. Ich möchte die aktuellen Testmodell-Elektroautos nicht mit den Honda-Hybriden vergleichen, die bereits auf dem Markt sind. Sie sind in zwei verschiedenen Ligen.
Hier ist ein Grund für Sie, sich von node.js fernzuhalten, wenn Sie nominell ein C # -Shop sind.
Sie arbeiten derzeit nicht in asynchronen Ereignis-E / A, sondern in einem prozeduralen Format.
Das ist der Gegensatz zu dem, was nodejs für Sie tun wird.
Wenn Sie jedoch häufig asynchronen Code in C # schreiben und ihn häufig in einem ereignisgesteuerten Stil verwenden, sollten Sie node.js unbedingt berücksichtigen.
Folgendes wirst du aufgeben:
IIS - Dies ist für viele Menschen tatsächlich wichtig. Dinge wie die native A / D-Integration sind bereits erledigt und ziemlich fehlerfrei. Tatsächlich lässt sich node.js jetzt gut in IIS integrieren.
- Rasiermessertemplat - Wenn Sie ernsthaft C # MVC gemacht haben, dann verwenden und lieben Sie Rasiermesser und wie schnell Sie Dinge erledigen können. Es gibt ähnliche Vorlagen in Node, und ich klopfe sicherlich nicht an Node, aber die gesamte Toolchain ist bereits in C # vorhanden, und viele davon werden derzeit in der Node-Welt erstellt. NB: Viele dieser Werkzeuge sind jetzt eher reifen _
- Erstellung von DLLs zur Kompilierungszeit - node.js wird im Allgemeinen im laufenden Betrieb kompiliert, dh, nicht alle Pfade werden beim Start überprüft. Es ist durchaus möglich, dass der Knoten wirklich schlechten Code enthält, den niemand berührt, prüft oder testet.
- Alle derzeit in VS integrierten Tools, die Sie täglich verwenden - Es gibt einfach nicht so viel VS-Unterstützung für Javascript. Zum Teil, weil alles in Javascript so dynamisch ist. NB: Microsoft arbeitet offensichtlich an der Unterstützung von Tools für Javascript _
Folgendes erhalten Sie:
- Alles, was Sie entwickeln, wird in derselben Sprache verfasst, vorausgesetzt, Sie führen sowohl clientseitige Skripte als auch serverseitige Skripte aus. (oder warum sollten Sie überhaupt Javascript auf dem Server in Betracht ziehen)
Da ich Node hier also völlig verprügele, möchte ich darauf hinweisen, dass Node meine Spielsprache zu Hause ist, ich liebe es und ich helfe Leuten, es manchmal auf den Stackoverflow-Chat-Servern (Raum 642) zu debuggen. Ich sehe, dass es in Zukunft ein großes und erstaunliches Potenzial hat.
Ich sage nur, wirf das Baby nicht raus und frage mich, warum das Badewasser schmutzig ist.
Sie haben keinen Grund angegeben, warum Sie Ihre jahrelange Erfahrung aufgeben und mit etwas Neuem beginnen sollten. Sind entweder schlechte Werkzeuge? Überhaupt nicht. Beide sind großartig und machen die Entwicklung zum Kinderspiel.
Kann der Knoten C # ersetzen? Ja, ganz sicher. So könnte PHP oder Java oder Ruby. Sie fragen nicht danach.
Hier erfahren Sie, wann Sie bereit sind, node.js anstelle von C # zu programmieren:
- Sie überlegen, ein Buch zu schreiben, um anderen Menschen zu helfen, "Javascript zu bekommen", anstatt der langweiligen alten Programme, die sie zuvor in C # usw. geschrieben haben.
- Sie haben Probleme mit synchronen (blockierenden) E / A, die verhindern, dass Ihre Apps tatsächlich arbeiten.
- Sie verwenden KEINE anderen Bibliotheken in C # als die Standard-MVC und das nur für das Routing. Sie sind sich ziemlich sicher, dass Sie eine bessere Routing-Engine verwenden können, und Sie codieren alles so nah wie möglich am Metall.
- Jedes Datenobjekt, das Sie entwerfen, wird als Hash anstelle eines stark typisierten Objekts angezeigt.