Casi d'uso per node.js ec #

10

Faccio un bel po 'di lavoro su ASP.NET (C #, MVC), ma la maggior parte è tipica dello sviluppo web. Faccio architettura riposante usando i repository CRUD. La maggior parte dei miei clienti non ha molti requisiti avanzati nelle loro applicazioni.

Ora guardo node.js e le sue implicazioni sulle prestazioni (sono dipendente dalla velocità), ma non l'ho approfondito molto.

Mi chiedo se

  • node.js può realisticamente sostituire il mio sviluppo web tipico in C # e ASP.NET MVC (non riscrivendo le app esistenti, ma quando lavoro su quelle nuove)
  • node.js può integrare un'app MV.NET di ASP.NET aggiungendo un po 'di bontà asincrona all'architettura esistente.

Ci sono casi d'uso per / contro C # e node.js?

Modifica

Adoro ASP.NET MVC e sono super eccitato da dove sta andando. Sto solo cercando di vedere se ci sono casi d'uso speciali che potrebbero favorire

    
posta Chase Florell 08.12.2011 - 19:25
fonte

2 risposte

11

I'm now looking at node.js and it's performance implications (I'm addicted to speed), but I haven't delved into it all that much.

Profilo, profilo, profilo. Questo è l'unico modo per sapere che i tuoi aumenti di velocità stanno avendo il giusto effetto. Puoi indovinare che è abbastanza veloce. Ma alla maggior parte delle persone piace ottimizzare prematuramente. È peggio che giocare con te stesso durante un appuntamento.

I'm wondering if node.js can completely replace my typical web development in C# and ASP.NET MVC, if it's better as a complement to C# and ASP.NET MVC, or if there's some things that should just "leave well enough alone".

Esistono casi d'uso per / contro C # e node.js?

Certo, se sei in un negozio che scrive regolarmente codice in C #, dovresti usare MVC (è molto meglio di WebForms e si chiama WebPages). Non perderai molto tempo per il training degli strumenti, ed è qualcosa che i tuoi flussi di lavoro dovrebbero già gestire.

Ciò che non sembra indicare sopra è i motivi per sceglierli. Hai dato due attuali opzioni di mercato, una ancora in stage Alpha, l'altra al terzo anno completo di rilascio della piattaforma. Non vorrei confrontare le attuali auto elettriche modello di prova con gli ibridi Honda che sono già sul mercato. Sono in due diversi campionati.

Ora, ecco una ragione per cui devi stare lontano da node.js, se sei nominalmente un negozio C #.

Attualmente non lavori in I / O eventi asincroni, lavori attualmente in un formato procedurale.

Questa è l'antitesi di ciò che nodejs sta per fare per te.

Tuttavia, se scrivi frequentemente codice asincrono in C #, e lo usi molto in uno stile evented, allora sì, node.js lo devi prendere in considerazione.

Ecco cosa ti arrenderai:

  • IIS - Questo è davvero importante per molte persone. Cose come l'integrazione A / D nativa sono già state fatte, e piuttosto prive di errori. Attualmente node.js ora si integra bene con IIS.
  • Razor templating - Se hai fatto un serio C # MVC, allora stai usando e amando Razor e quanto velocemente puoi sfornare le cose. Ci sono modelli simili nel nodo, e certamente non sto battendo il nodo, ma l'intera toolchain è già presente in C #, e molti sono attualmente in fase di costruzione nel mondo dei nodi. NB: molti di questi strumenti ora sono piuttosto maturi _
  • costruzione in compilazione di dlls - node.js generalmente viene compilato al volo, vale a dire, non tutti i percorsi vengono controllati all'avvio. È del tutto possibile avere un codice veramente brutto nel nodo che nessuno tocchi mai, controlli o test contro.
  • Tutti gli strumenti attualmente incorporati in VS che usi quotidianamente - Non c'è molto supporto VS per javascript. In parte perché tutto in javascript è così dinamico. NB: Microsoft sta ovviamente lavorando sul supporto degli strumenti per javascript _

Ecco cosa otterrai:

  • tutto ciò che sviluppi sarà nella stessa lingua, supponendo che tu faccia lo scripting lato client così come il lato server. (o perché dovresti considerare javascript sul server)

Quindi, dal momento che mi sembra di essere qui bashing interamente, vorrei far notare che il nodo è il mio linguaggio di gioco a casa, lo adoro, e aiuto le persone a debuggarlo a volte sui server di chat di stackoverflow (stanza 642). Vedo che ha un grande e stupendo potenziale in futuro.

Sto solo dicendo, non buttare via il bambino e chiedersi perché l'acqua sporca sia sporca.

Non hai dato una ragione per cui dovresti rinunciare ai tuoi anni di esperienza e iniziare qualcosa di nuovo. Sono o cattivi strumenti? Affatto. Entrambi sono fantastici e rendono lo sviluppo un gioco da ragazzi.

Il nodo può sostituire C #? Sì, abbastanza certamente. Così potrebbe PHP o Java o Ruby. Non te lo chiedi.

Ecco come puoi sapere quando sei pronto per programmare node.js anziché C #:

  • Stai pensando di scrivere un libro per aiutare gli altri a "usare javascript" invece dei noiosi vecchi programmi che hanno scritto in precedenza in C # e così via.
  • Hai problemi con I / O sincroni (bloccanti) che impediscono alle app di svolgere il proprio lavoro.
  • Non stai utilizzando ANY librerie in C # diverse dal MVC predefinito e solo per il routing, e sei abbastanza sicuro che puoi fare un motore di routing migliore, e stai codificando tutto quanto vicino al metal come puoi.
  • Ogni oggetto dati che disegni viene visualizzato come hash anziché come oggetto strongmente tipizzato.
risposta data 08.12.2011 - 20:02
fonte
5

Se stai solo facendo un'architettura riposante usando i repository CRUD, non c'è nessuna buona ragione per port un'applicazione esistente su node.js.

Se stai scrivendo una nuova applicazione che fa REST e CRUD ci possono essere buoni motivi per usare node.js dall'inizio.

È davvero dipendente dall'applicazione.

Per esempio personalmente scriverei le applicazioni REST / CRUD completamente in node.js perché è una preferenza personale. Il nodo è bello da sviluppare, ASP.NET MVC era un fastidioso framework restrittivo per me.

Verdetto: entrambi gli strumenti completano il lavoro. Se non ci sono requisiti specifici che favoriscono .NET o nodo, allora usa quello che vuoi. vale a dire la preferenza personale.

Tuttavia, posso elencare alcuni dei vantaggi offerti da entrambe le piattaforme

ASP.NET

  • Integrazione Windows / .NET. Se vuoi che il tuo microsoft stack sia strettamente accoppiato e altamente integrato, allora vuoi .NET
  • forza lavoro prontamente disponibile
  • Quadri monolitici che ti tengono per mano
  • Ha una serie di funzionalità che funzionano senza problemi. Se sei soddisfatto di queste funzionalità, migliora la produttività. Se desideri funzionalità personalizzate, invece, finisci per combattere lo strumento e ridurre la produttività.

Node.js

  • Unica lingua per l'intero stack Web (se si utilizzano database noSQL che utilizzano js per le loro "query" come couch / mongo).
  • Ideale per le applicazioni web soft in tempo reale che utilizzano strumenti come socket.io
  • Ottimo per la colla di rete quando tutto il tuo server fa parlare con n punti finali remoti di vari tipi diversi.
  • Ti offre solo le funzionalità essenziali e senza limiti. Ciò significa che puoi creare la tua applicazione nel modo più personalizzato che desideri.
  • Raccolta di piccoli strumenti di stile unix che fanno una cosa e una cosa che sono facili da combinare
  • npm : gestione dei pacchetti completata
  • ricca comunità Open source
risposta data 08.12.2011 - 19:37
fonte

Leggi altre domande sui tag