2014-04-15 39 views
77

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

+4

Peki ... AngularJS'yi ASP.NET'e bağlayacaksanız ... gerçekten adil bir karşılaştırma yapmıyorsunuz. Javascript'i Angular'dan çıkarmak istiyor gibisiniz ve bu gerçekleşmesi gereken yol değil. Köşeli, istemciniz için çerçevenizdir ve çok az sunucu tarafını kullandığınızda en iyi şekilde çalışır: https://www.simple-talk.com/blogs/2013/10/16/angularjs-on-top-of -Asp-net-hareketli-mvc-çerçeve-out-to-tarayıcı /. Kimlik doğrulama ve benzeri şeyler mantıklıdır, ancak usturayı bırakır ve sadece .NET'e gider ve onunla Açısal için bir API katmanı oluşturur. –

+3

Gerçekten ihtiyacınız olan şey sadece ASP.NET WebAPI ile AngularJS. Bence her iki dünyanın en iyisi var. MVC'yi AngularJS ile karıştırmayı denedim ve konulara girdiğimde çok güzel bir deneyim değildi, bu yüzden bu tuzağa girmemeyi tavsiye ederim. Bu yaklaşımla özlediğim bir şey, Razor motorlu MVC'nin sağlayabileceği cihaz tabanlı görünümlerdir. Bunu aşmanın bir yolu olmalıydı, ama henüz yeterince açık olmadım. – Kiran

+0

Sadece birkaç kısa ay için Angular ile çalışmış olmak (sonsuza kadar görünse da), asla Razor'a geri dönmem. Açısal ile ne kadar çok çalışırsanız, o kadar çok takdir edersiniz - esneklik ve güç, bazen sihir gibi hisseder. Web API'sinin en azından POST formunda Angular ile iyi oynamadıklarını söylemeliyim, ancak bu işe yarayabilir. Javascript güçlü bir şekilde yazılmış bir dil olmadığı için, C# programlayıcı sözdizimi bilge için kolay bir geçiş değildir. Ama bu engelin üstesinden geldiğinizde, Angular'ı takdir etmelisiniz. –

cevap

95

Benim 2 kuruş. Ben şahsen saf HTML görünümleri, bir Web API/EF/SQL Server arka ucu, temelde hiçbir Razor ile birlikte tamamen açısal ön uç tercih ederim. Razor, programcıların HTML oluşturmasına yardımcı olacak bir soyutlamadır, bu günlerde herkes bu soyutlamaların kaldırılmasının daha iyi bir fikir olduğu ve dolayısıyla ASP.NET'in web formlarından evrimleşmenin MVC'ye dönüştüğü sonucuna varmaktadır. HTML ile tutuşur ve bir açısal ön uç kullanır, üstelik bu UI tasarımcılarının işlerini daha kolay hale getirir, saf HTML ve JSON/Javascript'e sahip olurlar, MVC, Razor, kontrolörler ve eylemleri anlamaya ihtiyaç duymazlar. Tamamen MVC üzerinde çalışıyorduk, en son projemizde bir Web API arka ucuna ve bir açısal ön uca geçtik ve UI tasarımcımızın üretkenliğinin büyük ölçüde arttığını fark ettik.

+3

ile Açısal Değil Ve bunu eklemek istiyorum, açısal ile şablonları dinamik olarak güncellemek olsun, bu açık, harika, daha dinamik ve duyarlı bir ön uç geliştirmeye gelince harika –

+4

Yea kalkınma maliyeti, gerçekten rekabet yok. –

+0

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

47

Karşılaştırmadığınızı düşünüyorum. AngularJS, Tek Sayfa Uygulaması (SPA) çerçevesidir, oysa ASP.Net MVC, sayfalar arasında gezinilen standart modeli kullanır. Bir SPA inşa etmek isteyip istemediğinizi,

  • gibi faktörlere göre karar verebilirsiniz. Bu JS zengin çerçevenin çoğunun sınırlı desteği vardır.
  • Uygulamanızı SPA veya çoklu SPA'lar olarak nasıl yapılandırabilirsiniz?
  • Güvenli bir şekilde C# 'den güvenli bir dile gelmek JavaScript programlama için bir sorundur.
  • AngularJS'yi öğrenme ve etkili bir şekilde kullanma.

İlk AngularJS görünümlerini ayarlamak için standart MVC 5 traş makinesi görünümünü kullanırız, böylece gerekirse bunları birleştirebilirsiniz.

Daha fazla içerik elde etmek için bu yanıtı Can you use AngularJS with Parse.com? gör.

+11

"... ASP.Net MVC, sayfalar arasında gezinilen standart modeli kullanıyor." Bu sadece yanlıştır. MVC uygulamaları - tıraş bıçağı kullanarak - SPA'nın çok kolay bir şekilde tasarlanabilir. – Sam

+6

AngularJS sınırlı değil SPA'lar, çok derin bir bağlantı ile birlikte çok köşeli bir çok sayfa web sitesi inşa edebilirsiniz .... –

+2

AngularJS bir SPA değildir. Bir SPA gibi kullanabilirsiniz, ancak bu otomatik veya gerekli değildir. Yönlendirmeye bile sahip olmak için yönlendirme bağımlılığı ng yoluna eklemeniz gerekir. AngularJS inanılmaz ve büyük bir SPA olabilir, ancak AngularJS = SPA söylemek sadece aptalca. –