Casos de uso para node.js e c #


10

Faço bastante trabalho do ASP.NET (C #, MVC), mas a maioria é típica de desenvolvimento web. Eu faço arquitetura Restful usando repositórios CRUD. A maioria dos meus clientes não possui muitos requisitos avançados em seus aplicativos.

Agora estou analisando o node.js e suas implicações no desempenho (sou viciado em velocidade), mas ainda não mergulhei nisso.

Eu estou querendo saber se

  • O node.js pode substituir realisticamente meu desenvolvimento típico da Web em C # e ASP.NET MVC (não reescrevendo aplicativos existentes, mas trabalhando em novos)
  • O node.js pode complementar um aplicativo ASP.NET MVC adicionando algo de assíncrono à arquitetura existente.

Existem casos de uso a favor / contra C # e node.js?

Editar

Eu amo o ASP.NET MVC e estou super empolgado com o que está acontecendo. Apenas tentando ver se há casos de uso especiais que favorecem o


Sim, eu sei que isso pode ser uma conversa maior ao incluir Ruby ou PHP, mas para essa pergunta em particular, não estou interessado em nenhuma dessas ... sou apenas eu.
Chase Florell 08/12/19

A resposta é, tente o nó. Leia sobre isso. Veja se você gosta.
Raynos

Respostas:


11

Agora estou analisando o node.js e suas implicações no desempenho (sou viciado em velocidade), mas ainda não mergulhei nisso.

Perfil, perfil, perfil. Essa é a única maneira de saber que suas acelerações estão tendo o efeito adequado. Você pode adivinhar que é rápido o suficiente. Mas a maioria das pessoas gosta de otimizar prematuramente. Isso é pior do que brincar com você mesmo durante um encontro.

Pergunto-me se o node.js pode substituir completamente meu desenvolvimento típico da Web em C # e ASP.NET MVC, se é melhor como complemento do C # e ASP.NET MVC, ou se há algumas coisas que devem "deixar bem o suficiente" "

Existem casos de uso a favor / contra C # e node.js?

Claro, se você estiver em uma loja que rotineiramente escreve código em C #, deve usar o MVC (é muito melhor que o WebForms e é chamado de Páginas da Web). Você não perderá muito tempo com o treinamento em ferramentas, e é algo que seus fluxos de trabalho já devem lidar.

O que você não parece indicar acima são os motivos para escolher cada um. Você forneceu duas opções de mercado atuais, uma ainda nos estágios Alpha, a outra no terceiro ano completo de lançamento da plataforma. Eu não gostaria de comparar os modelos atuais de carros elétricos com os híbridos Honda que já estão no mercado. Eles estão em duas ligas diferentes.

Agora, aqui está um motivo para você ficar longe do node.js, se você é nominalmente uma loja de C #.

No momento, você não trabalha em E / S com eventos assíncronos; atualmente, trabalha em um formato processual.

Essa é a antítese do que o nodejs fará por você.

No entanto, se você está frequentemente escrevendo código assíncrono em C # e o usa muito em um estilo de evento, sim, o node.js é para você considerar fortemente.

Aqui está o que você vai desistir:

  • IIS - Isso é realmente importante para muitas pessoas. Coisas como a integração A / D nativa já estão prontas e sem erros. Na verdade, o node.js agora se integra bem ao IIS.
  • Modelo de Razor - Se você fez algum MVC em C # sério, está usando e amando o Razor e a rapidez com que pode produzir as coisas. Existem modelos semelhantes no nó, e certamente não estou batendo no nó, mas toda a cadeia de ferramentas já está presente em C #, e muito disso está sendo construído atualmente no mundo dos nós. NB: muitas dessas ferramentas estão agora bastante maduras _
  • a compilação de dlls - node.js geralmente é compilada em tempo real, ou seja, nem todos os caminhos são verificados na inicialização. É inteiramente possível ter um código realmente ruim no nó, que ninguém toca, verifica ou testa.
  • Todas as ferramentas atualmente incorporadas ao VS que você usa diariamente - simplesmente não há muito suporte ao VS para javascript. Em parte porque tudo em javascript é muito dinâmico. NB: A Microsoft está obviamente trabalhando no suporte de ferramentas para javascript _

Aqui está o que você ganhará:

  • tudo o que você desenvolver será no mesmo idioma, supondo que você faça scripts no lado do cliente e no servidor. (ou por que você consideraria o javascript no servidor)

Portanto, como eu pareço atacar o Nó completamente aqui, deixe-me salientar que o nó é a minha linguagem de jogo em casa, eu o amo e ajudo as pessoas a depurá-lo às vezes nos servidores de bate-papo stackoverflow (sala 642). Vejo que ele tem um grande e estupendo potencial no futuro.

Só estou dizendo, não jogue fora o bebê e me pergunto por que a água do banho está suja.

Você não deu uma razão para desistir de seus anos de experiência e começar algo novo. As ferramentas são ruins? De modo nenhum. Ambos são ótimos e facilitam o desenvolvimento.

O nó pode substituir o C #? Sim, com certeza. O mesmo poderia acontecer com PHP, Java ou Ruby. Você não está perguntando sobre isso.

Veja como você sabe quando está pronto para programar o node.js em vez do C #:

  • Você está pensando em escrever um livro para ajudar outras pessoas a "obter javascript" em vez dos programas antigos e chatos que eles escreveram antes em C # e etc.
  • Você tem problemas com a E / S síncrona (bloqueio) para impedir que seus aplicativos realizem um trabalho real.
  • Você não está usando QUALQUER bibliotecas em C # que não seja o MVC padrão e apenas para roteamento, e tem certeza de que pode fazer um mecanismo de roteamento melhor e está codificando tudo o mais próximo possível do metal.
  • Todo objeto de dados que você cria, você vê como um hash, em vez de um objeto fortemente tipado.

11
Meu conselho, escreva três ou quatro sites complexos em node.js. Comece pequeno e depois fique maior.
precisa saber é o seguinte

11
Eu não estou na faculdade / universidade. Estou desenvolvendo solo há cerca de 8 anos e estou me saindo muito bem. Eu posso fazer um $$$ melhor por conta própria do que em outra empresa.
Chase Florell 08/12/19

2
O C # compila a verificação de tempo de todos os caminhos de código. Ele não será lançado até que dados incorretos os explodam. O nó não interromperá a compilação apenas por causa do código incorreto. Ou eu estava usando uma versão antiga e isso mudou.
precisa saber é o seguinte

11
@Raynos: Navalha não é um projeto de terceiros de código aberto, é o motor oficialmente endossado vista desenvolvido por-Microsoft para ASP.NET MVC 3
Carson63000

11
No momento da redação deste documento, o Node.js não era suportado pelo IIS, mas agora é o mesmo.
jcolebrand

5

Se você está apenas fazendo uma arquitetura tranquila usando repositórios CRUD, não há um bom motivo para portar um aplicativo existente para o node.js.

Se você estiver escrevendo um novo aplicativo que faz REST e CRUD, pode haver bons motivos para usar o node.js desde o início.

É realmente por aplicativo dependente.

Por exemplo, pessoalmente, eu escreveria aplicativos REST / CRUD totalmente no node.js porque é uma preferência pessoal. É ótimo desenvolver o nó, o ASP.NET MVC era uma estrutura restritiva irritante para mim.

Veredicto: Ambas as ferramentas fazem o trabalho. Se não houver requisitos específicos que favoreçam o .NET ou o nó, use o que quiser. ou seja, é preferência pessoal.

No entanto, posso listar alguns dos benefícios óbvios de ambas as plataformas

ASP.NET

  • Integração Windows / .NET. Se você deseja que sua pilha da Microsoft seja fortemente acoplada e altamente integrada, você quer o .NET
  • força de trabalho prontamente disponível
  • Estruturas monolóticas que seguram sua mão
  • Tem um conjunto de recursos que funcionam imediatamente. Se você está satisfeito com esses recursos, melhora a produtividade. Se você deseja recursos personalizados, acaba lutando contra a ferramenta e reduzindo a produtividade.

Node.js

  • Linguagem única para toda a sua pilha da Web (se você estiver usando bancos de dados noSQL que usam js para suas "consultas" como couch / mongo).
  • Ótimo para aplicativos da Web em tempo real, usando ferramentas como o socket.io
  • Ótimo para cola de rede, quando tudo o que o servidor faz é conversar com n terminais remotos de vários tipos diferentes.
  • Fornece apenas os recursos mínimos necessários, prontos para uso. Isso significa que você pode criar seu aplicativo da maneira altamente personalizada que desejar.
  • Coleção de pequenas ferramentas de estilo unix que fazem uma coisa e outra bem, fáceis de misturar e combinar
  • npm : gerenciamento de pacotes feito corretamente
  • comunidade rica de código aberto

Sim, não está procurando portar aplicativos existentes. Pensando nos aplicativos que virão no futuro.
Chase Florell

5
@Raynos deve adicionar o aviso de que ele é um evangelista do Node.js. e nunca criou um site baseado no MVC3 / 4. (Eu acho que isso reflete na resposta).
Matt Esch
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.