Prism.Core 7.0.0.124-pre

Prefix Reserved
This is a prerelease version of Prism.Core.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Prism.Core --version 7.0.0.124-pre
                    
NuGet\Install-Package Prism.Core -Version 7.0.0.124-pre
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Prism.Core" Version="7.0.0.124-pre" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Prism.Core" Version="7.0.0.124-pre" />
                    
Directory.Packages.props
<PackageReference Include="Prism.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Prism.Core --version 7.0.0.124-pre
                    
#r "nuget: Prism.Core, 7.0.0.124-pre"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Prism.Core&version=7.0.0.124-pre&prerelease
                    
Install Prism.Core as a Cake Addin
#tool nuget:?package=Prism.Core&version=7.0.0.124-pre&prerelease
                    
Install Prism.Core as a Cake Tool

Prism is a fully open source version of the Prism guidance originally produced by Microsoft Patterns & Practices.  Prism provides an implementation of a collection of design patterns that are helpful in writing well structured and maintainable XAML applications, including MVVM, dependency injection, commanding, event aggregation, and more. Prism's core functionality is a shared code base in a Portable Class Library targeting these platforms; WPF, Windows 10 UWP, and Xamarin Forms. Features that need to be platform specific are implemented in the respective libraries for the target platform.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
.NET Core netcoreapp1.0 was computed.  netcoreapp1.1 was computed.  netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard1.0 is compatible.  netstandard1.1 was computed.  netstandard1.2 was computed.  netstandard1.3 was computed.  netstandard1.4 was computed.  netstandard1.5 was computed.  netstandard1.6 was computed.  netstandard2.0 was computed.  netstandard2.1 was computed. 
.NET Framework net45 was computed.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen30 was computed.  tizen40 was computed.  tizen60 was computed. 
Universal Windows Platform uap was computed.  uap10.0 was computed. 
Windows Phone wp8 was computed.  wp81 was computed.  wpa81 was computed. 
Windows Store netcore was computed.  netcore45 was computed.  netcore451 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (164)

Showing the top 5 NuGet packages that depend on Prism.Core:

Package Downloads
Prism.Forms

Prism provides an implementation of a collection of design patterns that are helpful in writing well structured, maintainable, and testable XAML applications, including MVVM, dependency injection, commanding, event aggregation, and more. Prism's core functionality is a shared library targeting the .NET Framework and .NET. Features that need to be platform specific are implemented in the respective libraries for the target platform (WPF, Uno Platform, .NET MAUI and Xamarin Forms). Prism for Xamarin.Forms helps you more easily design and build rich, flexible, and easy to maintain Xamarin.Forms applications. This library provides user interface composition as well as modularity support.

Prism.Wpf

Prism provides an implementation of a collection of design patterns that are helpful in writing well structured, maintainable, and testable XAML applications, including MVVM, dependency injection, commanding, event aggregation, and more. Prism's core functionality is a shared library targeting the .NET Framework and .NET. Features that need to be platform specific are implemented in the respective libraries for the target platform (WPF, Uno Platform, .NET MAUI and Xamarin Forms). Prism.Wpf helps you more easily design and build rich, flexible, and easy to maintain Windows Presentation Foundation (WPF) desktop applications. This library provides user interface composition as well as modularity support.

Prism.Container.Extensions

Prism Container Extension Abstractions

Prism.Plugin.Logging.Abstractions

Provides base interfaces for more robust Prism Logging.

Bit.Universal.Core

Bit.Universal.Core

GitHub repositories (67)

Showing the top 20 popular GitHub repositories that depend on Prism.Core:

