Skip to content

Commit

Permalink
Merge pull request #129 from AvaloniaCommunity/feature/Prism9x-v9.0.271
Browse files Browse the repository at this point in the history
Prism v9.0.271
  • Loading branch information
DamianSuess authored Apr 13, 2024
2 parents 8cebb1e + db640ac commit 54cad66
Show file tree
Hide file tree
Showing 207 changed files with 1,326 additions and 5,272 deletions.
12 changes: 12 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"default": true,
"no-hard-tabs": true,
"MD007": { "indent": 2 },
"MD013": false,
"MD024": { "siblings_only": true, "allow_different_nesting": true },
"MD033": {
"allowed_elements": [ "br", "hr" ]
},
"MD055": false,
"MD056": false
}
13 changes: 13 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Project>
<PropertyGroup>
<NeutralLanguage>en</NeutralLanguage>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
</PropertyGroup>


<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<NoWarn>$(NoWarn);NU5104;NU5100;NU5118;NU5123;NU1603;CS1701;CS1702;XA0101;MSB3277;CS8785;CS8669;CS1998;NU1507</NoWarn>
</PropertyGroup>

</Project>
2 changes: 2 additions & 0 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<Project>
</Project>
44 changes: 44 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<Project>

<!-- Prism -->
<ItemGroup>
<PackageVersion Include="Prism.Core" Version="9.0.271-pre" />
<PackageVersion Include="Prism.Container.Abstractions" Version="9.0.61-pre" />
<PackageVersion Include="Prism.Container.DryIoc" Version="9.0.61-pre" />
<PackageVersion Include="Prism.Container.Unity" Version="9.0.61-pre" />
</ItemGroup>

<!-- Avalonia -->
<ItemGroup>
<PackageVersion Include="Avalonia" Version="11.0.7" />
<PackageVersion Include="Avalonia.Desktop" Version="11.0.7" />
<PackageVersion Include="Avalonia.Diagnostics" Version="11.0.7" />
<PackageVersion Include="Avalonia.LinuxFramebuffer" Version="11.0.7" />
<PackageVersion Include="Avalonia.Markup.Xaml.Loader" Version="11.0.7" />
<PackageVersion Include="Avalonia.ReactiveUI" Version="11.0.7" />
<PackageVersion Include="Avalonia.Themes.Simple" Version="11.0.7" />
<PackageVersion Include="Avalonia.Themes.Fluent" Version="11.0.7" />
</ItemGroup>

<!-- 3rd-Party -->
<ItemGroup>
<PackageVersion Include="DryIoc.dll" Version="5.4.1" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="4.7.0" />
<PackageVersion Include="System.Reactive" Version="6.0.0" />
<PackageVersion Include="System.ValueTuple" Version="4.5.0" />
<PackageVersion Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" />
<PackageVersion Include="Nerdbank.GitVersioning" Version="3.6.133" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="1.1.1" />
</ItemGroup>

