You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
4.1 KiB
Markdown
104 lines
4.1 KiB
Markdown
# KnowledgeBase for Prism Guidance
|
|
|
|
* [Official Site](https://prismlibrary.com/)
|
|
* Existing Mitech-wpf use `Prism 4.x`. The only official legacy reference is based on [Prism 6](https://prismlibrary.com/docs/wpf/legacy/Introduction.html)
|
|
* Its using `MEF Ioc (Dependency Injection)`. The `MEF DI` was removed from Prism 7.x and above. Only `Unity Dependency Injection` supported from Prism 7.x onward
|
|
* **MEF** vs **Unity** Modularity [Quick Start](https://learn.microsoft.com/en-us/previous-versions/msp-n-p/ff921068(v=pandp.40)?redirectedfrom=MSDN)
|
|
* The latest Prism Library is `8.1`
|
|
* Prism 8 support NET 5 and dotnet Framework. Prism 6.x and below only DotNet Framework 4.8 and below.
|
|
* `Mitech-wpf` was migrated to Prism 6.3 on Feb 2023, as this is the last version to support `MEF DI` Container.
|
|
|
|
## Legacy Documentation
|
|
- [Prism 4 Demo](https://www.codeproject.com/Articles/254120/Prism-4-MEF-Application). Migrated to Prism 6 [link](http://dev.mitech.com.sg:3000/playground/prism4-demo)
|
|
- [Prism 4 QuickGuide](./legacy/Prism4_QuickGuide.pdf)
|
|
- [Prism 4 Guide](./legacy/Prism4_Guide.pdf)
|
|
- [Prism 5](https://www.microsoft.com/en-sg/download/details.aspx?id=42572)
|
|
- Another nice [link](https://www.cnblogs.com/DoubleChen/p/3687305.html)
|
|
- Nuget : [Prism 4.1](https://www.nuget.org/packages/prism/4.1.0)
|
|
|
|
## Migration Guides
|
|
- [Prism 4.1 to 5](https://learn.microsoft.com/en-us/previous-versions/msp-n-p/ff921144(v=pandp.40))
|
|
- `Microsoft.Practices.Prism.ViewModel` namespace deprecated. Please use `Microsoft.Practices.Prism.Mvvm`
|
|
- The `BindableBase` class was added to simplify `INotifyPropertyChanged` interface.
|
|
- EventAggregator Namespace and API Changes. **NEW** `Prism.PubSubEvents` namespace
|
|
- Regions Namespace API Changes
|
|
- `UriQuery` class was replaced with the `NavigationParameters`
|
|
- Namespace changes
|
|
- Refer to [Prism 5 pdf](./legacy/Prism5forWPF.pdf) for legacy changes
|
|
```cs
|
|
using Microsoft.Practices.Prism.ViewModel;
|
|
|
|
// change to
|
|
using Microsoft.Practices.Prism.Mvvm;
|
|
using Microsoft.Practices.Prism.Mvvm.Desktop;
|
|
using Microsoft.Practices.Prism.ShareInterfaces;
|
|
```
|
|
|
|
- [Prism 5 to 6](https://github.com/PrismLibrary/Prism/wiki/Release-Notes---6.0.0)
|
|
- Breaking Changes
|
|
- Removed `Microsoft.Practices` from all namespaces
|
|
- Add Nuget `Prism.Mef 6.3`
|
|
```bash
|
|
# .NET cli
|
|
> dotnet add package Prism.Mef --version 6.3.0
|
|
|
|
# Package Manager
|
|
PM> NuGet\Install-Package Prism.Mef -Version 6.3.0
|
|
```
|
|
|
|
- Created new xmlns namespace `http://prismlibrary.com/`
|
|
- Namespace changes
|
|
```cs
|
|
// Prism 4
|
|
using Microsoft.Practices.Prism;
|
|
using Microsoft.Practices.Prism.ViewModel;
|
|
|
|
// change to Prism 6.3
|
|
using Prism.Mvvm
|
|
```
|
|
|
|
```cs
|
|
// Prism 4
|
|
using Microsoft.Practices.Prism.MefExtensions.Modularity;
|
|
using Microsoft.Practices.Prism.Modularity;
|
|
|
|
// change to Prism 6.3
|
|
using Prism.Mef.Modularity;
|
|
using Prism.Modularity;
|
|
|
|
```
|
|
|
|
```cs
|
|
using Microsoft.Practices.Prism.Regions;
|
|
|
|
// change to
|
|
using Prism.Regions
|
|
```
|
|
|
|
```cs
|
|
using Microsoft.Practices.Prism.Commands;
|
|
|
|
// change to
|
|
using Prism.Commands;
|
|
```
|
|
|
|
- [Prism 6 to 8](https://prismlibrary.com/docs/wpf/converting-from-6.html)
|
|
- Bootstrapper class need to move to Application class
|
|
- use `xmlns:prism="http://prismlibrary.com/"`
|
|
|
|
- [Prism 7.1](https://brianlagunas.com/whats-new-prism-7-1/)
|
|
- **BIG** changes. [Release Notes](https://github.com/PrismLibrary/Prism/releases/tag/v7.1.0)
|
|
- No longer be shipping or supporting MEF for WPF
|
|
- New `Prism.IoC` namespace
|
|
- For `Prism.WPF`, introduced new `PrismApplication` base class. `Bootstrapper` class deprecated.
|
|
|
|
- [Prism 7 to 8](https://prismlibrary.com/docs/wpf/converting-from-7.html)
|
|
- [Release Notes](https://github.com/PrismLibrary/Prism/releases/tag/v8.0.0.1909)
|
|
- AutoWireViewModel is now default to true `prism:ViewModelLocator.AutoWireViewModel="True"`
|
|
- Removed `ILoggerFacade`. Use `Prism.Plugin.Logging`
|
|
|
|
## Online Tutorial
|
|
- [Prism 6 Unity - VS2015](https://www.c-sharpcorner.com/article/getting-started-mvvm-pattern-using-prism-library-in-wpf/)
|
|
|
|
## Tutorials
|
|
- [View-ViewModel](./view-viewmodel.md) |