Repository Stars
JosefNemec/Playnite
Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.
Uahh/ToastFish
一个利用摸鱼时间背单词的软件。
OptiKey/OptiKey
OptiKey - Full computer control and speech with your eyes
angularsen/UnitsNet
Makes life working with units of measurement just a little bit better.
digimezzo/dopamine-windows
Audio player which tries to make organizing and listening to music as simple and pretty as possible.
PrismLibrary/Prism-Samples-Wpf
Samples that demonstrate how to use various Prism features with WPF
Cysharp/MessagePipe
High performance in-memory/distributed messaging pipeline for .NET and Unity.
Accelerider/Accelerider.Windows
A shell that runs Accelerider applications on the Windows platform.
Windows-XAML/Template10
Making Windows 10 apps great again
cocoa-mhlw/cocoa
reactiveui/splat
Makes things cross-platform
irihitech/Ursa.Avalonia
Ursa is an enterprise level UI library for building cross-platform applications with Avalonia UI.
CXWorld/CapFrameX
Frametime capture and analysis tool
HenJigg/wpf-abp
Cross-platform mobile project and WPF client based on ABP framework Xamarin.Forms
visualHFT/VisualHFT
VisualHFT is a cutting-edge GUI platform for market analysis, focusing on real-time visualization of market microstructure. Built with WPF & C#, it displays key metrics like Limit Order Book dynamics and execution quality. Its modular design ensures adaptability for developers and traders, enabling tailored analytical solutions.
MoocDownloader/MoocDownloader
An MOOC downloader implemented by .NET. 一枚由 .NET 实现的 MOOC 下载器.
skanmera/ExcelMerge
GUI Diff Tool for Excel
takuya-takeuchi/DlibDotNet
Dlib .NET wrapper written in C++ and C# for Windows, MacOS, Linux and iOS
BAndysc/WoWDatabaseEditor
Integrated development environment (IDE), an editor for Smart Scripts (SAI/smart_scripts) for TrinityCore based servers. Cmangos support work in progress. Featuring a 3D view built with OpenGL and custom ECS framework
zodiacon/EtwExplorer
View ETW Provider manifest
Version Downloads Last updated
9.0.537 246,873 8/20/2024
9.0.401-pre 68,763 2/14/2024
9.0.271-pre 44,322 10/8/2023
8.1.97 4,539,457 5/24/2021
8.0.0.1909 1,948,973 10/21/2020
8.0.0.1850-pre 159,000 8/25/2020
8.0.0.1740-pre 22,554 5/5/2020
7.2.0.1422 7,418,544 11/21/2019
7.2.0.1367 703,261 7/24/2019
7.2.0.1347-pre 19,849 6/11/2019
7.2.0.1233-pre 23,597 5/6/2019
7.2.0.1038-pre 23,983 2/20/2019
7.2.0.708-pre 11,061 12/4/2018
7.1.0.431 11,033,217 10/15/2018
7.1.0.279-pre 10,316 9/20/2018
7.1.0.172-pre 196,719 6/15/2018
7.1.0.135-pre 8,643 5/9/2018
7.1.0.123-pre 29,028 4/2/2018
7.0.0.396 509,158 1/22/2018
7.0.0.362 109,570 1/12/2018
7.0.0.336-pre 28,552 12/7/2017
7.0.0.269-pre 45,341 11/16/2017
7.0.0.168-pre 25,203 10/13/2017
7.0.0.124-pre 14,083 10/6/2017
7.0.0-pre1 10,013 9/22/2017
6.3.0 1,981,013 3/25/2017
6.3.0-pre2 6,559 2/26/2017
6.3.0-pre1 23,371 11/2/2016
6.2.0 630,077 8/9/2016
6.2.0-pre1 5,694 6/21/2016
6.1.0 415,093 10/14/2015
6.0.1 96,976 9/10/2015
6.0.0 16,909 9/9/2015
5.7.0-pre3 5,152 6/25/2015

## Prism.Core
* .NET Standard Support
* Added method to clear all errors on ErrorsContainer
* Add capability to DelegateCommand's ObservesProperty to observe properties of complex types
Example:
`ObservesProperty(() => Property.NestedProperty.NestedPoperty)`

