{ "items": [ { "text": "Getting Started", "items": [ { "text": "From Startup Templates", "path": "Getting-Started.md" }, { "text": "From Empty Projects", "items": [ { "text": "With ASP.NET Core Web Application", "path": "Getting-Started-AspNetCore-Application.md" }, { "text": "With Console Application", "path": "Getting-Started-Console-Application.md" } ] } ] }, { "text": "Tutorials", "items": [ { "text": "Application Development", "items": [ { "text": "Part-1: Creating a new solution and listing items", "path": "Tutorials/Part-1.md" }, { "text": "Part-2: CRUD operations", "path": "Tutorials/Part-2.md" }, { "text": "Part-3: Integration tests", "path": "Tutorials/Part-3.md" } ] } ] }, { "text": "Guides", "items": [ { "text": "Customizing the Application Modules", "path": "Customizing-Application-Modules-Guide.md", "items": [ { "text": "Extending Entities", "path": "Customizing-Application-Modules-Extending-Entities.md" }, { "text": "Overriding Services", "path": "Customizing-Application-Modules-Overriding-Services.md" }, { "text": "Overriding the User Interface", "path": "Customizing-Application-Modules-Overriding-User-Interface.md" } ] }, { "text": "\"How to\" Guides", "path": "How-To/Index.md" }, { "text": "Migrating from the ASP.NET Boilerplate", "path": "AspNet-Boilerplate-Migration-Guide.md" } ] }, { "text": "CLI", "path": "CLI.md" }, { "text": "Fundamentals", "items": [ { "text": "Configuration", "path": "Configuration.md" }, { "text": "Options", "path": "Options.md" }, { "text": "Dependency Injection", "path": "Dependency-Injection.md", "items": [ { "text": "AutoFac Integration", "path": "Autofac-Integration.md" } ] }, { "text": "Virtual File System", "path": "Virtual-File-System.md" }, { "text": "Localization", "path": "Localization.md" }, { "text": "Exception Handling", "path": "Exception-Handling.md" }, { "text": "Validation", "path": "Validation.md", "items": [ { "text": "FluentValidation Integration", "path": "FluentValidation.md" } ] }, { "text": "Authorization", "path": "Authorization.md" }, { "text": "Caching", "path": "Caching.md" }, { "text": "Logging", "path": "Logging.md" }, { "text": "Audit Logging", "path": "Audit-Logging.md" }, { "text": "Settings", "path": "Settings.md" }, { "text": "Data Filtering", "path": "Data-Filtering.md" }, { "text": "Object Extensions", "path": "Object-Extensions.md" } ] }, { "text": "Events", "items": [ { "text": "Event Bus (local)" }, { "text": "Distributed Event Bus", "items": [ { "text": "RabbitMQ Integration" } ] } ] }, { "text": "Services", "items": [ { "text": "Current User", "path": "CurrentUser.md" }, { "text": "Object to object mapping", "path": "Object-To-Object-Mapping.md" }, { "text": "Object Serialization" }, { "text": "JSON Serialization" }, { "text": "Emailing" }, { "text": "GUIDs" }, { "text": "Threading" }, { "text": "Timing" } ] }, { "text": "Multi Tenancy", "path": "Multi-Tenancy.md" }, { "text": "Module Development", "items": [ { "text": "Basics", "path": "Module-Development-Basics.md" }, { "text": "Plug-In Modules" }, { "text": "Best Practices", "path": "Best-Practices/Index.md" } ] }, { "text": "Domain Driven Design", "items": [ { "text": "Overall", "path": "Domain-Driven-Design.md" }, { "text": "Domain Layer", "items": [ { "text": "Entities & Aggregate Roots", "path": "Entities.md" }, { "text": "Value Objects" }, { "text": "Repositories", "path": "Repositories.md" }, { "text": "Domain Services" }, { "text": "Specifications", "path": "Specifications.md" } ] }, { "text": "Application Layer", "items": [ { "text": "Application Services", "path": "Application-Services.md" }, { "text": "Data Transfer Objects" }, { "text": "Unit Of Work" } ] } ] }, { "text": "API", "items": [ { "text": "Auto API Controllers", "path": "API/Auto-API-Controllers.md" }, { "text": "Dynamic C# API Clients", "path": "API/Dynamic-CSharp-API-Clients.md" } ] }, { "text": "User Interface", "items": [ { "text": "ASP.NET Core", "items": [ { "text": "Client Side Package Management", "path": "UI/AspNetCore/Client-Side-Package-Management.md" }, { "text": "Bundling & Minification", "path": "UI/AspNetCore/Bundling-Minification.md" }, { "text": "Tag Helpers", "path": "UI/AspNetCore/Tag-Helpers/Index.md", "items": [ { "text": "Form Elements", "path": "UI/AspNetCore/Tag-Helpers/Form-elements.md" }, { "text": "Dynamic Forms", "path": "UI/AspNetCore/Tag-Helpers/Dynamic-Forms.md" } ] }, { "text": "Widgets", "path": "UI/AspNetCore/Widgets.md" }, { "text": "Theming", "path": "UI/AspNetCore/Theming.md" }, { "text": "Customize/Extend the UI", "path": "UI/AspNetCore/Customization-User-Interface.md" } ] }, { "text": "Angular", "items": [ { "text": "Service Proxies", "path": "UI/Angular/Service-Proxies.md" }, { "text": "HTTP Requests", "path": "UI/Angular/HTTP-Requests.md" }, { "text": "Localization", "path": "UI/Angular/Localization.md" }, { "text": "Permission Management", "path": "UI/Angular/Permission-Management.md" }, { "text": "Confirmation Popup", "path": "UI/Angular/Confirmation-Service.md" }, { "text": "Toast Overlay", "path": "UI/Angular/Toaster-Service.md" }, { "text": "Config State", "path": "UI/Angular/Config-State.md" }, { "text": "Modifying the Menu", "path": "UI/Angular/Modifying-the-Menu.md" }, { "text": "Component Replacement", "path": "UI/Angular/Component-Replacement.md" }, { "text": "Custom Setting Page", "path": "UI/Angular/Custom-Setting-Page.md" }, { "text": "Lazy Loading Scripts & Styles", "path": "UI/Angular/Lazy-Load-Service.md" }, { "text": "DomInsertionService", "path": "UI/Angular/Dom-Insertion-Service.md" }, { "text": "ContentProjectionService", "path": "UI/Angular/Content-Projection-Service.md" }, { "text": "TrackByService", "path": "UI/Angular/Track-By-Service.md" } ] }, { "text": "Common", "items": [ { "text": "Utilities", "items": [ { "text": "Linked List (Doubly)", "path": "UI/Common/Utils/Linked-List.md" } ] } ] } ] }, { "text": "Data Access", "items": [ { "text": "Overall", "path": "Data-Access.md" }, { "text": "Connection Strings", "path": "Connection-Strings.md" }, { "text": "Database Providers", "items": [ { "text": "Entity Framework Core", "path": "Entity-Framework-Core.md", "items": [ { "text": "Database Migrations", "path": "Entity-Framework-Core-Migrations.md" }, { "text": "Switch DBMS", "path": "Entity-Framework-Core-Other-DBMS.md", "items": [ { "text": "To MySQL", "path": "Entity-Framework-Core-MySQL.md" }, { "text": "To PostgreSQL", "path": "Entity-Framework-Core-PostgreSQL.md" }, { "text": "To SQLite", "path": "Entity-Framework-Core-SQLite.md" } ] } ] }, { "text": "MongoDB", "path": "MongoDB.md" }, { "text": "Dapper", "path": "Dapper.md" } ] } ] }, { "text": "Background", "items": [ { "text": "Background Jobs", "path": "Background-Jobs.md", "items": [ { "text": "Hangfire Integration", "path": "Background-Jobs-Hangfire.md" }, { "text": "RabbitMQ Integration", "path": "Background-Jobs-RabbitMq.md" }, { "text": "Quartz Integration", "path": "Background-Jobs-Quartz.md" } ] }, { "text": "Background Workers", "path": "Background-Workers.md", "items": [ { "text": "Quartz Integration", "path": "Background-Workers-Quartz.md" } ] } ] }, { "text": "Startup Templates", "items": [ { "text": "Overall", "path": "Startup-Templates/Index.md" }, { "text": "Application", "path": "Startup-Templates/Application.md" }, { "text": "Module", "path": "Startup-Templates/Module.md" } ] }, { "text": "Samples", "items": [ { "text": "Microservice Demo", "path": "Samples/Microservice-Demo.md" } ] }, { "text": "Application Modules", "path": "Modules/Index.md" }, { "text": "Microservice Architecture", "path": "Microservice-Architecture.md" }, { "text": "Testing" }, { "text": "Nightly Builds", "path": "Nightly-Builds.md" }, { "text": "Contribution Guide", "path": "Contribution/Index.md" } ] }