Releases: lukewire129/Nuri
Releases · lukewire129/Nuri
Release list
v0.3.0
Nuri v0.3.0
Platform-neutral UI composition, visual styling, input handling, and Avalonia tooling have been expanded.
Highlights
- Added renderer-owned Native Control Islands through
Native<TNative>(...)for integrating retained WPF and Avalonia controls with mount, render, and cleanup lifecycles - Added startup YAML visual styling with named styles, theme tokens, single-style inheritance, embedded fallbacks, and external override files
- Added
Absolutelayout plusViewportpan and zoom control APIs - Expanded pointer input with primary, secondary, and middle buttons, modifier keys, local coordinates, wheel events, routing, and optional pointer capture
- Added minimum and maximum size constraints across Core, WPF, and Avalonia
- Added Avalonia application builder, window configuration extensions, Runtime Inspector diagnostics, and NuGet publishing
- Improved WPF and Avalonia event/property mapping, including viewport materialization and native control hosting
- Reorganized implementation references by architecture, renderer, guide, and performance responsibilities
Compatibility Notes
Native<TNative>(...)supports WPFFrameworkElementand AvaloniaControltypes only; native islands are renderer-specific leaf nodes, and Duxel does not materialize them- YAML visual styles are loaded only at startup. Updating external files requires restarting the application; inline C# values override styled values
Nuri.Avalonia.Diagnosticsis a separate package and must be referenced to use AvaloniaUseAttachDevTools()integration- The v0.3.0 NuGet workflow publishes
Nuri,Nuri.WPF,Nuri.Avalonia,Nuri.WPF.Diagnostics, andNuri.Avalonia.Diagnostics. Duxel packages are not included in this publishing run
플랫폼 중립 UI 구성, 시각 스타일, 입력 처리 및 Avalonia 개발 도구를 확장했습니다.
주요 변경 사항
Native<TNative>(...)를 추가하여 retained WPF/Avalonia 컨트롤을 mount, render, cleanup lifecycle과 함께 통합하는 Native Control Island 지원- 이름 있는 스타일, theme token, 단일 스타일 상속, embedded fallback, 외부 override 파일을 갖춘 시작 시점 YAML 시각 스타일 지원
Absolute레이아웃과Viewportpan/zoom 제어 API 추가- primary, secondary, middle button, modifier key, local coordinate, wheel event, routing, 선택적 pointer capture를 포함하도록 pointer 입력 확장
- Core, WPF, Avalonia 전반에 최소/최대 크기 제약 추가
- Avalonia application builder, Window 구성 extension, Runtime Inspector diagnostics, NuGet publishing 추가
- Viewport materialization 및 native control hosting을 포함한 WPF/Avalonia event/property mapping 개선
- 구현 참고 문서를 architecture, renderer, guide, performance 책임별로 재구성
호환성 안내
Native<TNative>(...)는 WPF의FrameworkElement와 Avalonia의Control타입만 지원합니다. Native Island는 renderer별 leaf node이며 Duxel은 materialize하지 않습니다- YAML 시각 스타일은 시작 시에만 로드됩니다. 외부 파일 변경은 애플리케이션 재시작이 필요하며, inline C# 값이 스타일 값을 우선합니다
- Avalonia
UseAttachDevTools()통합을 사용하려면 별도 패키지인Nuri.Avalonia.Diagnostics를 참조해야 합니다 - v0.3.0 NuGet workflow는
Nuri,Nuri.WPF,Nuri.Avalonia,Nuri.WPF.Diagnostics,Nuri.Avalonia.Diagnostics를 publish합니다. 이번 배포에는 Duxel 패키지가 포함되지 않습니다
v0.2.1
Nuri v0.2.1
Core DSL, WPF rendering, developer tooling, and runtime stability have been improved.
Highlights
- Added Grid string declarations and new layout APIs such as
Spacing,Grow, andTextOverflow - Added
VirtualizedItems<T>with measured WPF virtualization - Improved keyed reconciliation, component identity, and effect lifecycle stability
- Added multi-window and
net9.0-windowssupport for WPF - Expanded Translate, Scale, Rotate, and Opacity animations
- Added
Nuri.WPF.Diagnosticsand the Runtime Inspector - Improved Visual Studio Preview and added
Render()format-on-save - Added live WPF Preview for VS Code
- Improved keyed list rendering performance
Compatibility Notes
- WPF Diagnostics now requires a separate reference to
Nuri.WPF.Diagnostics - A scrollable
Divcan have only one direct child - The previous DevTools configuration API has been replaced by
NuriApplication.Create<T>().UseAttachDevTools()
Core DSL, WPF 렌더링, 개발 도구 및 런타임 안정성을 개선했습니다.
주요 변경 사항
- Grid 문자열 선언과
Spacing,Grow,TextOverflow등 레이아웃 API 추가 VirtualizedItems<T>및 측정 기반 WPF 가상화 지원- keyed reconciliation, component identity 및 effect lifecycle 안정화
- WPF 다중 Window와
net9.0-windows지원 - Translate, Scale, Rotate, Opacity 애니메이션 확대
Nuri.WPF.Diagnostics와 Runtime Inspector 추가- Visual Studio Preview 개선 및
Render()format-on-save 지원 - VS Code용 실시간 WPF Preview 추가
- keyed 목록 렌더링 성능 개선
호환성 안내
- WPF Diagnostics는
Nuri.WPF.Diagnostics패키지를 별도로 참조해야 합니다 - Scroll
Div는 직접 자식을 하나만 허용합니다 - 기존 DevTools 설정 API는
NuriApplication.Create<T>().UseAttachDevTools()방식으로 변경됐습니다
v0.2.0
• ## Nuri 0.2.0
Nuri 0.2.0 expands the Core and WPF renderer with improved reconciliation, layout, virtualization, animations, diagnostics, and preview tooling.
Highlights
- Added virtualized item rendering with keyed add, remove, move, and update operations.
- Added WPF virtualization support and stress diagnostics for large lists.
- Added flexible row, column, wrap, grid, and content distribution layouts.
- Expanded Rows() and Columns() syntax, including pixel, star, weighted-star, and auto lengths.
- Added opacity, translate, and scale transition support for WPF.
- Improved keyed component lifecycle, effect cleanup, and native event handler cleanup.
- Added diagnostics for unsupported WPF properties and events.
- Added multi-window lifecycle support and automatic STA application startup.
- Added Explorer Tree, Virtual Explorer Tree, Animated Dashboard, and Multi-Window samples.
Preview tooling
- Added shared PreviewHost infrastructure for Visual Studio and VS Code.
- Added live preview streaming to the VS Code extension.
- Improved component discovery, assembly loading, build diagnostics, and preview refresh behavior.
- Packaged the PreviewHost directly inside both Visual Studio and VS Code extensions.
- Updated both preview extensions to version 0.2.0.
- Fixed the Visual Studio extension installer so it no longer launches or hangs on devenv /updateconfiguration.
Fixes
- Fixed subtree reconciliation rewriting descendant identities during partial component renders.
- Fixed state updates that were generated correctly but could not find their native WPF controls.
- Fixed Command Palette filtering and keyboard actions such as Up, Down, Enter, and Escape.
- Stabilized virtualized item cleanup and keyed effect lifecycle.
- Fixed native event handlers remaining attached after an entry was removed or replaced.
Nuri 0.2.0
Nuri 0.2.0에서는 Core와 WPF 렌더러의 재조정, 레이아웃, 가상화, 애니메이션, 진단 및 프리뷰 도구를 개선했습니다.
주요 변경 사항
- Key 기반 추가, 제거, 이동 및 업데이트를 지원하는 가상화 아이템 렌더링을 추가했습니다.
- 대용량 목록을 위한 WPF 가상화와 스트레스 진단 기능을 추가했습니다.
- 유연한 Row, Column, Wrap, Grid 및 콘텐츠 분배 레이아웃을 추가했습니다.
- Pixel, Star, 가중치 Star 및 Auto 길이를 포함하도록 Rows()와 Columns() 문법을 확장했습니다.
- WPF에서 Opacity, Translate 및 Scale 전환 애니메이션을 지원합니다.
- Key 기반 컴포넌트 생명주기, Effect 정리 및 네이티브 이벤트 핸들러 정리를 개선했습니다.
- 지원되지 않는 WPF 속성과 이벤트에 대한 진단 기능을 추가했습니다.
- 멀티 윈도우 생명주기와 자동 STA 애플리케이션 실행을 지원합니다.
- Explorer Tree, Virtual Explorer Tree, Animated Dashboard 및 Multi-Window 샘플을 추가했습니다.
프리뷰 도구
- Visual Studio와 VS Code에서 공유하는 PreviewHost 인프라를 추가했습니다.
- VS Code 확장에 실시간 프리뷰 스트리밍을 추가했습니다.
- 컴포넌트 검색, 어셈블리 로딩, 빌드 진단 및 프리뷰 새로고침 동작을 개선했습니다.
- Visual Studio와 VS Code 확장에 PreviewHost를 직접 포함하도록 패키징했습니다.
- 두 프리뷰 확장 버전을 모두 0.2.0으로 업데이트했습니다.
- Visual Studio 확장 설치 과정에서 devenv /updateconfiguration이 실행되거나 멈추던 문제를 수정했습니다.
수정 사항
- 컴포넌트 부분 렌더링 과정에서 하위 요소의 Identity가 다시 작성되던 문제를 수정했습니다.
- 상태 업데이트는 정상 생성되지만 대응하는 WPF 네이티브 컨트롤을 찾지 못하던 문제를 수정했습니다.
- Command Palette의 검색 필터와 Up, Down, Enter, Escape 키 동작을 수정했습니다.
- 가상화 아이템 정리와 Key 기반 Effect 생명주기를 안정화했습니다.
- 엔트리가 제거되거나 교체된 후에도 네이티브 이벤트 핸들러가 남아 있던 문제를 수정했습니다.