Merhaba;
Uzun yıllar nodejs geliştirmiş biri olarak (türevleri dahil, deno, bun vs), Kendi tecrübelerime dayanarak maddeler halinde kişisel görüşlerimi özetlemem gerekirse;
.net
- net backend için özellikle Türkiye'de kurumsal anlamda oturmuş yeri olan bir seçim.
- modern yapıda aktif olarak ( son 2-3 yıl ) çok hızlı bir şekilde geliştiriliyor.
- c# multi-threding ve concurrency konusunda hatrı sayılır verimliliğe sahip.
- c# kaynak kullanımda diğer conterpartlara ( transpile edildikten sonra makina koduna derlenen diller arasında java vs) göre cok daha iyi
.net ile frontend
sadece web kısmını konusursak aslında çok bir seçenek yok, blazor var oda suan icin javascript frameworklerine göre baya hantal kalıyor. Dotnet codebaselere kolay entegre edilebilmesi dışında başka bir avantajı yok bence.
.net community
.net communitysi birazdaha enterprise yönelik olduğu için çok fazla open source paket yok, olanlarında çok az bir kısmı ücretsiz. Kişisel yada ufak çaplı projeler için doğru bir seçim değil diyebilirim.
Kendimden örneklendirirsem;
Kendi projemde static extension methodları mocklama ihtiyacı duydum ve bir pakete ihtiyac duydum. Free alternatifi olmadığı için 400$ lik bir paket almanın kararını vermeye çalışıyorum 😃 https://www.telerik.com/purchase/individual-justmock.aspx
Nodejs
Nodejs aslında frontend için bildiğin dil ile backend de yaz mantalitesiyle çıkmış birşey. bundan 3-4 yıl öncesine bu konuda cok populerdi. Yeni başlayan bütün projeler nodejs ile başlıyordu. Bunun sebebi nodejs'in single thread üzerinde nonblocking i-o yapısı sayesinde, basit bir crud api çok yüksek trafikleri rahat bir şekilde karşılayabiliyor.
- devasa bi communitye sahip sokakta birine elini atsan ya nodejs biliyordur yada geliştiriyordur 😃. Buda bir suru hazır paket bolluğu demek.
- nodejs rapid development açısından çok fazla tool sağlıyor mesela MERN (m)ongodb (e)xpress (r)eact and (n)odejs stack dediğimiz şeyin çıkış noktası bu. Bu sebeple nodejs küçük ve orta çaplı projeler için biçilmiş kaftan. Hocam Netflix bile nodejs kullanıyor diyeceksin backendlerinin çok küçük bir kısmında ve frontendlerinde kullanıyorlar.
NodeJs öğrenmek zorunda mıyım?
Kısa cevap kısmen hayır
Uzun cevap;
Bir web geliştiricisi olarak konuşuyorum. alet çantanda ne kadar donanım varsa o kadar donanımlısındır. (düz mantık)
front-end frameworkler'i
React, vue, svelte, solid, alpine, angular ... daha sayamacagim 10 larca nodejs tabanli javascript frameworku derlenmek icin nodejs ihtiyac duyor. commonJs ekosistemine hakim olmak gerekmesede en azindan bir package json nedir, npm nasıl kullanılır gibi seyleri bilmek gerek,
Backend frameworkler'i
Express, Fastify, Koa, Hapi, Derby gibi rapid devolopment için geliştirilmiş kütüphaneler ufak çaplı projeler için mükemmel olsa da bence complex projelerde sıkıntı yaratıyorlar. Bunun sebebi javascriptin oop değilde fonksiyonel programlaya daha yatkın olmasından kaynaklı
Nest, loopback, Sails, Feathers, Adonis gibi daha karmaşık projeler için de frameworkler bulunuyor. Tabi .net yada spring gibi bir şeyi denedikten sonra bunların yüzüne bakasınız gelmiyor
node_modules heaviest thing in the universe! daha önce nodejs ile yazdığım bir projenin aynısını go ile yazdım, nodejs dependencyleriyle birlikte 400mb tutarken, go sadece 6.5mb tutuyordu.
Full stack
Nodejs'in one cıktığı yer bence burası. Hem daha developer friendly hemde alternatiflerinden daha performanslı
Next, Nuxt, Svelte-Kit, Meteor gibi frameworkleri öğrenip ufak çaplı fullstack işlerinizi tek proje ile çözebilirsiniz. Yada bunların initiative ssr özelliğini kullanıp sadece front end olarak kullanabilirsiniz sonuçta elinizde .net gibi güçlü bir backend toolu var.
https://www.meteor.com/
https://kit.svelte.dev/ - benim kendi favorim react'tan 80-90 kat daha performaslı
https://nextjs.org/ - React/Next piyasayı domine etsede bunlardan 1 kaçını bilmek çok şey kazandırır
https://nuxt.com/
https://redwoodjs.com/
Edit: https://astro.build/ - bu mukemmel birsey, react, vue, ve svelte 3ünden birini öğrenip direk bunu öğrenin derim bu 3 frameworkude bunda kullanabiliyorsunuz. şu ana kadar tecrübe ettiğim en güzel static site generator
Fullstack olma konusunda burayı bir müddet takip edin. bir sure sonra eksikliklerinizi ve ne öğrenmeniz gerektiğini kendiniz kavrayabilirsiniz.
Umarım kafanızı karıştırmadan birşeyler anlatabilmişimdir.
Saygılar, iyi çalışmalar;