Quino is built out of many, focused components. This documentation will sometimes refer to them as "services" and/or "settings"; they're also called "hooks" or "extension points" in other frameworks.
This approach makes it easy to precisely customize and configure your product. However, this flexibility comes at the cost of immediate intuitiveness.
Instead of a handful of all-encompassing top-level objects to learn (e.g. the
IApplication in Quino 1.x), there are dozens of components. Many of these components are documented, but not all. Instead, developers can use a few simple tricks to discover which components to customize.
If you can navigate and read code, you can easily find what you're looking for. See the section on analyzing code for an example.
Quino uses several patterns and practices throughout the design of the API and implementation. These are described in the sections below.
- Application, IOC and Startup: Structure of an application
- Providers: Configuring and using lists of singleton services
- Settings: Configuring and using typed, global settings
- Tools & Toolboxes: Granular overrides and holistic injection
- Task-specific Interfaces: Granular injection to allow granular overrides
- Interfaces, base classes and virtual methods: A discussion of how and when to use base classes and virtual methods in services
- Registering Singletons: Avoiding problems with singletons
- Analyzing code to learn about Quino: A step-by-step guide using log-configuration
- Mini Singletons: A convenicence pattern for defining standalone singletons while linking them to the application IOC