<!-- Tests -->
<ItemGroup>
<PackageVersion Include="coverlet.collector" Version="6.0.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
<PackageVersion Include="Moq" Version="4.20.69" />
<PackageVersion Include="System.CodeDom" Version="6.0.0" />
<PackageVersion Include="xunit" Version="2.5.1" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.1"/>
<PackageVersion Include="Xunit.StaFact" Version="1.1.11" />
</ItemGroup>
</Project>
17 changes: 3 additions & 14 deletions Prism.Avalonia.sln
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{A1A058C5
build\AvaloniaDependency.props = build\AvaloniaDependency.props
build\Base.props = build\Base.props
build\BuildTargets.props = build\BuildTargets.props
Directory.Build.props = Directory.Build.props
Directory.Build.targets = Directory.Build.targets
Directory.Packages.props = Directory.Packages.props
build\EmbedXaml.props = build\EmbedXaml.props
build\Library.props = build\Library.props
build\Nuget.props = build\Nuget.props
Expand All @@ -44,16 +47,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{A1A058C5
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Avalonia", "Avalonia", "{9FF880E7-B56A-4E8E-9226-90A928FDE3AB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Containers", "Containers", "{366415D3-E0ED-449C-99E2-A258F6A566F6}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Prism.DryIoc.Shared", "src\Containers\Prism.DryIoc.Shared\Prism.DryIoc.Shared.shproj", "{6E7EC81D-DA39-4C4F-A898-0148558C34F4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampleMvvmApp", "e2e\SampleMvvmApp\SampleMvvmApp.csproj", "{7AF14280-214B-4A96-AFE8-CF063E2B6CA4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{966DDDE9-D31A-404B-9F24-5378DE8A12C8}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Prism.Container.Avalonia.Shared", "tests\Avalonia\Prism.Container.Avalonia.Shared\Prism.Container.Avalonia.Shared.shproj", "{340538B6-0781-470E-8BD1-7B7735FDC554}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Prism.Avalonia.Tests", "tests\Avalonia\Prism.Avalonia.Tests\Prism.Avalonia.Tests.csproj", "{DAFC499B-E379-4453-BDCE-2EC30E1290C8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampleDialogApp", "e2e\SampleDialogApp\SampleDialogApp.csproj", "{97F8C6D3-308C-40BD-B181-5CDFCF101CBF}"
Expand Down Expand Up @@ -135,19 +132,11 @@ Global
{47BC0E69-AF2D-4C4F-886E-31B61E05C57A} = {5F8D330E-F611-4E17-8217-F2D6CDB8E1F7}
{B7112DF9-D7A1-48B8-8821-CF81D52F793E} = {47BC0E69-AF2D-4C4F-886E-31B61E05C57A}
{9FF880E7-B56A-4E8E-9226-90A928FDE3AB} = {70B9D432-E8BD-4EB9-9CA8-E63E2C804F3F}
{366415D3-E0ED-449C-99E2-A258F6A566F6} = {70B9D432-E8BD-4EB9-9CA8-E63E2C804F3F}
{6E7EC81D-DA39-4C4F-A898-0148558C34F4} = {366415D3-E0ED-449C-99E2-A258F6A566F6}
{7AF14280-214B-4A96-AFE8-CF063E2B6CA4} = {5F8D330E-F611-4E17-8217-F2D6CDB8E1F7}
{340538B6-0781-470E-8BD1-7B7735FDC554} = {966DDDE9-D31A-404B-9F24-5378DE8A12C8}
{DAFC499B-E379-4453-BDCE-2EC30E1290C8} = {966DDDE9-D31A-404B-9F24-5378DE8A12C8}
{97F8C6D3-308C-40BD-B181-5CDFCF101CBF} = {5F8D330E-F611-4E17-8217-F2D6CDB8E1F7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D260344D-8648-441D-B85B-9D280005F098}
EndGlobalSection
GlobalSection(SharedMSBuildProjectFiles) = preSolution
tests\Avalonia\Prism.Container.Avalonia.Shared\Prism.Container.Avalonia.Shared.projitems*{340538b6-0781-470e-8bd1-7b7735fdc554}*SharedItemsImports = 13
src\Containers\Prism.DryIoc.Shared\Prism.DryIoc.Shared.projitems*{6e7ec81d-da39-4c4f-a898-0148558c34f4}*SharedItemsImports = 13
src\Containers\Prism.DryIoc.Shared\Prism.DryIoc.Shared.projitems*{a379e2c8-bd9a-42a1-8218-ced3c0d75e64}*SharedItemsImports = 5
EndGlobalSection
EndGlobal
14 changes: 14 additions & 0 deletions PrismLibrary_Avalonia.slnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"solution": {
"path": "Prism.Avalonia.sln",
"projects": [
"src\\Containers\\Prism.DryIoc.Shared\\Prism.DryIoc.Shared.shproj",
"src\\Prism.Avalonia\\Prism.Avalonia.csproj",
"src\\Prism.DryIoc.Avalonia\\Prism.DryIoc.Avalonia.csproj",
"tests\\Avalonia\\Prism.Avalonia.Tests\\Prism.Avalonia.Tests.csproj",
"tests\\Avalonia\\Prism.Container.Avalonia.Shared\\Prism.Container.Avalonia.Shared.shproj",
"tests\\Avalonia\\Prism.DryIoc.Avalonia.Tests\\Prism.DryIoc.Avalonia.Tests.csproj",
"tests\\Avalonia\\Prism.IocContainer.Avalonia.Tests.Support\\Prism.IocContainer.Avalonia.Tests.Support.csproj"
]
}
}
9 changes: 0 additions & 9 deletions Upgrade-Prism-8.1-9.x.md

This file was deleted.

144 changes: 125 additions & 19 deletions Upgrade-Prism-7.2-to-8.1.md → Upgrading-Prism.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# Upgrading from Prism 7.2 to 8.1
# Upgrading Prism.Avalonia

This file documents the upgrade path of the Prism releases, noting files removed :x: , added :new:, and notes on breaking changes.

| Icon | Text | Description |
|------|------|-------------|
Expand All @@ -10,9 +12,121 @@
| 💔 | `:broken_heart:` | Never implemented in this platform

* [Icon Reference](https://github.com/markdown-templates/markdown-emojis)

## Overview Prism 8.1.97 to 9.0.x

This file documents the upgrade path from Prism v8.1.97 to v9.0-pre support. Soon we will be moving this repo to be apart of the main Prism Library `:)`

Each of the following will be tagged and merged into the branch `Prism-9x` before being merged with `develop` and `master` branches.

**Progress:**

* [/] 9.0.271-pre - Will be tagged and released
* [ ] 9.0.401-pre - Will be tagged and released

### Release Comparison

As we all know, not everything is straight forward between these two XAML technologies. However, it's a good reminder to document the differences and 'got-yas'.

* [Prism v7.2.0.1422 to v8.0.0.1909](https://github.com/PrismLibrary/Prism/compare/v7.2.0.1422...v8.0.0.1909)
* [Prism v7.2.0.1422 to v8.1.97](https://github.com/PrismLibrary/Prism/compare/v7.2.0.1422...v8.1.97)
* [Prism v8.0.0.1909 to v8.1.97](https://github.com/PrismLibrary/Prism/compare/v8.0.0.1909...v8.1.97)
* [DNF - 9.0.264-pre](https://github.com/PrismLibrary/Prism/compare/DNF...9.0.264-pre) - (_DNF = Dot Net Foundation_)
* [9.0.264-pre - 9.0.274-pre](https://github.com/PrismLibrary/Prism/compare/9.0.264-pre...9.0.271-pre)
* [9.0.274-pre - 9.0.401-pre](https://github.com/PrismLibrary/Prism/compare/9.0.271-pre...9.0.401-pre)

### Changes

* `Samples` folder renamed to `e2e`
* Prism.Dialogs
* _Various updates, see section before for more info_
* `NavigationResult` returns the property `Success` instead of `Result`

#### Dialogs

**Breaking Changes:**

* ***UPGRADE SAMPLE NEEDED***
* Namespace changed from `Prism.Services.Dialogs` to `Prism.Dialogs`.
* `IDialogAware` property, `RequestClose`
* Refactored from `event` to `property` (`event Action<IDialogResult> RequestClose;` -> `DialogCloseListener RequestClose { get; }`)
* Property is now read-only
* `IDialogService` moved to Prism.Core
* Deprecated `void Show(...)`
* Deprecated `void ShowDialog(Window owner, ...`

**Removed Files:**

| File | Status | Notes |
|-------------------------|---------|--------|
| `ButtonResult.cs` | :x: | Absorbed into `Prism.Core`
| `DialogParameters.cs` | :x: | Absorbed into `Prism.Core`
| `DialogResult.cs` | :x: | Absorbed into `Prism.Core`
| `IDialogParameters.cs` | :x: | Absorbed into `Prism.Core`
| `IDialogResult.cs` | :x: | Absorbed into `Prism.Core`
| `IDialogService.cs` | :white_square_button: :x: | Absorbed into `Prism.Core`
| `IDialogServiceExtensions.cs` | :x: | Absorbed into `Prism.Core`
| `IDialogServiceCompatExtensions` | :new:
| `KnownDialogParameters` | :new:

**Not Implemented:**

* `IDialogWindow.Style` - Custom window styles are not implemented at this time.
* `DialogWindow.axaml.cs` - Does not implement `this.AttachDevTools();` at this time - _would be helpful during debugging_

**Avalonia vs WPF:**

| Avalonia | WPF | Reference |
|-|-|-|
| `dialogWindow.Opened` | `dialogWindow.Loaded`
| `EventHandler<WindowClosingEventArgs>? Closing;` | `event CancelEventHandler Closing;` | `IDialogWindow.cs`

#### Prism.DryIoc.Avalonia

| File | Status | Notes |
|-------------------------------------|---------|--------|
| DryIocContainerExtension.cs | :x: | [New Prism.Container Packages](https://github.com/PrismLibrary/Prism/pull/2968)

#### Prism.Avalonia.Tests

| File | Status | Notes |
|-------------------------------------|---------|--------|
| MockHostAwareRegionBehavior.cs | :heavy_check_mark:
| MockPresentationRegion.cs | :heavy_check_mark:
| MockRegion.cs | :heavy_check_mark:
| MockRegionAdapter.cs | :heavy_check_mark:
| MockRegionBehavior.cs | :heavy_check_mark:
| MockRegionBehaviorCollection.cs | :heavy_check_mark:
| MockRegionManager.cs | :heavy_check_mark:
| MockRegionmanagerAccessor.cs | :heavy_check_mark:
| MockSortableViews.cs | :heavy_check_mark:
| MockViewsCollection.cs | :heavy_check_mark:
| PrismApplicationBaseFixture.cs | :heavy_check_mark:
| PrismBootstrapperBaseFixture.cs | :heavy_check_mark:
| AutoPopulateRegionBehaviorFixture.cs | :heavy_check_mark:
| RegionActiveAwareBehaviorFixture.cs | :heavy_check_mark:
| RegionManagerRegistrationBehaviorFixture.cs | :heavy_check_mark:
| RegionMemberlifetimeBehaviorFixture.cs | :heavy_check_mark:
| ContentControlRegionAdapterFixture.cs | :heavy_check_mark:
| RegionAdapterBaseFixture.cs | :heavy_check_mark:
| RegionBehaviorFixture.cs | :heavy_check_mark:
| RegionFixture.cs | :heavy_check_mark:
| RegionManagerRequestNavigateFixture.cs | :heavy_check_mark:
| RegionViewRegistryFixture.cs | :heavy_check_mark:

### Future Feature Work To Add

| Project | Class |
|-|-|
| Prism.Avalonia | `Interactivity/InvokeCommandAction`
| Prism.Avalonia.Tests | `Regions/ItemsControlRegionAdapterFixture`
| Prism.Avalonia.Tests | `Regions/SelectorRegionAdapterFixture`

## Upgrading from Prism 7.2 to 8.1

* Basis of comparison: [Prism Library v7.2.0.1422...v8.1.97](https://github.com/PrismLibrary/Prism/compare/v7.2.0.1422...v8.1.97)

## Action Items
### Action Items

* [X] Upgrade Prism.Avalonia
* [X] Upgrade Prism.DryIoc
Expand All @@ -28,14 +142,14 @@
* This requires Avalonia v0.11 and [PR #8277](https://github.com/AvaloniaUI/Avalonia/pull/8277) as per [Issue 7908](https://github.com/AvaloniaUI/Avalonia/issues/7908).
* Restructure folders to match PrismLibrary

## Upgrade Progress
### Upgrade Progress

| File | Status | Notes |
|-----------------------|---------|--------|
| Readme.md | :warning: | Needs updated to match 8.1.x NuGet package version
| src\Readme.md | :new: | Added from PrismLibrary v8.1.x

### Prism.Avalonia
#### Prism.Avalonia

| File | Status | Notes |
|-------------------------------------|---------|--------|
Expand Down Expand Up @@ -178,7 +292,7 @@
| Services\Dialogs\IDialogWindow.cs | :new: :heavy_check_mark:
| Services\Dialogs\IDialogWindowExtensions.cs | :new: :heavy_check_mark:

### Containers
#### Containers

Containers is a :new: Folder

Expand All @@ -193,7 +307,7 @@ Containers is a :new: Folder
| Containers\Prism.Unity.Shared\PrismIocExntensions.cs | :new:
| Containers\Prism.Unity.Shared\UnityContainerExtension.cs | :new:

### Prism.DryIoc.Avalonia
#### Prism.DryIoc.Avalonia

| File | Status | Notes |
|-------------------------------------|---------|--------|
Expand All @@ -210,15 +324,15 @@ Containers is a :new: Folder
| Properties\Resources.Designer.resx | :white_square_button:
| Properties\Resources.resx | :white_square_button:

### Prism.Unity.Avalonia
#### Prism.Unity.Avalonia

| File | Status | Notes |
|-------------------------------------|---------|--------|
| PrismApplication.cs | :heavy_check_mark:
| PrismBootstrapper.cs | :heavy_check_mark:
| GlobalSuppressions.cs | :heavy_check_mark:

### Tests - Prism.Avalonia.Tests
#### Tests - Prism.Avalonia.Tests

Test writted to [Prism.WPF specs](https://github.com/PrismLibrary/Prism/tree/master/tests/Wpf/Prism.Wpf.Tests).

Expand Down Expand Up @@ -319,28 +433,20 @@ Test writted to [Prism.WPF specs](https://github.com/PrismLibrary/Prism/tree/mas
| Regions\Behaviors\SelectorItemsSourceSyncRegionBehaviorFixture.cs | :white_square_button: :warning:
| Regions\Behaviors\SyncRegionContextWithHostBehaviorFixture.cs | :heavy_check_mark:

### Tests - Prism.Container.Avalonia.Shared
#### Tests - Prism.Container.Avalonia.Shared

| File | Status | Notes |
|-----------------------------------------------|---------|--------|
| Fixtures\ContainerExtensionCollection.cs | :heavy_check_mark: |
| Mocks\NullModuleCatalogBootstrapper.cs | :heavy_check_mark: |

### Tests - Prism.DryIoc.Avalonia.Tests
#### Tests - Prism.DryIoc.Avalonia.Tests

**_TBD_**

| File | Status | Notes |
|-----------------------------------------------|---------|--------|

## Prism Upgrade Comparison

As we all know, not everything is straight forward between these two XAML technologies. However, it's a good reminder to document the differences and 'got-yas'.

* [Prism v7.2.0.1422 to v8.0.0.1909](https://github.com/PrismLibrary/Prism/compare/v7.2.0.1422...v8.0.0.1909)
* [Prism v7.2.0.1422 to v8.1.97](https://github.com/PrismLibrary/Prism/compare/v7.2.0.1422...v8.1.97)
* [Prism v8.0.0.1909 to v8.1.97](https://github.com/PrismLibrary/Prism/compare/v8.0.0.1909...v8.1.97)

## Conversion Helpers

[https://docs.avaloniaui.net/misc/wpf/Control-frameworkelement-and-control]
Expand All @@ -361,7 +467,7 @@ As we all know, not everything is straight forward between these two XAML techno
| `System.Windows.DependencyPropertyChangedEventArgs` | `Avalonia.AvaloniaPropertyChangedEventArgs`
| `System.ComponentModel.DesignerProperties.GetIsInDesignMode(DependencyObject element);` | `Avalonia.Controls.Design.IsDesignMode;`
| `System.Windows.Controls.Primitives.Selector` | ?? | _used by `SelectorRegionAdapter.cs` and `PrismInitializationExtensions.cs`_
| `RoutedEventHandler` | _Not Implemented_
| `RoutedEventHandler` | `EventHandler`

### AvaloniaProperty vs DependencyProperty

Expand Down
6 changes: 3 additions & 3 deletions build/AvaloniaDependency.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup>
<PackageReference Include="Avalonia" Version="11.0.7" />
<PackageReference Include="Avalonia.Markup.Xaml.Loader" Version="11.0.7" />
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.7" />
<PackageReference Include="Avalonia" />
<PackageReference Include="Avalonia.Markup.Xaml.Loader" />
<PackageReference Include="Avalonia.ReactiveUI" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion build/Base.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Version>9.0.264.11073</Version>
<Version>9.0.271.11074-pre</Version>
<PackageProjectUrl>https://github.com/AvaloniaCommunity/Prism.Avalonia</PackageProjectUrl>
<Copyright>Copyright (c) 2024 Xeno Innovations, Inc.</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
Expand Down
Loading

0 comments on commit 54cad66

Please sign in to comment.