WPF(Windows Presentation Foundation)는 2006년에 .NET Framework 3.0의 일부로 릴리스되었습니다. WPF 앱을 웹 브라우저에서 호스트하고 실행할 수 있는 XBAP(XAML 브라우저 애플리케이션) 기능도 WPF의 일부로 동시에 도입되었습니다. 2006년 WPF 및 XBAP가 출시될 당시 가장 인기 있는 웹 브라우저는 Internet Explorer 7, Mozilla Firefox 2 및 Safari 2였습니다. Google Chrome은 2년 후인 2008년에 출시되었기 때문에 아직 사용할 수 없었습니다.
XBAP는 사용자가 웹 페이지의 링크를 클릭하여 앱을 설치하고 실행할 수 있도록 하는 Microsoft 기술인 브라우저에서 ClickOnce 배포 기술을 사용합니다. 그러나 이 기술은 브라우저에서 NPAPI(Netscape 플러그 인 애플리케이션 프로그래밍 인터페이스)의 지원에 크게 의존했습니다. NPAPI는 최근 몇 년 동안 보안 및 안정성 문제로 인해 단계적으로 폐지되었습니다. Edge, Chrome, Firefox 및 Safari와 같은 주요 브라우저는 NPAPI 플러그 인에 대한 지원을 제거했습니다. 이는 XBAP 앱을 더 이상 이러한 브라우저에서 실행할 수 없음을 의미합니다.
XBAP 지원
Microsoft가 XBAP에 제공하는 현재 지원 수준은 무엇인가요?
XBAP는 .NET Framework에서 지원됩니다. .NET용 WPF에는 XBAP 지원이 포함되지 않습니다.
기본적으로 XBAP를 지원하는 지원되는 브라우저가 있나요?
정확히 말하면 XBAP용으로 설계된 지원되는 브라우저가 더 이상 없습니다. Internet Explorer 11에 대한 지원은 2022년 6월 15일에 종료되었습니다. Microsoft Edge 및 Google Chrome과 같은 일부 브라우저에는 레거시 Internet Explorer 지원을 추가하는 IE 모드(Internet Explorer 모드) 기능이 있습니다. 이러한 모드는 XBAP용으로 설계되지 않았으므로 일부 XBAP 기능이 작동하지 않을 수 있습니다. 자세한 내용은 IE(Internet Explorer) 모드란?을 참조하세요.
XBAP를 실행할 어떻게 할까요? 있나요?
XBAP는 웹 서버에 배포해야 하며 IE 모드(Internet Explorer 모드) 호환성이 있는 브라우저를 사용해야 합니다. 적절한 IE 보안 영역에서 앱을 사용하도록 로컬 정책을 구성해야 할 수 있습니다. 자세한 내용은 IE(Internet Explorer) 모드란? 및 IE 모드에서 Microsoft Edge에 대한 레거시 브라우저 지원 설정을 참조하세요.
마이그레이션 옵션
XBAP를 WPF 애플리케이션으로 변환할 수 있나요?
예. 앱을 표준 WPF 애플리케이션으로 마이그레이션하고 설치 관리자를 통해 배포할 수 있습니다. ClickOnce를 사용하여 WPF 앱을 게시할 수 있지만 ClickOnce에는 IE 모드가 설정된 브라우저 또는 ClickOnce를 사용하도록 설정하는 플러그 인이 필요합니다.
브라우저에서 실행해야 합니다. 내 옵션은 무엇인가요?
Blazor 및 WebAssembly를 사용하는 ASP.NET Core
Blazor는 C#을 사용하는 전체 스택 웹앱입니다. 코드가 얼마나 잘 구성되고 구획화되었는지에 따라 Blazor에서 앱의 프런트 엔드를 다시 작성해야 할 수 있습니다. Blazor 앱은 WebAssembly를 사용하여 배포할 수 있으므로 브라우저에서 앱이 완전히 클라이언트 쪽에서 실행될 수 있습니다.
자세한 내용은 Blazor란?을 참조 하세요.
.NET MAUI
비 Windows 운영 체제에서 실행할 수 있도록 앱을 XBAP로 만든 경우 UI에 XAML을 사용하는 .NET MAUI로 앱을 변환해 보세요. .NET MAUI는 WPF와 다르지만 비슷한 개념을 많이 공유합니다. 자세한 내용은 .NET MAUI란?을 참조하세요.
OpenSilver
OpenSilver 프로젝트는 Silverlight의 대안으로 만들어졌습니다. Silverlight는 오래 전에 중단된 WPF의 하위 집합이었습니다. XBAP 프로젝트가 OpenSilver로 잘 변환될 수 있습니다. 자세한 내용은 OpenSilver 웹 사이트 및 GitHub 리포지토리를 참조하세요.