{ "items": [ { "text": "Get Started", "items": [ { "text": "Overview", "path": "get-started", "isIndex": true }, { "text": "Single Layer Web Application", "path": "get-started/single-layer-web-application.md" }, { "text": "Layered Web Application", "path": "get-started/layered-web-application.md" }, { "text": "Microservice Solution", "path": "get-started/microservice.md" }, { "text": "Others", "items": [ { "text": "Empty ASP.NET Core Application", "path": "get-started/empty-aspnet-core-application.md" }, { "text": "MAUI Application", "path": "get-started/maui.md" }, { "text": "WPF Application", "path": "get-started/wpf.md" }, { "text": "Console Application", "path": "get-started/console.md" } ] }, { "text": "Pre-Requirements", "path": "get-started/pre-requirements.md" } ] }, { "text": "Tutorials", "items": [ { "text": "Overview", "path": "tutorials", "isIndex": true }, { "text": "TODO Application", "isLazyExpandable": true, "path": "tutorials/todo", "items": [ { "text": "Overview", "path": "tutorials/todo", "isIndex": true }, { "text": "Single-Layer Solution", "path": "tutorials/todo/single-layer" }, { "text": "Layered Solution", "path": "tutorials/todo/layered" } ] }, { "text": "Book Store Application", "isLazyExpandable": true, "path": "tutorials/book-store", "items": [ { "text": "Overview", "path": "tutorials/book-store", "isIndex": true, "isInSeries": true }, { "text": "1: Creating the Server Side", "path": "tutorials/book-store/part-01.md", "isInSeries": true }, { "text": "2: The Book List Page", "path": "tutorials/book-store/part-02.md", "isInSeries": true }, { "text": "3: Creating, Updating and Deleting Books", "path": "tutorials/book-store/part-03.md", "isInSeries": true }, { "text": "4: Integration Tests", "path": "tutorials/book-store/part-04.md", "isInSeries": true }, { "text": "5: Authorization", "path": "tutorials/book-store/part-05.md", "isInSeries": true }, { "text": "6: Authors: Domain Layer", "path": "tutorials/book-store/part-06.md", "isInSeries": true }, { "text": "7: Authors: Database Integration", "path": "tutorials/book-store/part-07.md", "isInSeries": true }, { "text": "8: Authors: Application Layer", "path": "tutorials/book-store/part-08.md", "isInSeries": true }, { "text": "9: Authors: User Interface", "path": "tutorials/book-store/part-09.md", "isInSeries": true }, { "text": "10: Book to Author Relation", "path": "tutorials/book-store/part-10.md", "isInSeries": true } ] }, { "text": "Book Store Application (with ABP Suite)", "isLazyExpandable": true, "path": "tutorials/book-store-with-abp-suite", "items": [ { "text": "Overview", "path": "tutorials/book-store-with-abp-suite", "isIndex": true, "isInSeries": true }, { "text": "1: Creating the Solution", "path": "tutorials/book-store-with-abp-suite/part-01.md", "isInSeries": true }, { "text": "2: Creating the Books", "path": "tutorials/book-store-with-abp-suite/part-02.md", "isInSeries": true }, { "text": "3: Creating the Authors", "path": "tutorials/book-store-with-abp-suite/part-03.md", "isInSeries": true }, { "text": "4: Book to Author Relation", "path": "tutorials/book-store-with-abp-suite/part-04.md", "isInSeries": true }, { "text": "5: Customizing the Generated Code", "path": "tutorials/book-store-with-abp-suite/part-05.md", "isInSeries": true } ] }, { "text": "Modular Monolith Application", "isLazyExpandable": true, "path": "tutorials/modular-crm", "items": [ { "text": "Overview", "path": "tutorials/modular-crm", "isIndex": true }, { "text": "1: Creating the Initial Solution", "path": "tutorials/modular-crm/part-01.md" }, { "text": "2: Setting Up the Catalog Module", "path": "tutorials/modular-crm/part-02.md" }, { "text": "3: Building the Catalog Module", "path": "tutorials/modular-crm/part-03.md" }, { "text": "4: Creating the Initial Ordering Module", "path": "tutorials/modular-crm/part-04.md" }, { "text": "5: Building the Ordering Module", "path": "tutorials/modular-crm/part-05.md" }, { "text": "6: Integrating the Modules: Implementing Integration Services", "path": "tutorials/modular-crm/part-06.md" }, { "text": "7: Integrating the Modules: Communication via Messages (Events)", "path": "tutorials/modular-crm/part-07.md" }, { "text": "8: Integrating the Modules: Joining the Products and Orders Data", "path": "tutorials/modular-crm/part-08.md" } ] }, { "text": "Microservice Solution", "isLazyExpandable": true, "path": "tutorials/microservice", "items": [ { "text": "Overview", "path": "tutorials/microservice", "isIndex": true }, { "text": "1: Creating the initial solution", "path": "tutorials/microservice/part-01.md" }, { "text": "2: Creating the initial Catalog service", "path": "tutorials/microservice/part-02.md" }, { "text": "3: Building the Catalog service", "path": "tutorials/microservice/part-03.md" }, { "text": "4: Creating the initial Ordering service", "path": "tutorials/microservice/part-04.md" }, { "text": "5: Building the Ordering service", "path": "tutorials/microservice/part-05.md" }, { "text": "6: Integrating the services: HTTP API Calls", "path": "tutorials/microservice/part-06.md" }, { "text": "7: Integrating the services: Using Distributed Events", "path": "tutorials/microservice/part-07.md" } ] }, { "text": "Mobile Application Development", "isLazyExpandable": true, "path": "tutorials/mobile", "items": [ { "text": "Overview", "path": "tutorials/mobile" }, { "text": "MAUI", "path": "tutorials/mobile/maui" }, { "text": "React Native", "path": "tutorials/mobile/react-native" } ] }, { "text": "Community Articles", "path": "https://abp.io/community" } ] }, { "text": "Tools", "items": [ { "text": "Overview", "path": "tools.md", "isIndex": true }, { "text": "ABP CLI", "items": [ { "text": "Overview", "path": "cli", "isIndex": true }, { "text": "New Solution Sample Commands", "path": "cli/new-command-samples.md" } ] }, { "text": "ABP Studio", "items": [ { "text": "Overview", "path": "studio", "isIndex": true }, { "text": "Installation", "path": "studio/installation.md" }, { "text": "Fundamentals", "items": [ { "text": "Overview", "path": "studio/overview.md", "isIndex": true }, { "text": "Solution Explorer", "path": "studio/solution-explorer.md" }, { "text": "Running Applications", "path": "studio/running-applications.md" }, { "text": "Monitoring Applications", "path": "studio/monitoring-applications.md" }, { "text": "Working with Kubernetes", "path": "studio/kubernetes.md" }, { "text": "Working with ABP Suite", "path": "studio/working-with-suite.md" } ] }, { "text": "Concepts", "path": "studio/concepts.md" }, { "text": "Version Mapping", "path": "studio/version-mapping.md" }, { "text": "Release Notes", "path": "studio/release-notes.md" } ] }, { "text": "ABP Suite", "items": [ { "text": "Overview", "path": "suite", "isIndex": true }, { "text": "How to Install", "path": "suite/how-to-install.md" }, { "text": "How to Start", "path": "suite/how-to-start.md" }, { "text": "Adding Existing ABP Solution", "path": "suite/add-solution.md" }, { "text": "Creating New ABP Solution", "path": "suite/create-solution.md" }, { "text": "Generating CRUD Page", "items": [ { "text": "Overview", "path": "suite/generating-crud-page.md", "isIndex": true }, { "text": "Creating Many-To-Many Relationship", "path": "suite/creating-many-to-many-relationship.md" }, { "text": "Generating From an Existing Database", "path": "suite/generating-entities-from-an-existing-database-table.md" }, { "text": "Creating Master Detail Relationship", "path": "suite/creating-master-detail-relationship.md" } ] }, { "text": "Customizing the Generated Code", "path": "suite/customizing-the-generated-code.md" }, { "text": "Accessing Source Code of Modules", "path": "suite/source-code.md" }, { "text": "Updating Packages", "path": "suite/updating-packages.md" }, { "text": "Configuration", "path": "suite/configuration.md" }, { "text": "Editing Templates", "path": "suite/editing-templates.md" }, { "text": "How to Uninstall", "path": "suite/how-to-uninstall.md" } ] } ] }, { "text": "Framework", "items": [ { "text": "Fundamentals", "items": [ { "text": "Overview", "path": "framework/fundamentals", "isIndex": true }, { "text": "Application Startup", "path": "framework/fundamentals/application-startup.md" }, { "text": "Authorization", "items": [ { "text": "Overview", "path": "framework/fundamentals/authorization.md", "isIndex": true }, { "text": "Dynamic Claims", "path": "framework/fundamentals/dynamic-claims.md" } ] }, { "text": "Distributed Caching", "items": [ { "text": "Overview", "path": "framework/fundamentals/caching.md", "isIndex": true }, { "text": "Redis Cache", "path": "framework/fundamentals/redis-cache.md" } ] }, { "text": "Configuration", "path": "framework/fundamentals/configuration.md" }, { "text": "Connection Strings", "path": "framework/fundamentals/connection-strings.md" }, { "text": "Dependency Injection", "items": [ { "text": "Overview", "path": "framework/fundamentals/dependency-injection.md", "isIndex": true }, { "text": "AutoFac Integration", "path": "framework/fundamentals/autofac-integration.md" } ] }, { "text": "Exception Handling", "path": "framework/fundamentals/exception-handling.md", "keywords": ["Error"] }, { "text": "Localization", "path": "framework/fundamentals/localization.md" }, { "text": "Logging", "path": "framework/fundamentals/logging.md" }, { "text": "Object Extensions", "path": "framework/fundamentals/object-extensions.md" }, { "text": "Options", "path": "framework/fundamentals/options.md" }, { "text": "Validation", "items": [ { "text": "Overview", "path": "framework/fundamentals/validation.md", "isIndex": true }, { "text": "FluentValidation Integration", "path": "framework/fundamentals/fluent-validation.md" } ] } ] }, { "text": "Infrastructure", "items": [ { "text": "Overview", "path": "framework/infrastructure", "isIndex": true }, { "text": "Audit Logging", "path": "framework/infrastructure/audit-logging.md" }, { "text": "Background Jobs", "items": [ { "text": "Overview", "path": "framework/infrastructure/background-jobs", "isIndex": true }, { "text": "Hangfire Integration", "path": "framework/infrastructure/background-jobs/hangfire.md" }, { "text": "RabbitMQ Integration", "path": "framework/infrastructure/background-jobs/rabbitmq.md" }, { "text": "Quartz Integration", "path": "framework/infrastructure/background-jobs/quartz.md" } ] }, { "text": "Background Workers", "items": [ { "text": "Overview", "path": "framework/infrastructure/background-workers", "isIndex": true }, { "text": "Quartz Integration", "path": "framework/infrastructure/background-workers/quartz.md" }, { "text": "Hangfire Integration", "path": "framework/infrastructure/background-workers/hangfire.md" } ] }, { "text": "BLOB Storing", "items": [ { "text": "Overview", "path": "framework/infrastructure/blob-storing", "isIndex": true }, { "text": "Storage Providers", "items": [ { "text": "File System Provider", "path": "framework/infrastructure/blob-storing/file-system.md" }, { "text": "Database Provider", "path": "framework/infrastructure/blob-storing/database.md" }, { "text": "Azure Provider", "path": "framework/infrastructure/blob-storing/azure.md" }, { "text": "Aliyun Provider", "path": "framework/infrastructure/blob-storing/aliyun.md" }, { "text": "Minio Provider", "path": "framework/infrastructure/blob-storing/minio.md" }, { "text": "AWS Provider", "path": "framework/infrastructure/blob-storing/aws.md" }, { "text": "Google Cloud Storage Provider", "path": "framework/infrastructure/blob-storing/google.md" }, { "text": "Bunny.Net Provider", "path": "framework/infrastructure/blob-storing/bunny.md" }, { "text": "Create a Custom Provider", "path": "framework/infrastructure/blob-storing/custom-provider.md" } ] } ] }, { "text": "Cancellation Token Provider", "path": "framework/infrastructure/cancellation-token-provider.md" }, { "text": "CSRF/XSRF & Anti Forgery", "path": "framework/infrastructure/csrf-anti-forgery.md" }, { "text": "Concurrency Check", "path": "framework/infrastructure/concurrency-check.md" }, { "text": "Current User", "path": "framework/infrastructure/current-user.md" }, { "text": "Data Filtering", "path": "framework/infrastructure/data-filtering.md" }, { "text": "Data Seeding", "path": "framework/infrastructure/data-seeding.md" }, { "text": "Distributed Locking", "path": "framework/infrastructure/distributed-locking.md" }, { "text": "Email Sending", "items": [ { "text": "Overview", "path": "framework/infrastructure/emailing.md", "isIndex": true }, { "text": "MailKit Integration", "path": "framework/infrastructure/mail-kit.md" } ] }, { "text": "Entity Cache", "path": "framework/infrastructure/entity-cache.md" }, { "text": "Event Bus", "items": [ { "text": "Overview", "path": "framework/infrastructure/event-bus", "isIndex": true }, { "text": "Local Event Bus", "path": "framework/infrastructure/event-bus/local" }, { "text": "Distributed Event Bus", "items": [ { "text": "Overview", "path": "framework/infrastructure/event-bus/distributed", "isIndex": true }, { "text": "Azure Service Bus Integration", "path": "framework/infrastructure/event-bus/distributed/azure.md" }, { "text": "RabbitMQ Integration", "path": "framework/infrastructure/event-bus/distributed/rabbitmq.md" }, { "text": "Kafka Integration", "path": "framework/infrastructure/event-bus/distributed/kafka.md" }, { "text": "Rebus Integration", "path": "framework/infrastructure/event-bus/distributed/rebus.md" } ] } ] }, { "text": "Features", "path": "framework/infrastructure/features.md" }, { "text": "Global Features", "path": "framework/infrastructure/global-features.md" }, { "text": "GUID Generation", "path": "framework/infrastructure/guid-generation.md" }, { "text": "Image Manipulation", "path": "framework/infrastructure/image-manipulation.md" }, { "text": "JSON", "path": "framework/infrastructure/json.md" }, { "text": "Object to Object Mapping", "path": "framework/infrastructure/object-to-object-mapping.md" }, { "text": "Settings", "path": "framework/infrastructure/settings.md" }, { "text": "Simple State Checker", "path": "framework/infrastructure/simple-state-checker.md" }, { "text": "SMS Sending", "path": "framework/infrastructure/sms-sending.md" }, { "text": "String Encryption", "path": "framework/infrastructure/string-encryption.md" }, { "text": "Text Templating", "items": [ { "text": "Overview", "path": "framework/infrastructure/text-templating", "isIndex": true }, { "text": "Razor Integration", "path": "framework/infrastructure/text-templating/razor.md" }, { "text": "Scriban Integration", "path": "framework/infrastructure/text-templating/scriban.md" } ] }, { "text": "Timing", "path": "framework/infrastructure/timing.md" }, { "text": "Virtual File System", "path": "framework/infrastructure/virtual-file-system.md" } ] }, { "text": "Architecture", "items": [ { "text": "Overview", "path": "framework/architecture", "isIndex": true }, { "text": "Modularity", "items": [ { "text": "Overview", "path": "framework/architecture/modularity/basics.md", "isIndex": true }, { "text": "Plug-In Modules", "path": "framework/architecture/modularity/plugin-modules.md" }, { "text": "Customizing/Extending Modules", "items": [ { "text": "Overview", "path": "framework/architecture/modularity/extending/customizing-application-modules-guide.md", "isIndex": true }, { "text": "Module Entity Extension System", "path": "framework/architecture/modularity/extending/module-entity-extensions.md" }, { "text": "Customizing/Extending Entities", "path": "framework/architecture/modularity/extending/customizing-application-modules-extending-entities.md" }, { "text": "Customizing/Overriding Services", "path": "framework/architecture/modularity/extending/customizing-application-modules-overriding-services.md" } ] } ] }, { "text": "Domain Driven Design", "items": [ { "text": "Overview", "path": "framework/architecture/domain-driven-design", "isIndex": true }, { "text": "Domain Layer", "items": [ { "text": "Overview", "path": "framework/architecture/domain-driven-design/domain-layer.md", "isIndex": true }, { "text": "Entities & Aggregate Roots", "path": "framework/architecture/domain-driven-design/entities.md" }, { "text": "Value Objects", "path": "framework/architecture/domain-driven-design/value-objects.md" }, { "text": "Repositories", "path": "framework/architecture/domain-driven-design/repositories.md" }, { "text": "Domain Services", "path": "framework/architecture/domain-driven-design/domain-services.md" }, { "text": "Specifications", "path": "framework/architecture/domain-driven-design/specifications.md" } ] }, { "text": "Application Layer", "items": [ { "text": "Overview", "path": "framework/architecture/domain-driven-design/application-layer.md", "isIndex": true }, { "text": "Application Services", "path": "framework/architecture/domain-driven-design/application-services.md" }, { "text": "Data Transfer Objects", "path": "framework/architecture/domain-driven-design/data-transfer-objects.md" }, { "text": "Unit Of Work", "path": "framework/architecture/domain-driven-design/unit-of-work.md" } ] }, { "text": "E-Book: Implementing DDD", "path": "https://abp.io/books/implementing-domain-driven-design" } ] }, { "text": "Multi Tenancy", "path": "framework/architecture/multi-tenancy" }, { "text": "Microservices", "path": "framework/architecture/microservices" }, { "text": "Module Development Best Practices", "items": [ { "text": "Overview", "path": "framework/architecture/best-practices", "isIndex": true }, { "text": "Module Architecture", "path": "framework/architecture/best-practices/module-architecture.md" }, { "text": "Domain Layer", "items": [ { "text": "Overview", "path": "framework/architecture/best-practices/domain-layer-overview.md", "isIndex": true }, { "text": "Entities", "path": "framework/architecture/best-practices/entities.md" }, { "text": "Repositories", "path": "framework/architecture/best-practices/repositories.md" }, { "text": "Domain Services", "path": "framework/architecture/best-practices/domain-services.md" } ] }, { "text": "Application Layer", "items": [ { "text": "Overview", "path": "framework/architecture/best-practices/application-layer-overview.md", "isIndex": true }, { "text": "Application Services", "path": "framework/architecture/best-practices/application-services.md" }, { "text": "Data Transfer Objects", "path": "framework/architecture/best-practices/data-transfer-objects.md" } ] }, { "text": "Data Access", "items": [ { "text": "Overview", "path": "framework/architecture/best-practices/data-access-overview.md", "isIndex": true }, { "text": "Entity Framework Core Integration", "path": "framework/architecture/best-practices/entity-framework-core-integration.md" }, { "text": "MongoDB Integration", "path": "framework/architecture/best-practices/mongodb-integration.md" } ] } ] }, ] }, { "text": "API Development", "items": [ { "text": "Overview", "path": "framework/api-development", "isIndex": true }, { "text": "ABP Endpoints", "items": [ { "text": "Overview", "path": "framework/api-development/standard-apis", "isIndex": true }, { "text": "Application Configuration", "path": "framework/api-development/standard-apis/configuration.md" }, { "text": "Application Localization", "path": "framework/api-development/standard-apis/localization.md" } ] }, { "text": "API Versioning", "path": "framework/api-development/versioning.md" }, { "text": "Auto API Controllers", "path": "framework/api-development/auto-controllers.md" }, { "text": "Dynamic C# API Clients", "path": "framework/api-development/dynamic-csharp-clients.md" }, { "text": "Integration Services", "path": "framework/api-development/integration-services.md" }, { "text": "Static C# API Clients", "path": "framework/api-development/static-csharp-clients.md" }, { "text": "Swagger Integration", "path": "framework/api-development/swagger.md" } ] }, { "text": "User Interface", "items": [ { "text": "Overview", "path": "framework/ui", "isIndex": true }, { "text": "MVC / Razor Pages", "items": [ { "text": "Overview", "path": "framework/ui/mvc-razor-pages/overall.md", "isIndex": true }, { "text": "Navigation / Menus", "path": "framework/ui/mvc-razor-pages/navigation-menu.md" }, { "text": "Forms & Validation", "path": "framework/ui/mvc-razor-pages/forms-validation.md" }, { "text": "Modals", "path": "framework/ui/mvc-razor-pages/modals.md" }, { "text": "Data Tables", "path": "framework/ui/mvc-razor-pages/data-tables.md" }, { "text": "Auto-Complete Select", "path": "framework/ui/mvc-razor-pages/auto-complete-select.md" }, { "text": "Page Alerts", "path": "framework/ui/mvc-razor-pages/page-alerts.md" }, { "text": "Dynamic JavaScript API Client Proxies", "path": "framework/ui/mvc-razor-pages/dynamic-javascript-proxies.md" }, { "text": "Static JavaScript API Client Proxies", "path": "framework/ui/mvc-razor-pages/static-javascript-proxies.md" }, { "text": "Client Side Package Management", "path": "framework/ui/mvc-razor-pages/client-side-package-management.md" }, { "text": "Bundling & Minification", "path": "framework/ui/mvc-razor-pages/bundling-minification.md" }, { "text": "Tag Helpers", "items": [ { "text": "Overview", "path": "framework/ui/mvc-razor-pages/tag-helpers", "isIndex": true }, { "text": "Components", "items": [ { "text": "Alerts", "path": "framework/ui/mvc-razor-pages/tag-helpers/alerts.md" }, { "text": "Badges", "path": "framework/ui/mvc-razor-pages/tag-helpers/badges.md" }, { "text": "Blockquote", "path": "framework/ui/mvc-razor-pages/tag-helpers/blockquote.md" }, { "text": "Borders", "path": "framework/ui/mvc-razor-pages/tag-helpers/borders.md" }, { "text": "Breadcrumbs", "path": "framework/ui/mvc-razor-pages/tag-helpers/breadcrumbs.md" }, { "text": "Button Groups", "path": "framework/ui/mvc-razor-pages/tag-helpers/button-groups.md" }, { "text": "Buttons", "path": "framework/ui/mvc-razor-pages/tag-helpers/buttons.md" }, { "text": "Cards", "path": "framework/ui/mvc-razor-pages/tag-helpers/cards.md" }, { "text": "Carousel", "path": "framework/ui/mvc-razor-pages/tag-helpers/carousel.md" }, { "text": "Collapse", "path": "framework/ui/mvc-razor-pages/tag-helpers/collapse.md" }, { "text": "Dropdowns", "path": "framework/ui/mvc-razor-pages/tag-helpers/dropdowns.md" }, { "text": "Figure", "path": "framework/ui/mvc-razor-pages/tag-helpers/figure.md" }, { "text": "Grids", "path": "framework/ui/mvc-razor-pages/tag-helpers/grids.md" }, { "text": "List Groups", "path": "framework/ui/mvc-razor-pages/tag-helpers/list-groups.md" }, { "text": "Modals", "path": "framework/ui/mvc-razor-pages/tag-helpers/modals.md" }, { "text": "Navs", "path": "framework/ui/mvc-razor-pages/tag-helpers/navs.md" }, { "text": "Paginator", "path": "framework/ui/mvc-razor-pages/tag-helpers/paginator.md" }, { "text": "Popovers", "path": "framework/ui/mvc-razor-pages/tag-helpers/popovers.md" }, { "text": "Progress Bars", "path": "framework/ui/mvc-razor-pages/tag-helpers/progress-bars.md" }, { "text": "Tables", "path": "framework/ui/mvc-razor-pages/tag-helpers/tables.md" }, { "text": "Tabs", "path": "framework/ui/mvc-razor-pages/tag-helpers/tabs.md" }, { "text": "Tooltips", "path": "framework/ui/mvc-razor-pages/tag-helpers/tooltips.md" } ] }, { "text": "Form Elements", "path": "framework/ui/mvc-razor-pages/tag-helpers/form-elements.md" }, { "text": "Dynamic Forms", "path": "framework/ui/mvc-razor-pages/tag-helpers/dynamic-forms.md" } ] }, { "text": "Widgets", "path": "framework/ui/mvc-razor-pages/widgets.md" }, { "text": "Toolbars", "path": "framework/ui/mvc-razor-pages/toolbars.md" }, { "text": "Page Header", "path": "framework/ui/mvc-razor-pages/page-header.md" }, { "text": "Branding", "path": "framework/ui/mvc-razor-pages/branding.md" }, { "text": "Layout Hooks", "path": "framework/ui/mvc-razor-pages/layout-hooks.md" }, { "text": "Testing", "path": "framework/ui/mvc-razor-pages/testing.md" }, { "text": "Theming", "items": [ { "text": "Overview", "path": "framework/ui/mvc-razor-pages/theming.md", "isIndex": true }, { "text": "The Basic Theme", "path": "framework/ui/mvc-razor-pages/basic-theme.md" }, { "text": "LeptonX Lite", "path": "ui-themes/lepton-x-lite/mvc.md" }, { "text": "LeptonX", "path": "ui-themes/lepton-x/mvc.md" } ] }, { "text": "JavaScript API", "items": [ { "text": "Overview", "path": "framework/ui/mvc-razor-pages/javascript-api", "isIndex": true }, { "text": "Localization", "path": "framework/ui/mvc-razor-pages/javascript-api/localization.md" }, { "text": "Auth", "path": "framework/ui/mvc-razor-pages/javascript-api/auth.md" }, { "text": "Current User", "path": "framework/ui/mvc-razor-pages/javascript-api/current-user.md" }, { "text": "Settings", "path": "framework/ui/mvc-razor-pages/javascript-api/settings.md" }, { "text": "Features", "path": "framework/ui/mvc-razor-pages/javascript-api/features.md" }, { "text": "AJAX", "path": "framework/ui/mvc-razor-pages/javascript-api/ajax.md" }, { "text": "Message", "path": "framework/ui/mvc-razor-pages/javascript-api/message.md" }, { "text": "Notify", "path": "framework/ui/mvc-razor-pages/javascript-api/notify.md" }, { "text": "Block/Busy", "path": "framework/ui/mvc-razor-pages/javascript-api/block-busy.md" }, { "text": "Events", "path": "framework/ui/mvc-razor-pages/javascript-api/events.md" }, { "text": "DOM", "path": "framework/ui/mvc-razor-pages/javascript-api/dom.md" }, { "text": "Logging", "path": "framework/ui/mvc-razor-pages/javascript-api/logging.md" }, { "text": "Resource Loader", "path": "framework/ui/mvc-razor-pages/javascript-api/resource-loader.md" } ] }, { "text": "Customize/Extend the UI", "items": [ { "text": "Overview", "path": "framework/ui/mvc-razor-pages/customization-user-interface.md", "isIndex": true }, { "text": "Entity Action Extensions", "path": "framework/ui/mvc-razor-pages/entity-action-extensions.md" }, { "text": "Data Table Column Extensions", "path": "framework/ui/mvc-razor-pages/data-table-column-extensions.md" }, { "text": "Page Toolbar Extensions", "path": "framework/ui/mvc-razor-pages/page-toolbar-extensions.md" } ] }, { "text": "Security", "items": [ { "text": "Security Headers", "path": "framework/ui/mvc-razor-pages/security-headers.md" } ] } ] }, { "text": "Blazor", "items": [ { "text": "Overview", "path": "framework/ui/blazor/overall.md", "isIndex": true }, { "text": "Navigation / Menu", "path": "framework/ui/blazor/navigation-menu.md" }, { "text": "Forms & Validation", "path": "framework/ui/blazor/forms-validation.md" }, { "text": "Localization", "path": "framework/ui/blazor/localization.md" }, { "text": "Theming", "items": [ { "text": "Overview", "path": "framework/ui/blazor/theming.md", "isIndex": true }, { "text": "The Basic Theme", "path": "framework/ui/blazor/basic-theme.md" }, { "text": "LeptonX Lite", "path": "ui-themes/lepton-x-lite/blazor.md" }, { "text": "LeptonX", "path": "ui-themes/lepton-x/blazor.md" }, { "text": "Branding", "path": "framework/ui/blazor/branding.md" }, { "text": "Page Header", "path": "framework/ui/blazor/page-header.md" }, { "text": "Page Layout", "path": "framework/ui/blazor/page-layout.md" }, { "text": "Toolbars", "path": "framework/ui/blazor/toolbars.md" } ] }, { "text": "Security", "items": [ { "text": "Authentication", "path": "framework/ui/blazor/authentication.md" }, { "text": "Authorization", "path": "framework/ui/blazor/authorization.md" } ] }, { "text": "Services", "items": [ { "text": "Current User", "path": "framework/ui/blazor/current-user.md" }, { "text": "Current Tenant", "path": "framework/ui/blazor/current-tenant.md" }, { "text": "Notification", "path": "framework/ui/blazor/notification.md" }, { "text": "Message", "path": "framework/ui/blazor/message.md" }, { "text": "Page Alerts", "path": "framework/ui/blazor/page-alerts.md" }, { "text": "Page Progress", "path": "framework/ui/blazor/page-progress.md" }, { "text": "Block/Busy", "path": "framework/ui/blazor/block-busy.md" } ] }, { "text": "Other Components", "items": [ { "text": "SubmitButton Component", "path": "framework/ui/blazor/components/submit-button.md" } ] }, { "text": "Settings", "path": "framework/ui/blazor/settings.md" }, { "text": "Error Handling", "path": "framework/ui/blazor/error-handling.md" }, { "text": "Customization / Overriding Components", "path": "framework/ui/blazor/customization-overriding-components.md" }, { "text": "Global Scripts & Styles", "path": "framework/ui/blazor/global-scripts-styles.md" }, { "text": "Global Features", "path": "framework/ui/blazor/global-features.md" }, { "text": "Routing", "path": "framework/ui/blazor/routing.md" }, { "text": "PWA Configuration", "path": "framework/ui/blazor/pwa-configuration.md" }, { "text": "Layout Hooks", "path": "framework/ui/blazor/layout-hooks.md" } ] }, { "text": "Angular", "items": [ { "text": "Overview", "path": "framework/ui/angular/overview.md", "isIndex": true }, { "text": "Quick Start", "path": "framework/ui/angular/quick-start.md" }, { "text": "Development", "items": [ { "text": "Environment Variables", "path": "framework/ui/angular/environment.md" }, { "text": "About Feature Libraries", "path": "framework/ui/angular/feature-libraries.md" }, { "text": "Service Proxies", "path": "framework/ui/angular/service-proxies.md" }, { "text": "PWA Configuration", "path": "framework/ui/angular/pwa-configuration.md" }, { "text": "Unit Testing", "path": "framework/ui/angular/testing.md" } ] }, { "text": "Core Functionality", "items": [ { "text": "Config State Service", "path": "framework/ui/angular/config-state-service.md" }, { "text": "Authorization", "path": "framework/ui/angular/authorization.md" }, { "text": "Current User", "path": "framework/ui/angular/current-user.md" }, { "text": "HTTP Requests", "items": [ { "text": "How to Make HTTP Requests", "path": "framework/ui/angular/http-requests.md" }, { "text": "Error Handling", "path": "framework/ui/angular/http-error-handling.md" } ] }, { "text": "Localization", "path": "framework/ui/angular/localization.md" }, { "text": "Form Validation", "path": "framework/ui/angular/form-validation.md" }, { "text": "Settings", "path": "framework/ui/angular/settings.md" }, { "text": "Features", "path": "framework/ui/angular/features.md" }, { "text": "Global Features", "path": "framework/ui/angular/global-features.md" }, { "text": "Permission Management", "path": "framework/ui/angular/permission-management.md" }, { "text": "Multi Tenancy", "path": "framework/ui/angular/multi-tenancy.md" }, { "text": "Account Module", "path": "framework/ui/angular/account-module.md" } ] }, { "text": "Utilities", "items": [ { "text": "Managing RxJS Subscriptions", "path": "framework/ui/angular/subscription-service.md" }, { "text": "Working with Lists", "path": "framework/ui/angular/list-service.md" }, { "text": "Easy *ngFor trackBy", "path": "framework/ui/angular/track-by-service.md" }, { "text": "Router Events", "path": "framework/ui/angular/router-events.md" }, { "text": "Inserting Scripts & Styles to DOM", "path": "framework/ui/angular/dom-insertion-service.md" }, { "text": "Lazy Loading Scripts & Styles", "path": "framework/ui/angular/lazy-load-service.md" }, { "text": "Projecting Angular Content", "path": "framework/ui/angular/content-projection-service.md" }, { "text": "Modal", "path": "framework/ui/angular/modal.md" }, { "text": "Confirmation Popup", "path": "framework/ui/angular/confirmation-service.md" }, { "text": "Loading Directive", "path": "framework/ui/angular/loading-directive.md" }, { "text": "Show Password Directive", "path": "framework/ui/angular/show-password-directive.md" }, { "text": "Caps Lock Directive", "path": "framework/ui/angular/caps-lock-directive.md" }, { "text": "Toast Overlay", "path": "framework/ui/angular/toaster-service.md" }, { "text": "Page Alerts", "path": "framework/ui/angular/page-alerts.md" }, { "text": "Ellipsis", "path": "framework/ui/angular/ellipsis-directive.md" }, { "text": "Context Strategy", "path": "framework/ui/angular/context-strategy.md" }, { "text": "Cross Origin Strategy", "path": "framework/ui/angular/cross-origin-strategy.md" }, { "text": "Dom Strategy", "path": "framework/ui/angular/dom-strategy.md" }, { "text": "Container Strategy", "path": "framework/ui/angular/container-strategy.md" }, { "text": "Content Security Strategy", "path": "framework/ui/angular/content-security-strategy.md" }, { "text": "Abp Window Service", "path": "framework/ui/angular/abp-window-service.md" } ] }, { "text": "Customization", "items": [ { "text": "Customization Guide", "path": "framework/ui/angular/customization-user-interface.md" }, { "text": "Theming", "items": [ { "text": "Overview", "path": "framework/ui/angular/theming.md", "isIndex": true }, { "text": "Configuration", "path": "framework/ui/angular/theme-configurations.md" }, { "text": "The Basic Theme", "path": "framework/ui/angular/basic-theme.md" }, { "text": "LeptonX Lite", "path": "ui-themes/lepton-x-lite/angular.md" }, { "text": "LeptonX", "path": "ui-themes/lepton-x/angular.md" } ] }, { "text": "Modifying the Menu", "path": "framework/ui/angular/modifying-the-menu.md" }, { "text": "Manage Profile Page Tabs", "path": "framework/ui/angular/manage-profile-page-tabs.md" }, { "text": "Sorting Navigation Elements", "path": "framework/ui/angular/sorting-navigation-elements.md" }, { "text": "Component Replacement", "path": "framework/ui/angular/component-replacement.md" }, { "text": "Extensions", "items": [ { "text": "Overview", "path": "framework/ui/angular/extensions-overall.md", "isIndex": true }, { "text": "Entity Action Extensions", "path": "framework/ui/angular/entity-action-extensions.md" }, { "text": "Data Table Column Extensions", "path": "framework/ui/angular/data-table-column-extensions.md" }, { "text": "Page Toolbar Extensions", "path": "framework/ui/angular/page-toolbar-extensions.md" }, { "text": "Dynamic Form Extensions", "path": "framework/ui/angular/dynamic-form-extensions.md" }, { "text": "Date, time and datetime format pipes", "path": "framework/ui/angular/datetime-format-pipe.md" } ] } ] }, { "text": "Components", "items": [ { "text": "Page", "path": "framework/ui/angular/page-component.md" }, { "text": "Chart", "path": "framework/ui/angular/chart-component.md" }, { "text": "Card", "path": "framework/ui/angular/card-component.md" }, { "text": "Password Complexity Indicator", "path": "framework/ui/angular/password-complexity-indicator-component.md" }, { "text": "Lookup Components(Pro)", "path": "framework/ui/angular/lookup-components.md" }, { "text": "Entity Filters(Pro)", "path": "framework/ui/angular/entity-filters.md" } ] } ] }, { "text": "React Native", "items": [ { "text": "Overview", "path": "framework/ui/react-native", "isIndex": true } ] }, { "text": "MAUI", "items": [ { "text": "Overview", "path": "framework/ui/maui", "isIndex": true } ] }, { "text": "Common", "items": [ { "text": "Overriding the User Interface", "path": "framework/architecture/modularity/extending/overriding-user-interface.md" }, { "text": "Utilities", "items": [ { "text": "Linked List (Doubly)", "path": "framework/ui/common/utils/linked-list.md" } ] } ] } ] }, { "text": "Data Access", "items": [ { "text": "Overview", "path": "framework/data", "isIndex": true }, { "text": "Entity Framework Core", "items": [ { "text": "Overview", "path": "framework/data/entity-framework-core", "isIndex": true }, { "text": "Database Migrations", "path": "framework/data/entity-framework-core/migrations.md" }, { "text": "Switch DBMS", "path": "framework/data/entity-framework-core/other-dbms.md", "items": [ { "text": "To MySQL", "path": "framework/data/entity-framework-core/mysql.md" }, { "text": "To PostgreSQL", "path": "framework/data/entity-framework-core/postgresql.md" }, { "text": "To Oracle", "path": "framework/data/entity-framework-core/oracle.md", "items": [ { "text": "Oracle (Official)", "path": "framework/data/entity-framework-core/oracle-official.md" }, { "text": "Oracle (Devart)", "path": "framework/data/entity-framework-core/oracle-devart.md" } ] }, { "text": "To SQLite", "path": "framework/data/entity-framework-core/sqlite.md" } ] } ] }, { "text": "MongoDB", "path": "framework/data/mongodb" }, { "text": "Dapper", "path": "framework/data/dapper" } ] }, { "text": "Real Time", "items": [ { "text": "SignalR Integration", "path": "framework/real-time/signalr.md" } ] }, { "text": "Dapr Integration", "path": "framework/dapr" } ] }, { "text": "Solution Templates", "items": [ { "text": "Overview", "path": "solution-templates", "isIndex": true }, { "text": "Template Guide", "path": "solution-templates/guide.md" }, { "text": "Single-Layer Solution", "isLazyExpandable": true, "path": "solution-templates/single-layer-web-application", "items": [ { "text": "Overview", "path": "solution-templates/single-layer-web-application/overview.md" }, { "text": "Solution Structure", "path": "solution-templates/single-layer-web-application/solution-structure.md" }, { "text": "Main Components", "isLazyExpandable": true, "path": "solution-templates/single-layer-web-application/main-components.md", "items": [ { "text": "Web Applications", "path": "solution-templates/single-layer-web-application/web-applications.md" }, { "text": "Db Migrator", "path": "solution-templates/single-layer-web-application/db-migrator.md" } ] }, { "text": "Built-In Features", "isLazyExpandable": true, "path": "solution-templates/single-layer-web-application/built-in-features.md", "items": [ { "text": "Authentication", "path": "solution-templates/single-layer-web-application/authentication.md" }, { "text": "Database configurations", "path": "solution-templates/single-layer-web-application/database-configurations.md" }, { "text": "Logging (with Serilog)", "path": "solution-templates/single-layer-web-application/logging.md" }, { "text": "Swagger integration", "path": "solution-templates/single-layer-web-application/swagger-integration.md" }, { "text": "Multi-Tenancy", "path": "solution-templates/single-layer-web-application/multi-tenancy.md" }, { "text": "BLOB Storing", "path": "solution-templates/single-layer-web-application/blob-storing.md" }, { "text": "CORS configuration", "path": "solution-templates/single-layer-web-application/cors-configuration.md" } ] } ] }, { "text": "Layered Solution", "isLazyExpandable": true, "path": "solution-templates/layered-web-application", "items": [ { "text": "Overview", "path": "solution-templates/layered-web-application/overview.md" }, { "text": "Solution Structure", "path": "solution-templates/layered-web-application/solution-structure.md" }, { "text": "Main Components", "isLazyExpandable": true, "path": "solution-templates/layered-web-application/main-components.md", "items": [ { "text": "Web Applications", "path": "solution-templates/layered-web-application/web-applications.md" }, { "text": "Db Migrator", "path": "solution-templates/layered-web-application/db-migrator.md" }, { "text": "Mobile Applications", "path": "solution-templates/layered-web-application/mobile-applications.md" } ] }, { "text": "Built-In Features", "isLazyExpandable": true, "path": "solution-templates/layered-web-application/built-in-features.md", "items": [ { "text": "Authentication", "path": "solution-templates/layered-web-application/authentication.md" }, { "text": "Database configurations", "path": "solution-templates/layered-web-application/database-configurations.md" }, { "text": "Logging (with Serilog)", "path": "solution-templates/layered-web-application/logging.md" }, { "text": "Swagger integration", "path": "solution-templates/layered-web-application/swagger-integration.md" }, { "text": "Background Jobs", "path": "solution-templates/layered-web-application/background-jobs.md" }, { "text": "Background Workers", "path": "solution-templates/layered-web-application/background-workers.md" }, { "text": "Distributed Locking", "path": "solution-templates/layered-web-application/distributed-locking.md" }, { "text": "Multi-Tenancy", "path": "solution-templates/layered-web-application/multi-tenancy.md" }, { "text": "BLOB Storing", "path": "solution-templates/layered-web-application/blob-storing.md" }, { "text": "CORS configuration", "path": "solution-templates/layered-web-application/cors-configuration.md" } ] }, { "text": "Helm Charts and Kubernetes", "path": "solution-templates/layered-web-application/helm-charts-and-kubernetes.md" }, { "text": "Deployment", "path": "solution-templates/layered-web-application/deployment", "items": [ { "text": "Docker Deployment", "path": "solution-templates/layered-web-application/deployment/deployment-docker-compose.md" }, { "text": "Azure Deployment", "items": [ { "text": "Deploy to Azure Web App Service", "path": "solution-templates/layered-web-application/deployment/azure-deployment/azure-deployment.md", "isInSeries": true }, { "text": "Creating an Azure Web App Service Environment", "path": "solution-templates/layered-web-application/deployment/azure-deployment/step1-create-azure-resources.md", "isInSeries": true }, { "text": "Customizing the Configuration of Your ABP Application", "path": "solution-templates/layered-web-application/deployment/azure-deployment/step2-configuration-application.md", "isInSeries": true }, { "text": "Deploying Application With GitHub Actions", "path": "solution-templates/layered-web-application/deployment/azure-deployment/step3-deployment-github-action.md", "isInSeries": true } ] }, { "text": "IIS Deployment", "path": "solution-templates/layered-web-application/deployment/deployment-iis.md" }, { "text": "IdentityServer Deployment", "path": "solution-templates/layered-web-application/deployment/identityserver-deployment.md" }, { "text": "OpenIddict Deployment", "path": "solution-templates/layered-web-application/deployment/openiddict-deployment.md" } ] } ] }, { "text": "Microservice Solution", "isLazyExpandable": true, "path": "solution-templates/microservice/index.md", "items":[ { "text": "Overview", "path": "solution-templates/microservice/overview.md" }, { "text": "Solution Structure", "path": "solution-templates/microservice/solution-structure.md" }, { "text": "Main Components", "items": [ { "text": "Overview", "path": "solution-templates/microservice/main-components" }, { "text": "Microservices", "path": "solution-templates/microservice/microservices.md" }, { "text": "API Gateways", "path": "solution-templates/microservice/api-gateways.md" }, { "text": "Web Applications", "path": "solution-templates/microservice/web-applications.md" }, { "text": "Mobile Applications", "path": "solution-templates/microservice/mobile-applications.md" } ] }, { "text": "Built-In Features", "items": [ { "text": "Overview", "path": "solution-templates/microservice/built-in-features.md" }, { "text": "Authentication", "path": "solution-templates/microservice/authentication.md" }, { "text": "Database configurations", "path": "solution-templates/microservice/database-configurations.md" }, { "text": "Logging (with Serilog and Elasticsearch)", "path": "solution-templates/microservice/logging.md" }, { "text": "Monitoring (with Prometheus and Grafana)", "path": "solution-templates/microservice/monitoring.md" }, { "text": "Swagger integration", "path": "solution-templates/microservice/swagger-integration.md" }, { "text": "Permission management", "path": "solution-templates/microservice/permission-management.md" }, { "text": "Feature management", "path": "solution-templates/microservice/feature-management.md" }, { "text": "Localization system", "path": "solution-templates/microservice/localization-system.md" }, { "text": "Background Jobs", "path": "solution-templates/microservice/background-jobs.md" }, { "text": "Background Workers", "path": "solution-templates/microservice/background-workers.md" }, { "text": "Distributed Locking", "path": "solution-templates/microservice/distributed-locking.md" }, { "text": "Distributed Cache", "path": "solution-templates/microservice/distributed-cache.md" }, { "text": "Multi-Tenancy", "path": "solution-templates/microservice/multi-tenancy.md" }, { "text": "BLOB Storing", "path": "solution-templates/microservice/blob-storing.md" }, { "text": "CORS configuration", "path": "solution-templates/microservice/cors-configuration.md" } ] }, { "text": "Communication", "items":[ { "text": "Overview", "path": "solution-templates/microservice/communication.md" }, { "text": "HTTP API Calls", "path": "solution-templates/microservice/http-api-calls.md" }, { "text": "gRPC Calls", "path": "solution-templates/microservice/grpc-calls.md" }, { "text": "Distributed Events", "path": "solution-templates/microservice/distributed-events.md" } ] }, { "text": "Helm Charts and Kubernetes", "path": "solution-templates/microservice/helm-charts-and-kubernetes.md" }, { "text": "Guides", "items": [ { "text": "Overview", "path": "solution-templates/microservice/guides.md" }, { "text": "Adding new microservices", "path": "solution-templates/microservice/adding-new-microservices.md" }, { "text": "Adding new applications", "path": "solution-templates/microservice/adding-new-applications.md" }, { "text": "Adding new API gateways", "path": "solution-templates/microservice/adding-new-api-gateways.md" }, { "text": "Mono-repo vs multiple repository approaches", "path": "solution-templates/microservice/mono-repo-vs-multiple-repository-approaches.md" }, { "text": "Authoring unit and integration tests", "path": "solution-templates/microservice/authoring-unit-and-integration-tests.md" }, { "text": "How to use with ABP Suite", "path": "solution-templates/microservice/how-to-use-with-abp-suite.md" } ] } ] }, { "text": "Application Module", "path": "solution-templates/application-module" } ] }, { "text": "Application Modules", "items": [ { "text": "Overview", "path": "modules", "isIndex": true }, { "text": "Account", "path": "modules/account.md" }, { "text": "Account (Pro)", "items": [ { "text": "Overview", "path": "modules/account-pro.md", "isIndex": true }, { "text": "Tenant impersonation & User impersonation", "path": "modules/account/impersonation.md" }, { "text": "Idle Session Timeout", "path": "modules/account/idle-session-timeout.md" } ] }, { "text": "Audit Logging", "path": "modules/audit-logging.md" }, { "text": "Audit Logging (Pro)", "path": "modules/audit-logging-pro.md" }, { "text": "Background Jobs", "path": "modules/background-jobs.md" }, { "text": "Chat (Pro)", "path": "modules/chat.md" }, { "text": "CMS Kit", "isLazyExpandable": true, "path": "modules/cms-kit", "items": [ { "text": "Overview", "path": "modules/cms-kit.md", "isIndex": true }, { "text": "Pages", "path": "modules/cms-kit/pages.md" }, { "text": "Blogging", "path": "modules/cms-kit/blogging.md" }, { "text": "Tag Management", "path": "modules/cms-kit/tags.md" }, { "text": "Comments", "path": "modules/cms-kit/comments.md" }, { "text": "Reaction System", "path": "modules/cms-kit/reactions.md" }, { "text": "Rating System", "path": "modules/cms-kit/ratings.md" }, { "text": "Menus", "path": "modules/cms-kit/menus.md" }, { "text": "Global Resources", "path": "modules/cms-kit/global-resources.md" }, { "text": "Dynamic Widget", "path": "modules/cms-kit/dynamic-widget.md" }, { "text": "Marked Item System", "path": "modules/cms-kit/marked-items.md" } ] }, { "text": "CMS Kit (Pro)", "isLazyExpandable": true, "path": "modules/cms-kit-pro", "items": [ { "text": "Overview", "path": "modules/cms-kit-pro.md", "isIndex": true }, { "text": "Newsletter System", "path": "modules/cms-kit-pro/newsletter.md" }, { "text": "Contact Management", "path": "modules/cms-kit-pro/contact-form.md" }, { "text": "URL Forwarding System", "path": "modules/cms-kit-pro/URL-forwarding.md" }, { "text": "Poll System", "path": "modules/cms-kit-pro/poll.md" }, { "text": "Page Feedback System", "path": "modules/cms-kit-pro/page-feedback.md" }, { "text": "FAQ System", "path": "modules/cms-kit-pro/faq.md" } ] }, { "text": "Docs", "path": "modules/docs.md" }, { "text": "Feature Management", "path": "modules/feature-management.md" }, { "text": "File Management (Pro)", "path": "modules/file-management.md" }, { "text": "Forms (Pro)", "path": "modules/forms.md" }, { "text": "GDPR (Pro)", "path": "modules/gdpr.md" }, { "text": "Identity", "path": "modules/identity.md" }, { "text": "Identity (Pro)", "path": "modules/identity-pro.md" }, { "text": "IdentityServer", "isLazyExpandable": true, "path": "modules/identity-server.md", "items": [ { "text": "Overview", "path": "modules/identity-server.md", "isIndex": true }, { "text": "IdentityServer Migration Guide", "path": "release-info/migration-guides/identityserver4-step-by-step.md" } ] }, { "text": "IdentityServer (Pro)", "path": "modules/identity-server-pro.md" }, { "text": "Language Management (Pro)", "path": "modules/language-management.md" }, { "text": "OpenIddict", "isLazyExpandable": true, "path": "modules/openiddict.md", "items": [ { "text": "Overview", "path": "modules/openiddict.md", "isIndex": true }, { "text": "OpenIddict Migration Guide", "path": "release-info/migration-guides/openiddict-step-by-step.md" } ] }, { "text": "OpenIddict (Pro)", "path": "modules/openiddict-pro.md" }, { "text": "Payment (Pro)", "path": "modules/payment.md" }, { "text": "Permission Management", "path": "modules/permission-management.md" }, { "text": "SaaS (Pro)", "path": "modules/saas.md" }, { "text": "Setting Management", "path": "modules/setting-management.md" }, { "text": "Tenant Management", "path": "modules/tenant-management.md" }, { "text": "Text template management (Pro)", "path": "modules/text-template-management.md" }, { "text": "Twilio SMS (Pro)", "path": "modules/twilio-sms.md" }, { "text": "Virtual File Explorer", "path": "modules/virtual-file-explorer.md" }, { "text": "Common", "items": [ { "text": "Database Tables", "path": "modules/database-tables.md" } ] } ] }, { "text": "UI Themes", "items": [ { "text": "Overview", "path": "ui-themes", "isIndex": true }, { "text": "The Basic Theme", "path": "ui-themes/basic-theme" }, { "text": "LeptonX Lite", "path": "ui-themes/lepton-x-lite" }, { "text": "LeptonX Theme", "path": "ui-themes/lepton-x" } ] }, { "text": "Testing", "items": [ { "text": "Overview", "path": "testing/overall.md", "isIndex": true }, { "text": "Unit tests", "path": "testing/unit-tests.md" }, { "text": "Integration tests", "path": "testing/integration-tests.md" }, { "text": "UI tests", "path": "testing/ui-tests.md" } ] }, { "text": "Deployment", "items": [ { "text": "Overview", "path": "deployment", "isIndex": true }, { "text": "Configuring SSL certificate(HTTPS)", "path": "deployment/ssl.md" }, { "text": "Configuring OpenIddict", "path": "deployment/configuring-openiddict.md" }, { "text": "Configuring for Production", "path": "deployment/configuring-production.md" }, { "text": "Deploying to a Clustered Environment", "path": "deployment/clustered-environment.md" }, { "text": "Distributed / Microservice Solutions", "path": "deployment/distributed-microservice.md" }, { "text": "Optimizing for Production", "path": "deployment/optimizing-production.md" } ] }, { "text": "Samples", "items": [ { "text": "Overview", "path": "samples", "isIndex": true }, { "text": "EventHub", "path": "https://github.com/abpframework/eventhub" }, { "text": "eShopOnAbp", "path": "https://github.com/abpframework/eShopOnAbp" }, { "text": "CMS Kit Demo", "path": "https://github.com/abpframework/cms-kit-demo" }, { "text": "Easy CRM", "path": "samples/easy-crm.md" } ] }, { "text": "Books", "items": [ { "text": "Overview", "path": "https://abp.io/books", "isIndex": true }, { "text": "Mastering ABP Framework", "path": "https://abp.io/books/mastering-abp-framework" }, { "text": "Implementing Domain Driven Design", "path": "https://abp.io/books/implementing-domain-driven-design" } ] }, { "text": "Release Information", "items": [ { "text": "Overview", "path": "release-info", "isIndex": true }, { "text": "Release Notes", "path": "release-info/release-notes.md" }, { "text": "Migration Guides", "path": "release-info/migration-guides" }, { "text": "Road Map", "path": "release-info/road-map.md" }, { "text": "Upgrading", "path": "release-info/upgrading.md" }, { "text": "Preview Releases", "path": "release-info/previews.md" }, { "text": "Nightly Builds", "path": "release-info/nightly-builds.md" }, { "text": "Official Packages", "path": "https://abp.io/packages" } ] }, { "text": "Others", "items": [ { "text": "API Documentation", "path": "{ApiDocumentationUrl}" }, { "text": "Contribution Guide", "path": "contribution" }, { "text": "Why ABP Platform?", "path": "others/why-abp-platform.md" }, { "text": "Free (Open Source) License vs Commercial (Pro) Licenses", "path": "others/free-licenses-vs-pro-licenses.md" }, { "text": "Knowledge Base", "path": "kb" }, { "text": "Penetration Test Report", "path": "others/penetration-test-report.md" }, { "text": "ABP vs ASP.NET Zero", "path": "others/aspnet-zero-vs-abp.md" }, { "text": "Migrating from Open Source Templates", "path": "guides/migrating-from-open-source.md" }, { "text": "Migrating from IdentityServer to OpenIddict", "path": "release-info/migration-guides/openiddict-step-by-step.md" }, { "text": "Migrating from the ASP.NET Boilerplate", "path": "others/aspnet-boilerplate-migration-guide.md" } ] } ] }