ASP.NET MVC 5 ve AngularJS / ASP.NET WebAPI [kapalı]


86

Şu anda şirketimde gelecekteki Web uygulamaları oluşturmak için programlama modelini değerlendiriyorum. Bu yüzden ASP.NET MVC 5 (Razor Görünümlü) ve ASP.NET WebAPI ile AngularJS arasında karar vereceğim. Bu iki programlama modelinin avantajları / dezavantajları nelerdir?


4
Peki ... AngularJS'yi ASP.NET'e bağlayacaksanız ... gerçekten adil bir karşılaştırma yapmıyorsunuz. Javascript'i Angular'ın dışına çıkarmak istiyor gibisin ve olması gereken yol bu değil. Angular, istemciniz için çerçeveniz anlamına gelir ve çok az sunucu tarafı şablon kullandığınızda en iyi şekilde çalışır: simple-talk.com/blogs/2013/10/16/… . Kimlik doğrulama ve benzeri şeyler mantıklıdır, ancak usturayı dışarıda bırakın ve doğrudan .NET'e gidin ve onunla Angular için bir API katmanı oluşturun.
Brian Vanderbusch

3
Bence gerçekten ihtiyacınız olan şey ASP.NET WebAPI ile AngularJS. Bence her iki dünyanın da en iyisine sahip. MVC'yi AngularJS ile karıştırmayı denedim ve sorunlarla karşılaştığımda pek iyi bir deneyim olmadı, bu yüzden bu tuzağa girmemenizi öneririm. Bu yaklaşımda özlediğim bir şey, Razor motorlu MVC'nin sağlayabileceği cihaz tabanlı görünümler. Bunu aşmanın bir yolu olmalı, ama henüz yeterince açıklayamadım.
Kiran

Angular ile sadece birkaç ay çalıştıktan sonra (sonsuza dek gibi görünse de), Razor'a asla geri dönmem. Angular ile ne kadar çok çalışırsanız, onu o kadar çok takdir edersiniz - esneklik ve güç, bazen sihir gibi gelir. Web API'nin Angular ile iyi oynamadığını söylemeliyim, en azından POST biçiminde, ama bu çözülebilir. Javascript güçlü yazılmış bir dil olmadığından, bir C # programcı sözdizimi için kolay bir geçiş değildir. Ancak bu engelin üstesinden geldikçe, Angular'ı takdir etmeye başlayacaksınız.
Florida G.

Razor, şablon yapan motorlar arasında bile korkunç bir şeydir. Herhangi bir şablon motorunda (Jade, gidon, tıraş bıçağı vb.) Açısal kullanıldığında üretkenlikte ciddi bir artış fark edeceksiniz. JSON'lara (web-api, node-express veya PHP olabilir) ve açısal bir ön uç sunan bir arka uç kullanın. Ve nakavt neredeyse köşeli kadar iyi değil ... En iyisi ...
Giridhar Karnik

1
@BrianVanderbusch Neden bahsettiğinden emin değilim. Arka uç hiç önemli değil. Herhangi bir şey olabilir. ASP.NET'i arka uç olarak ve açısal olarak istemci tarafı ön uç olarak kullanacağını söylüyor. Angular'ın hala veri için sunucuya çağrı yapması gerekiyor. Bunun Angular'a adil bir karşılaştırma yapmamakla ilgisi yok.
user441521

Yanıtlar:


103

2 sentim. Şahsen saf HTML görünümlerini, tamamen açısal bir ön ucu ve bir Web API / EF / SQL Sunucusu arka ucunu tercih ediyorum, temelde Razor yok. Razor, programcıların HTML oluşturmalarına yardımcı olan bir soyutlamadır, bugünlerde herkes bu soyutlamaları kaldırmanın daha iyi bir fikir olduğu sonucuna varıyor, dolayısıyla ASP.NET'in web formlarından MVC'ye evrimi. Geliştiricilerin bunu başarması gerçekten zor değil. HTML'yi kullanır ve açısal bir ön uç kullanır; dahası bu, UI tasarımcılarının işlerini kolaylaştırır, saf HTML ve JSON / Javascript'e sahiptirler, MVC, Razor, denetleyicileri ve eylemleri anlamalarına gerek yoktur. Eskiden tamamen MVC üzerinde çalışıyorduk, son projemizde bir Web API arka ucuna ve açısal bir ön uca taşındık ve UI tasarımcımızın üretkenliğinin büyük ölçüde arttığını fark ettik.


3
Ve tabii ki müthiş dinamik Şablonlarınızı güncellemek için olsun açısal ile, buna eklemek istiyorum
Willem D'Haeseleer

4
Evet, geliştirme maliyetine karşı daha dinamik ve duyarlı bir ön uç geliştirmeye gelince, gerçekten rekabet yok.
Mohammad Sepahvand

@ user189756 Web API yaklaşımını kullanırken HTML sayfalarını istemciye nasıl iletiyorsunuz?
Yoav

@Yoav Bu eski bir cevaptır, ancak o zamanlar Tek denetleyiciye sahip bir MVC sunucusuydu.
Mohammad Sepahvand

1
@Yoav Kesinlikle. Ancak, diğer cevabın da mükemmel olduğunu, özellikle de SEO gibi şeyleri hesaba katarak ekleyeceğim.
Mohammad Sepahvand

53

Kıyaslayamayacağına inanıyorum. AngularJS, Tek Sayfalı Uygulama (SPA) çerçevesidir, ASP.Net MVC ise sayfalar arasında gezinen standart modeli kullanır. Bir SPA inşa etmek isteyip istemediğinize aşağıdaki faktörlere göre karar verilir:

  • SEO istiyor musunuz? Bu JS zengin çerçevesinin çoğunun sınırlı desteği var.
  • Uygulamanızı SPA veya çoklu SPA olarak nasıl yapılandırabilirsiniz.
  • C # türünde güvenli bir dilden JavaScript programlamaya geçmek bir sorundur.
  • AngularJS'yi öğrenmek ve etkili bir şekilde kullanmak.

İlk AngularJS görünümlerini ayarlamak için standart MVC 5 tıraş makinesi görünümünü kullanıyoruz, böylece gerekirse bunları bir araya getirebilirsiniz.

Bu yanıtı görün AngularJS'yi Parse.com ile kullanabilir misiniz? daha fazla bağlam elde etmek için.


12
"... oysa ASP.Net MVC, sayfalar arasında gezinen standart modeli kullanır." Bu tamamen yanlıştır. Jilet kullanan MVC uygulamaları çok kolay bir şekilde SPA'lar olarak tasarlanabilir.
Sam

7
AngularJS, sınırlı SPA'lar değildir, derin bağlantı ile birlikte köşeli çok sayfalı bir web sitesi kurabilirsiniz ....
Giridhar Karnik

3
AngularJS bir SPA değildir. SPA gibi kullanabilirsiniz, ancak bu otomatik veya gerekli değildir. Hatta yönlendirmeye sahip olmak için yönlendirme bağımlılığı ng-yolunu eklemeniz gerekir. AngularJS inanılmaz ve harika bir SPA olabilir, ancak AngularJS = SPA demek aptalca.
Tom Stickel

5
TypeScript, type safe js için iyi bir seçenektir.
Kyle JV

9
AngularJS, Google tarafından yapılmıştır. SEO'dan yoksunsa, yanlış bir şey yapıyorlar.
Worthy7
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.