|
21 | 21 | </div> |
22 | 22 | </section> |
23 | 23 |
|
| 24 | + <section class="section-card"> |
| 25 | + <BitText Typography="BitTypography.H5" Gutter>What You'll Learn - 25 Comprehensive Stages</BitText> |
| 26 | + <div class="section-card-txt"> |
| 27 | + |
| 28 | + <br /> |
| 29 | + |
| 30 | + The interactive guide covers your entire project architecture across 25 detailed stages. Each stage provides real examples from your actual codebase with interactive Q&A: |
| 31 | + |
| 32 | + <div id="ef-core" style="margin-top: 1rem;"> |
| 33 | + <strong>Stage 1: Entity Framework Core</strong> |
| 34 | + <p>Learn about DbContext, entity models, entity type configurations, and migrations (optional). Understand nullable reference types in EF Core relationships and client-side offline database support.</p> |
| 35 | + </div> |
| 36 | + |
| 37 | + <div id="dtos-mappers" style="margin-top: 1rem;"> |
| 38 | + <strong>Stage 2: DTOs, Mappers, and Mapperly</strong> |
| 39 | + <p>Explore Data Transfer Objects, AppJsonContext, and how Mapperly simplifies object mapping. Learn the difference between Project() and Map() methods, and how Patch() updates client-side objects.</p> |
| 40 | + </div> |
| 41 | + |
| 42 | + <div id="api-odata" style="margin-top: 1rem;"> |
| 43 | + <strong>Stage 3: API Controllers and OData</strong> |
| 44 | + <p>Understand controller architecture, [AutoInject] attribute, and OData query support ($filter, $top, $skip, $orderby). Learn about PagedResult for total counts, data security, and optimized performance patterns.</p> |
| 45 | + </div> |
| 46 | + |
| 47 | + <div id="background-jobs" style="margin-top: 1rem;"> |
| 48 | + <strong>Stage 4: Background Jobs and CancellationToken Management</strong> |
| 49 | + <p>Discover automatic request cancellation, CancellationToken usage, NavigationLock for critical operations, and Hangfire for reliable background job processing with persistence.</p> |
| 50 | + </div> |
| 51 | + |
| 52 | + <div id="localization" style="margin-top: 1rem;"> |
| 53 | + <strong>Stage 5: Localization and Multi-language Support</strong> |
| 54 | + <p>Master resource files (resx), `DtoResourceType` attribute, `AppDataAnnotationsValidator`, IStringLocalizer usage, and the `bit-resx` tool for managing translations.</p> |
| 55 | + </div> |
| 56 | + |
| 57 | + <div id="exception-handling" style="margin-top: 1rem;"> |
| 58 | + <strong>Stage 6: Exception Handling and Error Management</strong> |
| 59 | + <p>Learn about Known vs Unknown exceptions, safe exception throwing, `WithData()` and `WithExtensionData()` methods, automatic exception handling in Blazor, and `WrapHandled()` for event handlers.</p> |
| 60 | + </div> |
| 61 | + |
| 62 | + <div id="identity-auth" style="margin-top: 1rem;"> |
| 63 | + <strong>Stage 7: ASP.NET Core Identity / Authentication & Authentication</strong> |
| 64 | + <p>Comprehensive coverage of JWT tokens (access/refresh), session management, SSO integration (Google, GitHub, Azure AD, etc.), role-based and policy-based authorization, and identity configuration.</p> |
| 65 | + </div> |
| 66 | + |
| 67 | + <div id="blazor-pages" style="margin-top: 1rem;"> |
| 68 | + <strong>Stage 8: Blazor Pages, Components, Styling & Navigation</strong> |
| 69 | + <p>Understand the three-file structure (.razor, .razor.cs, .razor.scss), isolated component styles, global styles, ::deep selector, Bit.BlazorUI components, and navigation with `PageUrls`.</p> |
| 70 | + </div> |
| 71 | + |
| 72 | + <div id="dependency-injection" style="margin-top: 1rem;"> |
| 73 | + <strong>Stage 9: Dependency Injection & Service Registration</strong> |
| 74 | + <p>Explore service registration patterns across different projects, `AddSessioned` method for session-scoped services, and appropriate service lifetimes (Singleton, Scoped, Transient, `Sessioned`).</p> |
| 75 | + </div> |
| 76 | + |
| 77 | + <div id="configuration" style="margin-top: 1rem;"> |
| 78 | + <strong>Stage 10: Configuration (appsettings.json)</strong> |
| 79 | + <p>Learn about configuration hierarchy across projects, appsettings.{environment}.json files, configuration priority, and how to use *__Comment for JSON comments.</p> |
| 80 | + </div> |
| 81 | + |
| 82 | + <div id="typescript" style="margin-top: 1rem;"> |
| 83 | + <strong>Stage 11: TypeScript, Build Process & JavaScript Interop</strong> |
| 84 | + <p>Understand TypeScript integration, MSBuild targets for JavaScript compilation, `IJSRuntimeExtensions` for C#-to-JS calls, and how to add npm packages with type definitions.</p> |
| 85 | + </div> |
| 86 | + |
| 87 | + <div id="blazor-modes" style="margin-top: 1rem;"> |
| 88 | + <strong>Stage 12: Blazor Modes, PreRendering & PWA</strong> |
| 89 | + <p>Explore Blazor Server, WebAssembly, and Auto modes, pre-rendering configuration for SEO and performance, PWA capabilities, service workers, and `IPrerenderStateService`.</p> |
| 90 | + </div> |
| 91 | + |
| 92 | + <div id="force-update" style="margin-top: 1rem;"> |
| 93 | + <strong>Stage 13: Force Update System</strong> |
| 94 | + <p>Learn how `ForceUpdateMiddleware` validates app versions on every request, supports platform-specific update behaviors (auto-update for web/Windows, store redirect for mobile), and ensures all users run supported versions.</p> |
| 95 | + </div> |
| 96 | + |
| 97 | + <div id="response-caching" style="margin-top: 1rem;"> |
| 98 | + <strong>Stage 14: Response Caching System</strong> |
| 99 | + <p>Master multi-layer caching: client-side memory cache, browser HTTP cache, CDN edge cache, and ASP.NET Core Output Cache. Learn about `AppResponseCache` attribute, cache purging with `ResponseCacheService`, and optimizing performance.</p> |
| 100 | + </div> |
| 101 | + |
| 102 | + <div id="logging" style="margin-top: 1rem;"> |
| 103 | + <strong>Stage 15: Logging, OpenTelemetry and Health Checks</strong> |
| 104 | + <p>Understand ILogger for logging, `AppActivitySource` for tracking operations, in-app Diagnostic Modal, integration with Sentry and Azure App Insights, Aspire Dashboard, and built-in health checks.</p> |
| 105 | + </div> |
| 106 | + |
| 107 | + <div id="cicd" style="margin-top: 1rem;"> |
| 108 | + <strong>Stage 16: CI/CD Pipeline and Environments</strong> |
| 109 | + <p>Explore workflow files, environment configuration (Development, Staging, Production), build and deployment pipelines for client platforms, and best practices for secure backend deployment.</p> |
| 110 | + </div> |
| 111 | + |
| 112 | + <div id="testing" style="margin-top: 1rem;"> |
| 113 | + <strong>Stage 17: Automated Testing (Unitigration Tests)</strong> |
| 114 | + <p>Learn about the Unitigration Test approach that combines the benefits of Unit Tests and Integration Tests, UI tests with real server behavior, and flexible test architecture.</p> |
| 115 | + </div> |
| 116 | + |
| 117 | + <div id="prompts" style="margin-top: 1rem;"> |
| 118 | + <strong>Stage 18: Other Available Prompt Templates</strong> |
| 119 | + <p>Discover additional specialized prompt templates available in the .github/prompts/ directory for specific development tasks and scenarios.</p> |
| 120 | + </div> |
| 121 | + |
| 122 | + <div id="misc-files" style="margin-top: 1rem;"> |
| 123 | + <strong>Stage 19: Project Miscellaneous Files</strong> |
| 124 | + <p>Review important configuration files: Clean scripts, global.json, vs-spell.dic, settings.VisualStudio.json, mcp.json, Directory.Build.props, Directory.Packages.props, and .vsconfig.</p> |
| 125 | + </div> |
| 126 | + |
| 127 | + <div id="aspire" style="margin-top: 1rem;"> |
| 128 | + <strong>Stage 20: .NET Aspire</strong> |
| 129 | + <p>Understand .NET Aspire benefits for development (dashboard monitoring) and deployment (Azure, Docker Compose, Kubernetes). Learn database persistence configuration and Linux testing with Dev Containers.</p> |
| 130 | + </div> |
| 131 | + |
| 132 | + <div id="maui-hybrid" style="margin-top: 1rem;"> |
| 133 | + <strong>Stage 21: .NET MAUI / Blazor Hybrid</strong> |
| 134 | + <p>Explore native platform capabilities on Android, iOS, macOS, and Windows. Learn about Deep Links/Universal Links, `ApplicationVersion` for app stores, Windows project advantages, and WebView considerations.</p> |
| 135 | + </div> |
| 136 | + |
| 137 | + <div id="messaging" style="margin-top: 1rem;"> |
| 138 | + <strong>Stage 22: Messaging</strong> |
| 139 | + <p>Master in-app messaging with `PubSubService`, JavaScript-to-C# communication with `AppJsBridge`, real-time server-to-client messaging with SignalR, and push notifications with deep linking.</p> |
| 140 | + </div> |
| 141 | + |
| 142 | + <div id="diagnostic" style="margin-top: 1rem;"> |
| 143 | + <strong>Stage 23: Diagnostic Modal</strong> |
| 144 | + <p>Explore the powerful in-app diagnostic tools, including browser DevTools that work on mobile devices and real-time log viewing capabilities.</p> |
| 145 | + </div> |
| 146 | + |
| 147 | + <div id="webauthn" style="margin-top: 1rem;"> |
| 148 | + <strong>Stage 24: WebAuthn and Passwordless Authentication (Advanced)</strong> |
| 149 | + <p>Learn about biometric authentication (fingerprint, Face ID, PIN) that's more secure than native implementations, cross-platform support.</p> |
| 150 | + </div> |
| 151 | + |
| 152 | + <div id="vector-embeddings" style="margin-top: 1rem;"> |
| 153 | + <strong>Stage 25: RAG / Semantic Search with Vector Embeddings (Advanced)</strong> |
| 154 | + <p>Understand vector embeddings for semantic search, cross-language search capabilities, embedding models (OpenAI, Azure, Hugging Face), and how to implement RAG (Retrieval-Augmented Generation) patterns.</p> |
| 155 | + </div> |
| 156 | + |
| 157 | + <br /> |
| 158 | + <br /> |
| 159 | + |
| 160 | + <strong style="font-size: 1.1rem;">Ready to Start Your Interactive Learning Journey?</strong> |
| 161 | + <p style="margin-top: 0.5rem;"> |
| 162 | + Open your project created from bit Boilerplate in <span class="bold-txt">Visual Studio</span> or <span class="bold-txt">Visual Studio Code</span>, |
| 163 | + then open <span class="bold-txt">GitHub Copilot Chat</span> and type: |
| 164 | + </p> |
| 165 | + <code style="display: block; margin: 1rem 0; padding: 0.75rem; background-color: var(--bit-clr-bg-pri); border-radius: 4px;"> |
| 166 | + Run getting started |
| 167 | + </code> |
| 168 | + <p> |
| 169 | + You can specify which stage you want to start with (e.g., "Stage 5") and your preferred language |
| 170 | + (e.g., English, Persian, Français or any other language). |
| 171 | + </p> |
| 172 | + </div> |
| 173 | + </section> |
| 174 | + |
24 | 175 | <section class="section-card" id="ai-powered-wiki"> |
25 | 176 | <BitText Typography="BitTypography.H5" Gutter>AI-Powered Wiki</BitText> |
26 | 177 | <div class="section-card-txt"> |
|
0 commit comments