Search code examples
c#wpfmvvmcatelorchestra

Getting started with WPF & Orchestra


I'm working on creating my first WPF application, whereas I have only used WinForms in the past. I've familiarized myself with the basics of MVVM, but certainly need practice to get a deeper understanding.

It seems like the Orchestra Shell written on top of Catel is a good way to start a new application as it has many built-in features including an MVVM framework.

The WPF application I'm interested in developing is a utility to help with administration (viewing logs, checking service status, etc) of a specific enterprise application and would include:

  • Fluent Ribbon
  • Avalon Docking
  • Ability for other developers to write plugins

As a WPF/MVVM novice, I'm having difficulty understanding the best way to get going with Orchestra, and it seems as though the getting started guide included in the docs folder on github is a bit outdated.

The examples provided as well as the LogViewer application are great, but I could really use some pointers with getting started. Does anyone know of an up-to-date getting started document for Orchestra, or would anyone be willing to provide some high-level steps?

Here are my preliminary thoughts on the steps required, but I'm not sure if this is the right approach:

  1. Create a blank WPF project
  2. Install Orchestra FluentRibbon using NuGet
  3. Create a main view that contains the fluent ribbon
  4. Create Prism Modules? for each component to be added to the application

    Example of components (Prism Modules?):

    • Connect/disconnect to application server
    • Load/show plugins

Any help/guidance would be appreciated -- perhaps starting w/ Orchestra is just not a good idea for a WPF/MVVM novice like me?

Thanks in advance!


Solution

  • The best way to start is to take a look at the examples that are included in the Orchestra repository. For example, the Fluent Ribbon examples gives you an idea how to implement the ShellService.

    After that, if you are looking for modularity with Catel and Prism, I recommend that you take a look at the Catel examples repository.

    If you have more direct questions, feel free to chat with the team of any of the components using gitter.