IT이야기

ASP.NET Core 2.0 레이저 대 각도/반사/기타

cyworld 2022. 3. 14. 21:27
반응형

ASP.NET Core 2.0 레이저 대 각도/반사/기타

우리 팀과 나는 엔터프라이즈급 웹 응용프로그램을 개발하기 위한 자금 지원을 받았다.이 애플리케이션은 많은 개별 웹 페이지를 가질 것이지만, 그 중 두 페이지는 더 집중적이고 매우 무겁다 - 많은 사용자 상호작용에서처럼, 대량 데이터를 표시하는 모델, 웹소켓 연결, 채팅 등.

나는 그 프로젝트에서 수석 설계자로 임명되어 최신 웹 프레임워크에 대한 연구를 하고 있다.백엔드를 위해 몇 가지 테스트를 했고 Azure SQL 플랫폼으로 진행하기로 했다.지금까지 ASP로 개선되고 있는 점이 마음에 든다.NET with Core 2.0.특히 이전 버전의 ASP에서 레이저 엔진.NET MVC.

나는 "새로운" 레이저 vs에 대한 전문가의 의견을 듣고 싶었다.각도/반응 등.특히 성과에 더 신경을 쓴다.Core 2.0 Razor가 클라이언트 측 렌더링 프레임워크를 어떻게 지탱하고 있는가?차이점은 무시할 수 있는가?우리 앱은 잠재 사용자 100만 명(동시 10만 명)을 목표로 하고 있다.

미리 고마워!

우리는 결국 앵글 프런트엔드와 ASP로 갔다.Azure SQL을 사용하는 NET Core API 백엔드.우리는 코어 레이저를 테스트했고, 비록 레거시 레이저보다 낫지만, 앵글은 결국 우리에게 훨씬 더 빨랐다.사용자 경험에 관한 한, 성능 면에서는 각도(또는 리액션)가 월등히 우수하다.Angul의 모델 바인딩 측면은 서버 측 렌더링의 큰 장점임을 알게 되었다.그러나 레이저(또는 일반적으로 서버 측 렌더링)를 사용하면 데이터가 미치는 한 전반적인 무결성이 향상되고 데이터가 프런트엔드에서 백엔드로 더 효율적으로 전환될 수 있다.프런트 엔드 프레임워크와 API 사이에는 진정한 단절이 있다.서버에 전달되는 모든 데이터는 입력된 객체로 주조되어야 한다. 즉, 두 개의 개별적인 POCO 모델 세트를 관리해야 한다는 것을 의미한다.이는 서버 개체와 프런트 엔드 개체가 정렬되지 않을 경우 문제를 일으킬 수 있다.현재 엔티티 프레임워크 코어는 성숙도가 높지 않기 때문에 객체 업데이트, 하위 객체 등 객체 쿼리 등에 문제가 있다.

전반적으로, 이 설정은 지금까지 우리에게 아주 잘 적용되었답니다!리액션이 앵글과 비슷한 대체품이 될 것 같아.나는 매우 쉬운 전환이었던 Angul을 배워야 했고, 나는 지금 그것을 사랑해!

서버 측에서 API와 함께 각도/재작용을 사용하는 경우:

  • 서버 측에서 HTML을 생성하는 프로세스를 제거하고 CPU를 저장하는 경우
  • API는 작은 페이로드(JSON)와 Razor(HTML)를 생성하므로 당연히 크기가 훨씬 크고, 지속적인 전체 페이지 재로드 및 포스트백 라운드 트립이 가능하므로 API와 SPA는 대역폭을 절약할 수 있다.
  • API 및 SPA의 버전 관리, 확장 및 배포 시나리오가 다를 수 있음
  • API를 사용하면 모바일 앱도 지원할 수 있고 레이저로 시작하면 향후 API가 필요할 수도 있다.

그러나 Angular/Ract를 사용하면 고객에 대해 다음과 같이 걱정해야 한다.

  • 클라이언트는 javascript를 활성화해야 함
  • 클라이언트는 최신 브라우저가 있어야 함
  • 클라이언트는 충분한 강력한 하드웨어를 가지고 있어야 함
  • SEO

난 벤치마크가 없어.하지만, 나는 JQuery, Razor를 운영하는 몇몇 프로젝트가 있다.NET MVC(C#), AJAX.당신이 상대하고 있는 규모에 맞추지 마라.

조언..반드시 모든 것을 숙고하고 모범 사례를 따르십시오.유지보수가 가능한 상태를 유지하려면 컨트롤러, 뷰, 모델을 더 작고 의미 있는 그룹으로 구분하십시오.내가 시작했을 때, 나는 모든 것을 하나의 홈 컨트롤러에 넣고, 공유 폴더의 수많은 보기를 하는 실수를 저질렀다.처음에는 괜찮았지만, 피처 크리프가 시작되었을 때, 그것은 엉망으로 되었고, 되돌아가서 재설계하는 것이 어려웠다.

나도 Linq2SQL을 사용해.나는 모든 것에 대한 모델을 만드는 실수를 했고 그리고 나서 내가 질문한 결과들을 모델로서 돌려줄 수 있다는 것을 깨달았다. duh.

만약 당신이 간다면.NET MVC 및 성능에 대한 우려 사항:

HTML의 큰 블록을 만드는 부분 뷰를 반환하지 마십시오! 모든 것을 최소화하십시오.흰 공간을 모두 없애라.더 작은 ID 이름을 사용하십시오.시간을 들여 최대한 가벼운 html을 만드십시오.JSON을 반환하고 고객에게 일부 작업을 수행하도록 하십시오.

CSS를 개발하는 방법에 주의하십시오.인라인 스타일을 많이 사용하지 말고 나중에 최소화할 수 있는 CSS 파일에 통합하는 데 시간을 투자하십시오.

고객 측 JS도 마찬가지다.JS를 부분적인 시각으로 보는 것은 유혹적이다.일을 정리하다.

IE에 렌더링을 하는 것은 끔찍하다.특히 이미지가 많으면.물론 화질을 잃지 않고 이미지를 최대한 압축하십시오.

참조URL: https://stackoverflow.com/questions/46231344/asp-net-core-2-0-razor-vs-angular-react-etc

반응형