## Prism.Forms
* Fixed #683: .NET Standard support
* Fixed #765: Deep linking within a NavigationPage results in an incorrect ContentPage Title on Android
* Fixed #1008: NavigationParameters: Not possible to specify parent type as generic parameter T
* Fixed #1024: XF: NavigationService swallowing Exceptions
* Fixed #1025: Xamarin.Forms deprecated the Device.OS property in favor of the RuntimePlatform property.
* Fixed #1027: Support macOS
* Fixed #1044: When Detail of MasterDetailPage is null, Modal Navigation is possible
* Fixed #1045: When calling NavigateAsync with NavigationPage, old page's Destroy on the stack is not called
* Fixed #1046: When calling DeepLink from Navigation Stack, the second page becomes Modal navigation
* Fixed #1054: When deep linking within NavigationPage, page order is reversed
* Fixed #1063: Master of MasterDetailPage will not be destroyed
* Fixed #1085: Error occurs if null path is specified in EventToCommandBehavior
* Fixed #1089: DebugLogger does not work in nuget-package
* Fixed #1132: Prism Forms Modularity extension methods
* Fixed #1133: IModuleCatalog AddModule returns wrong type
* Fixed #1139: Modularity Enhancements
* Fixed #1076: IActiveAware not working when ContentPage (as child of a TabbedPage) is wrapped into a NavigationPage

**IDeviceService**
* deprecated OnPlatform methods
* added DeviceRuntimePlatform property - this mimics the XF API and returns a string
* added RuntimePlatform property which returns an Enum of type RuntimePlatform and wraps the XF string-based values

**Container Extensions**
* deprecated the RegisterTypeForNavigationOnPlatform signature that requires explicit platform parameters
* added new signature that accepts new IPlatform objects
Example:
```
Container.RegisterTypeForNavigationOnPlatform<MainPage, MainPageViewModel>("Main",
new Platform<MainPage_Android>(RuntimePlatform.Android),
new Platform<MainPage_iOS>(RuntimePlatform.iOS));
```

# TabbedPage Navigation Behavior Change - BREAKING
## Current Behavior (v6.3.0)
`NavigateAsync("TabbedPage/ViewA/ViewB")` will select the tab ViewA in the TabbedPage if it exists, then continue navigating.  If ViewA does not exist as a tab, then you will continue to navigate as expected.

`NavigateAsync("TabbedPage/NavigationPage/ViewA/ViewB")` would search the TabbedPage for the first instance of a tab that was a NavigationPage, then navigate within the Navigation page the remaining ViewA and ViewB pages.  This provided the ability to deep link into a tab's nested navigation page, but there was no way to opt-out of this behavior.

Also, the INavigationAware methods did not get called to all tabs meaning that you would be responsible for forwarding any parameters to all your tabs.

## New Behavior
`NavigateAsync("TabbedPage/ViewA/ViewB")` will **no longer** select any tabs, but rather continue processing the navigation as separate pages on the navigation stack.

If you wish to select a tab, you will now use a parameter called "selectedTab" to indicate which tab you would like to select.

`NavigateAsync("TabbedPage?selectedTab=MiddleTab/ViewA/ViewB")`

This will navigate to the TabbedPage, selected the "MiddleTab" and continue navigating ViewA and ViewB onto the navigation stack.

For tabs that are wrapped inside a NavigationPage, you can use the "|" symbol to indicate the hierarchy.

`NavigateAsync("TabbedPage?selectedTab=NavigationPage|MiddleTab")`

There is a constant in the `KnownNavigationParameters` called `SelectedTab` that you can use instead of a string.

`NavigateAsync($"TabbedPage?{KnownNavigationParameters.SelectedTab}=MiddleTab")`

This will search each tab to see if it is a navigation page and if the first page on the stack matches "MiddleTab".  This is much more flexible than the existing behavior as before it would take the first instance of the NavigationPage found.  Now you can choose which tab exactly.

Some INavigationAware methods are now fired on all Tabs:
- OnNavigatingTo will be invoked on the TabbedPage and ALL TABS.
- OnNavigatedTo will be invoked on the TabbedPage and only the SELECTED TAB.
- OnNavigatedFrom will be invoked on the TabbedPage and only the SELECTED TAB.

**Note**: the parameter key `selectedTab` is now a reserved parameter name.  Similar to a reserved keyword in C#.  If you use this in your app as a key, you may experience undesired behavior.

**Note**: At this time there is no native support for deep linking into a Tab that is a navigation page.  Please let me know if you need this functionality.