Orchard Core training guidelines
The following guidelines serve as a base for Orchard Core trainings and you're welcome to hold your own Orchard Core training using these guidelines.
For methodologies for various forms of Orchard training see training methodologies.
Prerequisite knowledge of participants
During courses we routinely touch on various technologies and paradigms used by Orchard. The knowledge of these is thus an advantage though not a necessity, and participants will also have a chance to learn about them in practice. Here are some keywords of some technologies and paradigms used in Orchard Core:
- Fundamentals: Advanced C#, ASP.NET Core MVC.
- Patterns and paradigms: Dependency injection, loose coupling, document database and SQL, composition over inheritance, single responsibility principle, separation of concerns, modular programming, multi-tenancy.
- Server-side technologies: Json.NET, Razor syntax and Liquid templates, NuGet packages, GraphQL and RESTful APIs.
- Client-side technologies: Bootstrap, jQuery, Sass, NPM packages, HTML 5.
Overall what we think is roughly what participants should already know about:
- Mandatory: basic usage of Visual Studio, basic knowledge of C#, basic knowledge of client-side web development (HTML, CSS, JS), previous experience in building .NET (web) apps.
- Strongly advised: basic understanding of Git or some other source control system, ASP.NET Core MVC, and strong knowledge of C#.
- Advised: understanding inversion of control containers and dependency injection, usage of the Razor syntax for HTML templates.
The following tools are needed for an Orchard training:
- Lab computers or participants' computers:
- Software listed under "Software to install" in "Development environment advice".
- Administrative account to install other components if necessary and to avoid permission issues when running Orchard
- Trainer's PC having all of the above and connected to a projector for demonstrations
- A whiteboard or something similar
The topics are each divided into individual modules. These modules can, but don't necessarily have dependency on each other.
When conducting a training even before these start with an introduction of yourself, then of the participants to get a general feeling of where everybody is coming from, and what would be interesting for them. Note that the indicated time requirements are more like guidelines on the minimal recommended time. Allocate sufficient time above this for discussions, and in the case of multi-day trainings, for recaps at the beginning of each day.
This page is part of the Orchard Dojo Library!
This page and many others here are part of the open-source, portable package of Orchard Core goodies: the Orchard Dojo Library for Orchard Core. The Library is freely accessible by anyone; just go to its repository to download its full content (you can even download the textual content of the Library as a big concatenated document in HTML), file issues or fork it! You can even edit it online on Bitbucket, just click on the Edit link in the upper right corner!
Note that the Library also has an Orchard 1.x version, check it out here!