ASP.NET MVC 5 vs. AngularJS / ASP.NET WebAPI [ditutup]

86

Saat ini saya mengevaluasi model pemrograman untuk membuat aplikasi Web masa depan di perusahaan saya. Jadi saya akan memutuskan antara ASP.NET MVC 5 (dengan Razor Views) dan AngularJS dengan ASP.NET WebAPI. Apa keuntungan / kerugian dari kedua model pemrograman ini?

bitsmuggler
sumber
4
Nah ... jika Anda akan menghubungkan AngularJS ke ASP.NET ... Anda tidak benar-benar memberikan perbandingan yang adil. Ini seperti Anda ingin mengeluarkan Javascript dari Angular, dan itu bukan cara yang seharusnya terjadi. Angular dimaksudkan sebagai kerangka kerja Anda untuk klien, dan bekerja paling baik bila Anda menggunakan sangat sedikit template sisi server: simple-talk.com/blogs/2013/10/16/… . Hal-hal seperti otentikasi dan semacamnya masuk akal, tetapi tinggalkan pisau cukur, dan langsung saja .NET dan buat lapisan API untuk Angular dengannya.
Brian Vanderbusch
3
Saya pikir yang Anda butuhkan hanyalah AngularJS dengan ASP.NET WebAPI. Saya pikir itu yang terbaik dari kedua dunia. Saya mencoba mencampur MVC dengan AngularJS dan itu bukan pengalaman yang sangat menyenangkan ketika saya mengalami masalah, jadi saya sarankan untuk tidak masuk ke perangkap itu. Satu hal yang saya lewatkan dengan pendekatan ini adalah tampilan berbasis perangkat yang dapat disediakan oleh MVC dengan mesin Razor. Pasti ada cara untuk mengatasinya, tapi saya belum cukup berekspresi.
Kiran
Setelah bekerja dengan Angular hanya beberapa bulan yang singkat (meskipun sepertinya selamanya), saya tidak akan pernah kembali ke Razor. Semakin banyak Anda bekerja dengan Angular, semakin Anda menghargainya - fleksibilitas dan kekuatan, terkadang terasa seperti sihir. Saya harus mengatakan bahwa Web API tidak bekerja dengan baik dengan Angular, setidaknya dalam bentuk POST, tapi itu bisa berhasil. Ini bukan transisi yang mudah untuk sintaks programmer C #, karena javascript bukanlah bahasa yang diketik dengan kuat. Tetapi saat Anda mengatasi rintangan ini, Anda akan menghargai Angular.
Florida G.
Razor adalah hal yang mengerikan bahkan di antara mesin templating. Anda akan melihat peningkatan produktivitas yang drastis saat menggunakan sudut di atas mesin templat apa pun (Jade, stang, pisau cukur, dll). Gunakan backend yang melayani JSON (bisa web-api, node-express atau PHP) dan front end bersudut. Dan hanya untuk dicatat, KO tidak sebagus sudut .... Semua yang terbaik ...
Giridhar Karnik
1
@BrianVanderbusch Tidak terlalu yakin apa yang Anda bicarakan. Backend tidak penting sama sekali. Bisa apa saja. Dia mengatakan dia akan menggunakan ASP.NET sebagai backend dan angular sebagai front end sisi klien. Angular masih perlu melakukan panggilan ke server untuk data. Ini tidak ada hubungannya dengan tidak memberikan perbandingan yang adil kepada Angular.
pengguna441521

Jawaban:

103

2 sen saya. Saya pribadi lebih suka tampilan HTML murni, front end yang sepenuhnya bersudut bersama dengan API Web / EF / SQL Server back end, pada dasarnya tidak ada Razor. Razor adalah abstraksi untuk membantu pemrogram merender HTML, akhir-akhir ini semua orang sampai pada kesimpulan bahwa menghapus abstraksi ini adalah ide yang lebih baik, karenanya evolusi ASP.NET dari formulir web, ke MVC, dll. Tidak terlalu sulit bagi pengembang untuk melakukannya. menguasai HTML dan menggunakan ujung depan sudut, terlebih lagi ini membuat pekerjaan desainer UI lebih mudah, mereka memiliki HTML murni dan JSON / Javascript, mereka tidak perlu memahami MVC, Razor, pengontrol, dan tindakan. Kami dulu bekerja sepenuhnya pada MVC, dalam proyek terbaru kami, kami pindah ke API Web back end dan front end sudut, dan kami telah memperhatikan bahwa produktivitas desainer UI kami telah meningkat pesat.

Mohammad Sepahvand
sumber
3
Dan saya ingin menambahkannya, dengan sudut Anda dapat memperbarui template Anda secara dinamis, yang jelas, luar biasa
Willem D'Haeseleer
4
Ya, dalam hal mengembangkan front end vs biaya pengembangan yang lebih dinamis dan responsif, sebenarnya tidak ada persaingan.
Mohammad Sepahvand
@ user189756 bagaimana Anda mengirimkan halaman HTML ke klien saat menggunakan pendekatan API Web?
Yoav
@Yoav Ini adalah jawaban lama, tetapi pada saat itu adalah host MVC dengan satu pengontrol.
Mohammad Sepahvand
1
@Yoav Tepatnya. Tetapi saya akan menambahkan bahwa jawaban lain juga bagus, terutama dengan mempertimbangkan hal-hal seperti SEO.
Mohammad Sepahvand
53

Saya yakin Anda tidak bisa membandingkan. AngularJS adalah kerangka Aplikasi Halaman Tunggal (SPA) sedangkan ASP.Net MVC menggunakan model standar di mana seseorang menavigasi antar halaman. Apakah Anda ingin membangun SPA ditentukan oleh faktor-faktor seperti

  • Apakah Anda ingin SEO. Yang sebagian besar dari kerangka kerja kaya JS ini memiliki dukungan terbatas.
  • Bagaimana Anda bisa menyusun aplikasi Anda sebagai SPA atau beberapa SPA.
  • Berasal dari jenis bahasa aman C # ke pemrograman JavaScript adalah sebuah tantangan.
  • Mempelajari AngularJS dan menggunakannya secara efektif.

Kami menggunakan tampilan pisau cukur MVC 5 standar untuk menyiapkan tampilan AngularJS awal sehingga Anda bahkan dapat menggabungkannya jika diperlukan.

Lihat jawaban ini Bisakah Anda menggunakan AngularJS dengan Parse.com? untuk mendapatkan lebih banyak konteks.

Chandermani
sumber
12
"... sedangkan ASP.Net MVC menggunakan model standar yang menavigasi antar halaman." Ini salah. Aplikasi MVC - menggunakan pisau cukur - dapat dirancang sebagai SPA dengan sangat mudah.
Sam
7
AngularJS bukanlah SPA terbatas, Anda dapat dengan sangat baik membangun situs web multi halaman dengan sudut bersama dengan deep linking ....
Giridhar Karnik
3
AngularJS bukanlah SPA. Anda dapat menggunakannya seperti SPA, tetapi itu tidak otomatis atau perlu. Harus menambahkan ketergantungan routing ng-route bahkan untuk memiliki routing. AngularJS luar biasa dan bisa menjadi SPA yang hebat, tetapi konyol untuk mengatakan AngularJS = SPA.
Tom Stickel
5
TypeScript adalah pilihan yang baik untuk tipe safe js.
Kyle JV
9
AngularJS dibuat oleh Google. Jika kurang dalam SEO, mereka melakukan sesuatu yang salah.
Layak7