Often when learning a technology you start by searching the web. You look for videos, blogs, articles, samples, and examples. What you start to realize is that everything you find is very simple “demo” code. That’s code that shows how to implement a simple feature in a non-realistic demo. Then you start looking for “production” code examples. That’s code that represents a more realistic implementation of an application in a production environment. This type of resource is very difficult to find. Why? Mainly, because it is very time consuming to create such examples.
This scenario is no different when trying to learn Prism. You probably first start by reading though the documentation. Next, you head on over to Pluralsight and watch my Introduction to Prism course. Now that you know all the basics you start searching the web for examples for specific scenarios. How do I do “x” and “y”? How do I apply this sample code to my application? Hopefully I can help you answer those questions.
I am starting a new video series called Building IG Outlook. I will take you step-by-step on building a Prism application that mimics Microsoft Outlook. We will be discussing the following key areas in no specific order:
- Application architecture/structure
- Multi-platform support (WPF and Silverlight)
- Commanding
- Event aggregation
- Custom RegionAdapters
- Custom RegionBehaviors
- Navigation (OutlookBar, Ribbon, and View interaction)
- MVVM (no frameworks needed)
Like most production applications we will have a dependency on a 3rd party toolset. I will be using Infragistics NetAdvantage for WPF and Silverlight. If you don’t own Infragistics you can download the trial or purchase the suite so you can compile and run all the sample code. Otherwise, you will have to modify the code to work with your vendor of choice.
I hope this series will help you gain a better understanding of how you can use the various aspects of Prism to build your applications. This will be a long series and I plan to record at least one a week depending on my traveling schedule. If you have any questions or would like to see something specific be sure to let me know, and I will see if I can squeeze an example in the application.