ASP.NET MVC 5 대 AngularJS / ASP.NET WebAPI [닫기]


86

현재 회사에서 향후 웹 응용 프로그램을 만들기위한 프로그래밍 모델을 평가하고 있습니다. 따라서 ASP.NET MVC 5 (Razor보기 포함)와 ASP.NET WebAPI를 사용하는 AngularJS 중에서 결정할 것입니다. 이 두 프로그래밍 모델의 장단점은 무엇입니까?


4
음 ... AngularJS를 ASP.NET에 고정시키려는 경우 ... 정확한 비교를 제공하지 않습니다. Angular에서 Javascript를 가져 오려는 것과 같으며 이는 의도 된 방식이 아닙니다. Angular는 클라이언트를위한 프레임 워크로, 서버 측 템플릿을 거의 사용하지 않을 때 가장 잘 작동합니다 : simple-talk.com/blogs/2013/10/16/… . 인증과 같은 것들은 의미가 있지만 면도기는 그대로두고 .NET으로 바로 이동하여 Angular 용 API 레이어를 만듭니다.
Brian Vanderbusch 2014

3
정말 필요한 것은 ASP.NET WebAPI를 사용하는 AngularJS 뿐이라고 생각합니다. 나는 그것이 두 세계의 장점을 모두 가지고 있다고 생각합니다. MVC와 AngularJS를 섞어 보았는데 문제가 발생했을 때 그다지 좋은 경험이 아니 었으므로 그 함정에 빠지지 말 것을 제안합니다. 이 접근 방식에서 내가 놓친 한 가지는 Razor 엔진이 포함 된 MVC가 제공 할 수있는 장치 기반 뷰입니다. 극복 할 수있는 방법이 있겠지만 아직 충분히 설명하지 못했습니다.
Kiran 2014 년

Angular와 단 몇 달 동안 작업 한 적이 있었지만 (영원한 것처럼 보이지만) 저는 Razor로 돌아 가지 않을 것입니다. Angular와 함께 작업할수록 유연성과 힘, 때로는 마법처럼 느껴집니다. Web API는 적어도 POST 형식에서 Angular와 잘 작동하지 않지만 해결 될 수 있습니다. 자바 스크립트는 강력한 형식의 언어가 아니기 때문에 C # 프로그래머 구문 측면에서는 쉬운 전환이 아닙니다. 그러나이 장애물을 극복하면 Angular에 감사하게 될 것입니다.
Florida G.

Razor는 템플릿 엔진 중에서도 끔찍한 것입니다. 템플릿 엔진 (Jade, 핸들 바, 면도기 등)에 앵귤러를 사용하면 생산성이 급격히 향상됩니다. JSON (web-api, node-express 또는 PHP 일 수 있음) 및 각도 프런트 엔드를 제공하는 백엔드를 사용합니다. 그냥 참고로, 녹아웃은 거의 각도 좋은 같은 .... 모든 최고의 ... 아니다
Giridhar Karnik

1
@BrianVanderbusch 당신이 무슨 말을하는지 잘 모르겠습니다. 백엔드는 전혀 중요하지 않습니다. 무엇이든 될 수 있습니다. 그는 ASP.NET을 백엔드로 사용하고 angular를 클라이언트 측 프런트 엔드로 사용할 것이라고 말합니다. Angular는 여전히 데이터를 위해 서버를 호출해야합니다. 이것은 Angular에 공정한 비교를 제공하지 않는 것과 관련이 없습니다.
user441521

답변:


103

내 2 센트. 저는 개인적으로 순수한 HTML 뷰, 웹 API / EF / SQL Server 백엔드와 함께 완전히 각진 프런트 엔드를 선호하며 기본적으로 Razor는 없습니다. Razor는 프로그래머가 HTML을 렌더링하는 데 도움이되는 추상화입니다. 요즘 모든 사람들이 이러한 추상화를 제거하는 것이 더 나은 아이디어라는 결론에 도달하고 있습니다. 따라서 웹 양식에서 MVC 등으로 ASP.NET이 진화했습니다. 개발자가 HTML을 잡고 각진 프런트 엔드를 사용하므로 UI ​​디자이너 작업이 더 쉬워지고 순수한 HTML 및 JSON / Javascript가 있으며 MVC, Razor, 컨트롤러 및 작업을 이해할 필요가 없습니다. 우리는 MVC에서 완전히 작업 했었습니다. 최근 프로젝트에서 웹 API 백엔드와 앵글 프런트 엔드로 옮겼으며 UI 디자이너의 생산성이 크게 향상되었음을 알았습니다.


3
그리고 난 분명히 굉장 동적 템플릿을 업데이트 할 수 각도와 그에 추가 할
윌렘 드 Haeseleer에게

4
그렇습니다. 개발 비용에 비해 더 동적이고 반응이 빠른 프런트 엔드를 개발하는 데있어 경쟁은 없습니다.
Mohammad Sepahvand 2014

@ user189756 웹 API 접근 방식을 사용할 때 클라이언트에 HTML 페이지를 어떻게 전달합니까?
아브

@Yoav 이것은 오래된 대답이지만 당시에는 단일 컨트롤러가있는 MVC 호스트였습니다.
모하마드 자 세파 밴드

1
@Yoav 정확합니다. 그러나 나는 특히 SEO와 같은 것들을 고려하여 다른 답변도 훌륭하다고 덧붙일 것입니다.
모하마드 자 세파 밴드

53

나는 당신이 비교할 수 없다고 믿습니다. AngularJS는 단일 페이지 응용 프로그램 (SPA) 프레임 워크 인 반면 ASP.Net MVC는 페이지 사이를 탐색하는 표준 모델을 사용합니다. SPA 구축 여부는 다음과 같은 요인에 의해 결정됩니다.

  • SEO를 원하십니까. 이러한 JS 리치 프레임 워크 중 대부분이 제한된 지원을 제공합니다.
  • 앱을 SPA 또는 여러 SPA로 구성하려면 어떻게해야합니까?
  • 형식 안전 언어 C #에서 JavaScript 프로그래밍으로 전환하는 것은 어려운 일입니다.
  • AngularJS를 배우고 효과적으로 사용합니다.

표준 MVC 5 면도기보기를 사용하여 초기 AngularJS보기를 설정하므로 필요한 경우 함께 결합 할 수도 있습니다.

이 답변보기 Parse.com에서 AngularJS를 사용할 수 있습니까? 더 많은 컨텍스트를 유도합니다.


12
"... 반면 ASP.Net MVC는 페이지 사이를 탐색하는 표준 모델을 사용합니다." 이것은 단순히 거짓입니다. 면도기를 사용하는 MVC 앱은 매우 쉽게 SPA로 설계 할 수 있습니다.
Sam

7
AngularJS와는 .... 당신이 아주 잘 딥 링크와 함께 각도로 여러 페이지의 웹 사이트를 구축 할 수 있습니다, 온천을 제한되지 않는다
Giridhar Karnik

3
AngularJS는 SPA가 아닙니다. SPA처럼 사용할 수 있지만 자동 또는 필수는 아닙니다. 라우팅을 가지려면 라우팅 종속성 ng-route를 추가해야합니다. AngularJS는 놀랍고 훌륭한 SPA가 될 수 있지만 AngularJS = SPA라고 말하는 것은 어리석은 일입니다.
Tom Stickel 2016

5
TypeScript는 type safe js를위한 좋은 옵션입니다.
Kyle JV

9
AngularJS는 Google에서 만들었습니다. SEO가 부족하면 뭔가 잘못하고 있습니다.
Worthy7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.