Node.js ve c # için kullanım örnekleri


10

Biraz ASP.NET iş (C #, MVC) yapmak, ama çoğu tipik web geliştirme. CRUD depolarını kullanarak huzurlu bir mimari yapıyorum. Müşterilerimin çoğunun uygulamaları içinde çok fazla gelişmiş gereksinimi yoktur.

Şimdi node.js'ye bakıyorum ve performans sonuçları (hıza bağımlıyım), ama o kadar çok uğraşmadım.

Merak ediyorum eğer

  • node.js, C # ve ASP.NET MVC'deki tipik web geliştirmemizi gerçekçi bir şekilde değiştirebilir (mevcut uygulamaları yeniden yazmaz, ancak yenileri üzerinde çalışırken)
  • node.js, varolan mimariye zaman uyumsuz bir iyilik ekleyerek bir ASP.NET MVC uygulamasını tamamlayabilir.

C # ve node.js için / karşı kullanım örnekleri var mı?

Düzenle

ASP.NET MVC seviyorum ve nereye gidiyor ile çok heyecanlıyım. Sadece tercih edecek özel kullanım durumları olup olmadığını görmeye


Evet, bunun Ruby veya PHP'yi dahil ederken daha büyük bir konuşma olabileceğini anlıyorum, ancak bu özel soru için bunlardan hiçbiriyle ilgilenmiyorum ... bu sadece ben.
Chase Florell

Cevap, düğümü deneyin. Bunu okuyun. Hoşuna bakın.
Raynos

Yanıtlar:


11

Şimdi node.js'ye bakıyorum ve performans sonuçları (hıza bağımlıyım), ama o kadar çok uğraşmadım.

Profil, profil, profil. Hızlandırıcılarınızın doğru etkiye sahip olduğunu bilmenin tek yolu budur. Bunun yeterince hızlı olduğunu tahmin edebilirsiniz . Ancak çoğu insan erken optimize etmeyi sever. Bu bir tarihte kendinle oynamaktan daha kötü.

Node.js'nin C # ve ASP.NET MVC'deki tipik web geliştirmemizi tamamen değiştirip değiştiremeyeceğini, C # ve ASP.NET MVC'nin bir tamamlayıcısı olarak daha iyi olup olmadığını veya "yeterince iyi bırakılması gereken bazı şeyler" olup olmadığını merak ediyorum. ".

C # ve node.js için / karşı kullanım örnekleri var mı?

Elbette, kod C # 'da düzenli olarak yazan bir dükkandaysanız, MVC kullanmalısınız (WebForms'tan çok daha iyi ve Web Sayfaları denir). Takım eğitimine çok fazla zaman kaybetmeyeceksiniz ve iş akışlarınızın zaten ele alması gereken bir şey.

Yukarıda belirtmediğiniz şey, her birini seçmek için nedenlerdir. Biri hala Alfa aşamalarında, diğeri platformun üçüncü yılında piyasaya sürülen iki mevcut piyasa seçeneği sundunuz. Mevcut test modeli elektrikli arabaları piyasada bulunan Honda hibritleriyle karşılaştırmak istemem. İki farklı ligde.

Eğer nominal olarak bir C # dükkanıysanız, node.js'den uzak durmanız için bir neden var.

Şu anda eşzamansız olaylı g / Ç'de çalışmıyorsunuz, şu anda yordamsal bir biçimde çalışıyorsunuz.

Düğümlerin sizin için yapacağı antitez budur.

Ancak, C # 'da sık sık eşzamansız kod yazıyorsanız ve olaylı bir tarzda çok kullanıyorsanız, evet, node.js kesinlikle düşünmeniz içindir.

İşte vazgeçeceğiniz şey:

  • IIS - Bu aslında birçok insan için önemlidir. Yerel A / D entegrasyonu gibi şeyler zaten yapılmıştır ve oldukça hatasızdır. Aslında node.js artık IIS ile iyi entegre oluyor.
  • Tıraş bıçağı templating - Eğer ciddi bir C # MVC yaptıysanız, o zaman Razor kullanıyorsunuz ve seviyorsunuz ve işleri ne kadar çabuk kesebiliyorsunuz. Düğümde benzer şablonlar var ve kesinlikle düğümü çalmıyorum, ancak tüm araç zinciri zaten C #'da mevcut ve birçoğu şu anda düğüm dünyasında inşa ediliyor. Not: Bu takımın çoğu şimdi oldukça olgun _
  • dlls derleme zamanı bina - node.js genellikle anında derlenir, yani, başlangıçta tüm yollar kontrol edilmez. Hiç kimsenin dokunmadığı, kontrol etmediği veya test etmediği düğümde gerçekten kötü bir kod olması tamamen mümkündür.
  • Günlük kullandığınız VS içine inşa edilen tüm araçlar - Javascript için çok fazla VS desteği yoktur. Kısmen javascript'teki her şey çok dinamik olduğu için. Not: Microsoft, Javascript _ için takım desteği üzerinde çalışıyor.

İşte kazanacağınız şeyler:

  • geliştirdiğiniz her şey, istemci tarafı komut dosyası ve sunucu tarafı yaptığınız varsayılarak aynı dilde olacaktır. (veya neden sunucudaki javascript'i düşünmelisiniz)

Bu nedenle, Düğüm'ü tamamen dayak gibi göründüğüm için, düğümün evde oyun dilim olduğunu belirtmeme izin verin, seviyorum ve insanların bazen stackoverflow sohbet sunucularında (oda 642) hata ayıklamasına yardımcı oluyorum. Gelecekte büyük ve muazzam bir potansiyele sahip olduğunu görüyorum.

Sadece söylüyorum, bebeği dışarı atma ve banyo suyunun neden kirli olduğunu merak etme.

Yılların deneyiminden vazgeçmeniz ve yeni bir şeye başlamanız için bir neden belirtmediniz. Kötü araçlardan biri mi? Bir şey değil. Her ikisi de harika ve gelişimi bir esinti haline getiriyor.

Düğüm C # yerine geçebilir mi? Evet, kesinlikle. PHP veya Java veya Ruby de öyle. Bunları sormuyorsun.

C # yerine node.js'yi programlamaya hazır olduğunuzu nasıl anlayacağınız aşağıda açıklanmıştır:

  • Daha önce C # ve daha önce yazdıkları sıkıcı eski programlar yerine diğer insanlara "javascript almaları" için bir kitap yazmayı düşünüyorsunuz.
  • Senkronize (engelleme) G / Ç uygulamalarınızın gerçek iş yapmasını engellemede sorunlarınız var.
  • Varsayılan MVC dışında herhangi bir C # kütüphanesi kullanmıyorsunuz ve sadece yönlendirme için ve daha iyi bir yönlendirme motoru yapabileceğinizden eminsiniz ve metale olabildiğince yakın olan her şeyi kodluyorsunuz.
  • Tasarladığınız her veri nesnesi, güçlü yazılan bir nesne yerine karma olarak görür.

1
Benim tavsiyem, node.js'de üç veya dört karmaşık web sitesi yaz. Küçük başlayın, sonra büyüyün.
jcolebrand

1
Kolejde / üniversitede değilim. Yaklaşık 8 yıldır solo geliştiriyorum ve kendim için gayet iyi çalışıyorum. Başka bir şirket altında kendi başına daha iyi $$$ yapabilirsiniz.
Chase Florell

2
C #, tüm kod yollarının zaman denetimini derler. Kötü veriler patlayana kadar atmaz. Düğüm yalnızca kötü kod nedeniyle derlemeyi durdurmaz. Ya da eski bir versiyon kullanıyordum ve bu değişti.
jcolebrand

1
@Raynos: Razor üçüncü taraf bir açık kaynak projesi değil, ASP.NET MVC 3 için resmi olarak geliştirilmiş Microsoft tarafından geliştirilen görüntüleme motorudur
Carson63000

1
Bu yazı yazıldığı sırada Node.js IIS tarafından desteklenmedi, ancak şimdi destekleniyor.
jcolebrand

5

Eğer, sadece CRUD depoları kullanılarak dinlendirici mimarisini yaparken Eğer için iyi bir neden yoktur port node.js. için varolan uygulama

REST ve CRUD yapan yeni bir uygulama yazıyorsanız, node.js'yi en başından kullanmak için iyi nedenler olabilir.

Gerçekten uygulama başına bağımlı.

Örneğin kişisel olarak REST / CRUD uygulamalarını tamamen node.js'de yazıyorum çünkü kişisel tercihi. Düğüm geliştirmek harika, ASP.NET MVC benim için can sıkıcı bir kısıtlayıcı çerçeveydi.

Karar: Her iki araç da işi halleder. .NET veya düğümü destekleyen belirli bir gereksinim yoksa, istediğinizi kullanın. Yani kişisel tercih.

Ancak her iki platformun da bazı avantajlarını listeleyebilirim

ASP.NET

  • Windows / .NET entegrasyonu. Microsoft yığınınızın sıkıca birleştirilmesini ve son derece entegre olmasını istiyorsanız, .NET'i istersiniz.
  • hazır iş gücü
  • Elinizi tutan monolotik çerçeveler
  • Kutudan çıkan bir dizi özelliğe sahiptir. Bu özelliklerden memnunsanız üretkenliği artırır. Özel özellikler istiyorsanız, bunun yerine araca karşı mücadele eder ve verimliliği azaltırsınız.

node.js

  • Tüm web yığınınız için tek dil (eğer kanepe / mongo gibi "sorguları" için js kullanan noSQL veritabanları kullanıyorsanız).
  • Socket.io gibi araçları kullanarak gerçek zamanlı yumuşak web uygulamaları için idealdir
  • Sunucunuzun yaptığı tüm ağ tutkal için harika, çeşitli farklı türlerde n uzak uç nokta ile konuşmaktır.
  • Sadece kutudan çıkarılmış minimum özellikleri sunar. Bu, uygulamanızı son derece özelleştirilmiş bir şekilde oluşturabileceğiniz anlamına gelir.
  • Bir şeyi ve bir şeyi iyi yapan ve karıştırması ve eşleştirmesi kolay küçük unix tarzı araç koleksiyonu
  • npm : paket yönetimi doğru yapıldı
  • zengin Açık kaynak topluluğu

Evet, mevcut uygulamaları taşımak istemiyor. Gelecekte gelecek uygulamaları düşünmek.
Chase Florell

5
@Raynos, bir Node.js evangelisti olduğuna dair feragatnameyi eklemeli ve MVC3 / 4 tabanlı bir web sitesi oluşturmamalıdır. (Sanırım bu cevaba yansıyor).
Matt Esch
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.