ASP.NET MVC / Web API를 사용하여 왔으며 이제 Angular를 사용하기 시작했지만 적절한 혼합 방법이 명확하지 않습니다.
Angular를 사용하면 MVC 서버 측 개념이 여전히 가치를 제공합니까? 아니면 순전히 각 HTTP 호출에 대한 데이터를 얻기 위해 웹 API를 엄격하게 사용해야합니까?
Angular로 전환하는 ASP.NET MVC 사람에 대한 모든 팁이 도움이 될 것입니다.
ASP.NET MVC / Web API를 사용하여 왔으며 이제 Angular를 사용하기 시작했지만 적절한 혼합 방법이 명확하지 않습니다.
Angular를 사용하면 MVC 서버 측 개념이 여전히 가치를 제공합니까? 아니면 순전히 각 HTTP 호출에 대한 데이터를 얻기 위해 웹 API를 엄격하게 사용해야합니까?
Angular로 전환하는 ASP.NET MVC 사람에 대한 모든 팁이 도움이 될 것입니다.
답변:
순수 웹 API
저는 ASP.NET MVC로 꽤 하드 코어했지만 Angular를 만났기 때문에 서버 측 콘텐츠 생성 프레임 워크를 사용 하는 이유가 하나도 없습니다 . Pure Angular / REST (WebApi)는 더 풍부하고 부드러운 결과를 제공합니다. 훨씬 더 빠르고 펑키 한 해킹없이 데스크톱 애플리케이션에 매우 가까운 웹 사이트를 구축 할 수 있습니다.
Angular에는 약간의 학습 곡선이 있지만 팀이이를 마스터하면 더 짧은 시간에 훨씬 더 나은 웹 사이트를 구축 할 수 있습니다. 주로 이것은 더 이상 이러한 모든 상태 (적은) 문제가 없다는 사실과 관련이 있습니다.
예를 들어 기존의 서버 측 프레임 워크가 있는 마법사 양식 을 상상해보십시오 . 각 페이지는 별도로 확인하고 제출해야합니다. 페이지의 내용이 이전 페이지의 값에 따라 달라질 수 있습니다. 사용자가 뒤로 버튼을 눌러 이전 양식을 다시 제출하고있을 수 있습니다. 클라이언트의 상태를 어디에 저장합니까? Angular 및 REST를 사용할 때 이러한 모든 합병증은 존재하지 않습니다.
그러니 .. 어두운면으로 오세요. 우리는 쿠키를 가지고 있습니다.
AngularJS는 단일 페이지 애플리케이션 패러다임과 더 관련되어 있으므로 마크 업을 렌더링하는 서버 측 기술의 이점을 많이 얻지 못합니다. 함께 사용하는 것을 방해하는 기술적 이유는 없지만 실제적으로는 왜 그렇게 하시겠습니까?
SPA는 필요한 자산 (JS, CSS 및 HTML보기)을 검색하고 자체적으로 실행되며 데이터를 보내거나 검색하기 위해 서비스와 다시 통신합니다. 따라서 이러한 서비스 (인증 등의 다른 수단 포함)를 제공하려면 서버 측 기술이 여전히 필요하지만 MVC가 수행하는 작업을 제외하고는 노력의 중복이기 때문에 렌더링 부분은 크게 관련이없고 특히 유용하지 않습니다. 서버 측에서 Angular는 클라이언트에서 수행합니다. Angular를 사용하는 경우 최상의 결과를 위해 클라이언트에서 사용하고 싶습니다. Angular 포스트 HTML 양식을 만들고 MVC 작업에서 부분보기를 검색 할 수 있지만 Angular의 가장 좋고 쉬운 기능을 놓치고 삶을 더 어렵게 만듭니다.
MVC는 매우 유연하며 SPA 응용 프로그램의 서비스 호출에 사용할 수 있습니다. 그러나 WebAPI는 이러한 서비스에 대해 더 세밀하게 조정되고 사용하기가 조금 더 쉽습니다.
기존 WebForms 및 MVC 응용 프로그램에서 마이그레이션 한 몇 가지를 포함하여 여러 AngularJS 응용 프로그램을 작성했으며 ASP.NET 측면은 AngularJS 응용 프로그램을 실제 클라이언트로 제공하고 응용 프로그램 계층을 호스팅하기위한 플랫폼으로 발전합니다. 클라이언트는 REST를 통해 통신합니다 (WebAPI 사용). MVC는 훌륭한 프레임 워크이지만 일반적으로 이러한 종류의 응용 프로그램에서 작업없이 자신을 찾습니다.
ASP.NET 응용 프로그램은 인프라의 또 다른 계층이되어 책임이 다음으로 제한됩니다.
SPA의 또 다른 장점은 팀의 대역폭을 늘릴 수 있다는 것입니다. 한 그룹은 서비스를 폭발시킬 수 있고 다른 그룹은 클라이언트 앱에 배치 할 수 있습니다. REST 서비스를 쉽게 스텁 또는 모의 처리 할 수 있으므로 모의 서비스에서 완전히 작동하는 클라이언트 앱을 사용할 수 있고 완료되면 실제 서비스로 교체 할 수 있습니다.
Angular에 미리 투자해야하지만 큰 성과를 거두었습니다. 이미 MVC에 익숙하기 때문에 몇 가지 핵심 개념에 대해 잘 알고 있습니다.
작업중인 프로젝트에 따라 다릅니다.
angularJS가 당신에게 새로운 것이 있다면 나는 시작하기 위해 작은 위험 / 압력 프로젝트를 선택하고 올바른 방식으로 일하는 방법을 배우고 싶습니다 (압박, 기한 때문에 Angularjs를 사용하는 많은 프로젝트를 잘못 보았습니다 ... 예를 들어 JQuery를 사용하거나 컨트롤러 내부의 DOM에 액세스하는 등 적절한 방법으로 학습 할 시간이 부족합니다.
프로젝트가 그린 필드이고 AngularJS에 대한 경험이 있다면 ASP.net MVC를 포기하고 서버 측에서 순수한 REST / WebAPI를 사용하는 것이 좋습니다.
기존 프로젝트 인 경우 복잡한 기능 하위 집합을 선택하고 해당 페이지를 별도의 angularJS 앱으로 빌드 할 수 있습니다 (예 : 앱은 표준 단순 / 중간 복잡성 Razor 기반 페이지의 큰 무리로 구성되지만 필요한 고급 편집기 / AngularJS로 빌드 할 대상이 될 수 있습니다.)
Angular 프레임 워크를 프런트 엔드 개발, 즉 뷰 구성에 사용할 수 있습니다. 강력한 아키텍처를 제공하며 일단 학습하면 Asp.net MVC의 면도기보기 엔진에 비해 이점이 있음을 알게됩니다. 데이터를 가져 오려면 WebAPI를 사용해야하며 이제 ASP.Net MVC 프로젝트는 즉시 WebAPI 및 MVC 컨트롤러를 모두 지원합니다. Angular 및 ASP.Net MVC 응용 프로그램 개발로 아래 링크 시작을 참조 할 수 있습니다.
http://hive.rinoy.in/angular4-and-asp-net-mvc-hybrid-application/
현재 각도 응용 프로그램 용 UI 구성 요소를 개발하는 데 사용할 수있는 두 가지 프레임 워크가 있습니다. 저는 제가 작업 한 앵귤러 프로젝트 중 하나에서이 두 프레임 워크를 모두 사용했습니다.