AngularJS, daha çok tek sayfalı uygulama paradigmasıyla ilişkilidir ve bu nedenle, işaretlemeyi oluşturan sunucu tarafı teknolojilerinden pek yararlanmaz. Bunları birlikte kullanmanıza engel olan teknik bir neden yok, ama pratik anlamda neden yapasınız?
Bir SPA, ihtiyaç duyduğu varlıkları (JS, CSS ve HTML görünümleri) alır ve kendi başına çalışır, veri göndermek veya almak için hizmetlere geri bildirir. Bu nedenle, bu hizmetleri sağlamak için bir sunucu tarafı teknolojisi hala gereklidir (kimlik doğrulama ve beğeniler gibi diğer araçların yanı sıra), ancak işleme parçaları büyük ölçüde ilgisizdir ve özellikle yararlı değildir, çünkü bu çabaların bir kopyasıdır, ancak MVC bunu yapar sunucu tarafında ve Angular bunu istemcide yapıyor. Angular kullanıyorsanız, en iyi sonuçlar için istemcide olmasını istersiniz. Angular post HTML formları oluşturabilir ve MVC eylemlerinden kısmi görünümler alabilirsiniz, ancak Angular'ın en iyi ve en kolay özelliklerini kaçırır ve hayatınızı zorlaştırırsınız.
MVC oldukça esnektir ve bir SPA uygulamasından çağrılara hizmet vermek için kullanabilirsiniz. Bununla birlikte, WebAPI daha ince ayarlıdır ve bu tür hizmetler için kullanımı biraz daha kolaydır.
Önceden var olan WebForms ve MVC uygulamalarından taşınan bir çift de dahil olmak üzere bir dizi AngularJS uygulaması yazdım ve ASP.NET yönü, AngularJS uygulamasını gerçek istemci olarak sunmak ve uygulama katmanını barındırmak için bir platforma dönüşüyor istemci REST aracılığıyla (WebAPI kullanarak) iletişim kurar. MVC iyi bir çerçevedir, ancak genellikle bu tür uygulamalarda kendini işsiz bulur.
ASP.NET uygulaması, sorumluluklarının aşağıdakilerle sınırlı olduğu başka bir altyapı katmanı haline gelir:
- Bağımlılık kapsayıcısını barındırın.
- İş mantığı uygulamalarını kapsayıcıya bağlayın.
- JS ve CSS için varlık paketleri oluşturun.
- WebAPI hizmetlerini barındırın.
- Güvenliği uygulayın, günlük kaydı ve teşhis gerçekleştirin.
- Performans için uygulama önbellekleriyle arayüz oluşturma.
Bir SPA ile ilgili bir diğer harika şey, ekibinizin bant genişliğini artırabilmesidir. Bir grup, diğer grup istemci uygulamasında yer alırken hizmetleri patlatabilir. REST hizmetlerini kolayca saplayabileceğiniz veya alay edebileceğiniz için, sahte hizmetlerde tam olarak çalışan bir istemci uygulamasına sahip olabilir ve işiniz bittiğinde gerçek olanlarla değiştirebilirsiniz.
Angular'a önden yatırım yapmanız gerekir, ancak karşılığını büyüktür. MVC'ye zaten aşina olduğunuz için, bazı temel kavramlar hakkında bilgi edinebilirsiniz.