-
Blazor WebAssembly 디버깅 피드백에 대한 Microsoft: '끔찍하게 들립니다!'IT News 2023. 11. 2. 23:03
원문 : Microsoft의 Blazor WebAssembly 디버깅 피드백: '정말 끔찍하게 들리네요!' -- Visual Studio Magazine
블레이저, 웹 개발의 계륵이 될 것인가? 미래가 될 것인가?
Blazor WebAssembly 디버깅 피드백에 대한 Microsoft: '끔찍하게 들립니다!'
- 데이비드 라멜
- 10/31/2023
Microsoft의 Daniel Roth는 X(Twitter)를 통해 Blazor WebAssembly 클라이언트 쪽 디버깅에 대한 피드백을 수집했으며 관련 핫 다시 로드 기능에 대한 불만을 포함하여 많은 응답을 받았습니다.
"끔찍하군!" Blazor 제품 관리자는 지난주 실행 중인 앱에 즉시 반영되는 코드 변경 사항을 수행하는 Hot Reload에 몇 분이 걸린다고 주장하는 개발자에 대한 응답으로 말했습니다.
Roth의 24월 <>일 게시물은 다음과 같습니다: "안녕하세요, Blazor WebAssembly 사용자 여러분! Blazor WebAssembly 디버깅은 어떻게 진행되고 있나요? 디버깅 경험에서 여전히 어떤 종류의 문제점이 발생하고 있습니까? 가능하면 .NET 및 Visual Studio 버전에 대한 세부 정보를 포함하십시오!"
한 응답은 "VS 17.8.0 미리 보기 3. A . NET7 Blazor Server 프로젝트. 디버깅은 괜찮습니다. Hot Reload는 정말 고통스럽습니다. 변경 사항을 반영하는 데 몇 분 정도 걸립니다. 변경할 때마다 앱을 다시 시작하는 것이 좋습니다."
로스의 대답: "몇 분이요?!? 끔찍하게 들립니다! Visual Studio에 있습니까 아니면 'dotnet watch'를 사용하고 있습니까? 이에 대한 Visual Studio 피드백 티켓 또는 GitHub 문제를 열었습니까?"
Roth는 이 문제를 더 자세히 조사했는데, 개발팀도 이 문제를 경험했습니다: "우리도 마찬가지지만, 괜찮은 크기의 프로젝트라도 핫 리로드가 작동하는 데 몇 분이 걸리고, 심지어 가끔은 전혀 작동하지 않을 때도 있습니다. 우리는 최신 Visual Studio 2022를 사용하고 있습니다."
그는 또한 다음과 같은 의견(총 44개)에 대한 응답으로 개발 팀을 안내하는 데 도움이 되도록 관련 피드백 문제를 열라는 조언을 반복했습니다.
- 디버그 모드에서 실행 중인 페이지를 새로 고치면 다시 로드되기까지 약 15초가 걸립니다. 이것은 Net 7에서 시작되었습니다. devkit 및 Blazor 디버그 지원을 사용하여 VS Code에서 실행하면 17초 또는 7초 안에 새로 고쳐집니다. VS 버전 6.<>.<>
- 당신은 그것을 직접 시도해봤나요? 다른 .NET Framework와 비교할 때 blazor 경험이 얼마나 끔찍한지는 매우 불분명합니다. 그러나 나는 여전히 그것을 사용합니다. 실제로 코드에서 예외를 잡는 방법은 시작이 될 것이며, 반 에이커에 Edge Console과 함께 앉고 싶지 않습니다.
- 실제로 디버깅하지는 않지만 핫 리로드가 제대로 작동하지 않습니다. 개발 프로세스의 속도를 높이는 훌륭한 기능이지만 #Blazor #WASM와 함께 사용할 수는 없습니다. .NET 7을 사용합니다.
- CLI를 사용한 Blazor Wasm 핫 다시 로드는 macOS M8에서 12-1초 이상 걸립니다. 여러분이 DX를 JavaScript 랜드에서 얻는 것과 동등하거나 적어도 몇 초 늦게 만든다면 훨씬 더 멋진 제품이 될 수 있습니다. 제발, 얘들아, 핫 재장전을 개선하십시오.
- 내가 직면 한 가장 큰 문제는 핫 리로드에서 내부 루프를 깨뜨렸다는 것인데, 제 경우에는 핫 리로드가 C #에 변경 사항을 성공적으로 적용하지만 변경 사항은 완전히 다시 시작될 때까지 반영되지 않습니다. Wasm C # Hot reload에 대한 몇 가지 개선 사항이 엄청날 것이라고 생각합니다.
피드백은 .NET 8 출시가 불과 몇 주 남았을 때 나왔습니다. "feature-hot-reload"로 표시된 aspnetcore 리포지토리에서 많은 GitHub 문제를 결합하며 174개는 닫혀 있고 33개는 여전히 열려 있습니다.
"Blazor #5456에 대한 핫 리로드" GitHub 문제는 2018년부터 문제가 되어 왔으며, Roth는 "0.2.0에 대한 라이브 리로드에 문제가 발생하여 더 강력한 디자인을 통해 작업할 수 있을 때까지 이 문제를 해결합니다"라고 말한 적이 있습니다. 해당 문제는 2021년 6월에 .NET <>에 대해 "완료"된 것으로 간주되어 종료되었지만 Roth의 게시물과 그에 따른 피드백은 여전히 문제가 있고 개발 팀의 최우선 관심사임을 보여줍니다.
그러나 팀은 그 이후로 CMake 프로젝트 및 XAML에 대한 핫 다시 로드를 지원하는 올해의 Visual Studio 2022 17.5 릴리스를 통해 이 기능을 발전시켰습니다.
그러나 이 스크린샷과 같이 "Blazor WebAssembly 및 "dotnet watch" #2022를 사용하여 핫 다시 로드가 거의 항상 실패한다는 제목의 45519년 GitHub 문제로 인해 많은 관련 문제가 나열되어 있습니다.
이 게시물에는 웹에서 이 문제에 대한 대화에 대한 링크도 나열되어 있습니다.
- https://www.reddit.com/r/Blazor/comments/10wwfpr/has_anyone_had_hotreload_randomly_stop_working/
- https://www.reddit.com/r/Blazor/comments/10kishh/blazor_united_prototype_for_from_steve_sanderson/j5r08b4/
- https://www.reddit.com/r/Blazor/comments/vaccxa/hot_reload_is_rubbish/
- https://stackoverflow.com/questions/69778272/unable-to-hot-reload-on-visual-studio-2022/74380447#74380447
- https://stackoverflow.com/questions/70005784/net-6-blazor-wasm-hot-reload-not-working/74750013
- https://learn.microsoft.com/en-us/answers/questions/908804/vs2022-blazor-server-app-hot-reload-notworking
ASP.NET Core(Blazor가 있는 프레임워크)의 핫 다시 로드에 for.NET Microsoft의 설명서에 따르면 Blazor WebAssembly 핫 다시 로드는 다음 코드 변경 내용을 지원합니다.
- 새로운 유형.
- 중첩 클래스.
- 메서드 본문에 대한 대부분의 변경 내용(예: 변수, 표현식 및 명령문 추가, 제거 및 편집)
- 람다 식과 지역 함수의 본문에 대한 변경 내용Changes to the body of lambda expressions and local functions.
- static 및 instance 메서드를 기존 형식에 추가합니다.
- 기존 형식에 정적 필드 추가.
- 기존 메서드에 정적 람다 추가.
- 이전에 이미 캡처한 기존 메서드에 이를 캡처하는 람다를 추가합니다.
이러한 코드 변경을 지원하지 않는 동안:
- 새 await 연산자 또는 yield 키워드 표현식 추가.
- 메서드 매개 변수의 이름 변경
- 인스턴스(비정적) 필드, 이벤트 또는 속성 추가Adding instance (non-static) fields, events, or properties.
이 시점에서 .NET 8이 완료되면 일부 핫 다시 로드 작업 항목이 여전히 "열기"로 표시되고 ".NET 9 계획"으로 표시됩니다.
- 디버깅 & 핫 다시 로드는 앱의 기본 경로가 변경될 때 중단됩니다.
- HotReloadAgent에 대한 오류 보고서 개선
- 컨트롤러에 생성자를 추가하면 핫 다시 로드가 중단됨(dotnet watch)
- Blazor AsyncLocal은 핫 다시 로드 후 첫 번째 다시 렌더링에서 null입니다.
- 핫 다시 로드 끝점을 사용하는 경우 중복됩니다.
- Hot Reload가 메타데이터 업데이트를 트리거할 때 ComponentProperties 캐시를 무효화하는 것이 좋습니다.
- 개발에서 환경을 변경할 때 Blazor WebAssembly 핫 다시 로드 지원이 중단됨
- disableDomPreservation = true인 경우 핫 다시 로드 새로 고침 처리
"백로그"로 표시된 몇 가지 문제는 다음과 같습니다.
- 솔루션 구성이 디버그가 아닌 경우 핫 다시 로드(Blazor WASM)가 작동하지 않음
- WebAssembly 핫 리로드 기능 감지 간소화
- [블레이저] 기본값이 nullable인 매개 변수를 변경하면 핫 다시 로드를 사용할 때 이름이 고유하지 않습니다.
- 라이브러리 구성 요소의 스타일이 핫 다시 로드 후 손실됨
- 핫 다시 로드 브라우저 새로 고침 스크립트 삽입 다시 방문
- 범위가 지정된 CSS의 Blazor 핫 다시 로드로 인해 참조된 CSS가 손실됨
- 핫 리로드 후 RenderFragment가 표시됨
- 핫 다시 로드를 수행할 때 다시 빌드해야 하는 경우 마지막 페이지에서 시작하도록 하는 옵션을 추가합니다.
- 본문 태그가 잘못된 경우 Blazor WebAssembly 핫 다시 로드가 작동하지 않음
- .NET 6 Blazor 핫 다시 로드는 애플리케이션 URL에 지정된 포트에 따라 실패합니다.
지난주 X 스레드에서 Roth는 Microsoft 중심 개발자가 거의 유비쿼터스에 가까운 JavaScript 대신 웹 개발 프로젝트에 C#을 사용할 수 있다는 것이 주요 판매 포인트인 Blazor의 향후 실행 가능성에 대한 질문에 답변하는 시간도 가졌습니다. Blazor WebAssembly는 Blazor Server와 쌍을 이루는 전체 스택 Blazor 제품의 클라이언트 쪽입니다.
질문은 다음과 같습니다 : "Blazor는 미래에 다른 js 프레임 워크만큼 성능이 좋을까요? 이게 가능해?"
Roth의 대답 : "시나리오에 따라 다릅니다. . . NET은 일반적으로 서버 쪽 렌더링과 마찬가지로 서버에서 성능상의 이점이 있습니다. 클라이언트에서 JavaScript는 웹 플랫폼의 일부로 제공되기 때문에 이점이 있습니다."
'IT News' 카테고리의 다른 글
이제 Windows 11에서 입력할 수 있는 모든 곳에 글을 쓸 수 있습니다. (0) 2023.11.02 MICROSOFT, 메타버스 프로젝트 갑작스럽게 축소, 직원 해고. (0) 2023.11.02 SQLite를 사용해야만 하는 이유 (1) 2023.11.02 우노 플랫폼 v5.0 발표 (1) 2023.11.02 YouTube의 광고 차단기 단속이 확대되어 사용자가 악화됩니다. (0) 2023.11.02