Code Monkey home page Code Monkey logo

prism's Introduction

Prism

Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Xamarin Forms, Uno Platform and WinUI. Separate releases are available for each platform and those will be developed on independent timelines. 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, commands, EventAggregator, and others. Prism's core functionality is a shared code base supported in .NET Standard 2.0, .NET Framework 4.6 / 4.7, and .NET6.0/.NET8.0. Those things that need to be platform specific are implemented in the respective libraries for the target platform. Prism also provides great integration of these patterns with the target platform.

Licensing

The Prism Team would first and foremost like to thank all of those developers who have stepped up over the past 4 years with GitHub Sponsors. We are committed to ensuring the longevity and success of the Prism Library. As a result Prism 9.0 is now Dual License. We continue to offer a FREE Community License for the vast majority of our community, while the Commercial License will now be required by larger organizations to help fund and support the development of Prism. We additionally have the Commercial Plus License which grants access to a number of additional support libraries that build on top of Prism as well as a private Discord channel where you can ask questions and interact with the Prism Team.

Build Status

Status
Full Build Prism CI
Prism.Core build_core
Prism.Wpf build_wpf
Prism.Forms build_forms
Prism.Uno build_uno
Prism.Maui build_maui

Support

  • Documentation is maintained in the Prism-Documentation repo under /docs and can be found in a readable format on the website.
  • StackOverflow: NOTE The Prism Team no longer supports or engages with questions posted on StackOverflow. Questions posted there may or may not receive correct answers.
  • For general questions and support, post your questions in GitHub Discussions.
  • You can enter bugs and feature requests in our Issues.
  • Enterprise Support: If you are interested in Enterprise Support please email the Prism Team at [email protected]

Videos & Training

By watching our courses, not only do you help support the project financially, but you might also learn something along the way. We believe this is a win-win for everyone.

We appreciate your support.

NuGet Packages

Official Prism releases are available on NuGet. Prism packages are also available on the private Commercial Plus Feed which will be updated with each merged PR. If you want to take advantage of a new feature as soon as it's merged into the code base, or if there is a critical bug you need fixed we invite you to purchase the Commercial Plus License to take advantage of these packages.

Core Packages

These are the base packages for each platform, together with the Prism's Core assembly as a cross-platform PCL.

Platform Package NuGet Commercial Plus Feed
Cross Platform Prism.Core CoreNuGetShield CorePrismNuGetShield
Cross Platform Prism.Events EventsNuGetShield EventsPrismNuGetShield
Cross Platform Prism.Container.Abstractions ContainerAbstractionsNuGetShield ContainerAbstractionsPrismNuGetShield
Cross Platform Prism.Container.DryIoc ContainerDryIocNuGetShield ContainerDryIocPrismNuGetShield
Cross Platform Prism.Container.Unity ContainerUnityNuGetShield ContainerUnityPrismNuGetShield
WPF Prism.Wpf WpfNuGetShield WpfPrismNuGetShield
Xamarin.Forms Prism.Forms FormsNuGetShield FormsPrismNuGetShield
Uno Platform and WinUI Prism.Uno UnoNuGetShield UnoPrismNuGetShield

Container-specific packages

Each supported IoC container has its own package assisting in the setup and usage of that container together with Prism. The assembly is named using this convention: Prism.Container.Platform.dll, e.g. Prism.Unity.Wpf.dll. Starting with version 7.0, Prism is moving to separate packages for each platform. Be sure to install the package for the Container and the Platform of your choice.

WPF

Package NuGet Commercial Plus Feed
Prism.DryIoc DryIocWpfNuGetShield DryIocWpfPrismNuGetShield
Prism.Unity UnityWpfNuGetShield UnityWpfPrismNuGetShield

Xamarin Forms

Package NuGet Commercial Plus Feed
Prism.DryIoc.Forms DryIocFormsNuGetShield DryIocFormsPrismNuGetShield
Prism.Unity.Forms UnityFormsNuGetShield UnityFormsPrismNuGetShield
Prism.Forms.Regions PrismFormsRegionsNuGetShield PrismFormsRegionsPrismNuGetShield

Uno Platform

Package NuGet Commercial Plus Feed
Prism.DryIoc.Uno DryIocUnoPlatformNuGetShield DryIocUnoPlatformPrismNuGetShield

NuGet package tree

A detailed overview of each assembly per package is available here.

Samples

For stable samples be sure to check out the samples repo for the platform you are most interested in.

Contributing

We strongly encourage you to get involved and help us evolve the code base.

  • You can see what our expectations are for pull requests here.

prism's People

Contributors

brianlagunas avatar dansiegel avatar bartlannoeye avatar nuitsjp avatar briannoyes avatar jeromelaban avatar d3fkn1ght avatar ederbond avatar dvorn avatar niimima avatar adam-- avatar veccie avatar edwardblair avatar chaseflorell avatar gayak avatar wldevries avatar tomzorz avatar alesdo avatar rprouse avatar rmarinho avatar waldemarcoding avatar cointoss1973 avatar github-actions[bot] avatar calebnelton avatar wowfood avatar xp-development avatar fredrikhaglund avatar simedbn avatar mardaneus86 avatar karlfl avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.