Skip to content

I love to teach dotnet concepts in a simple way with real world examples to people who aspire to to be a dotnet developer. I also help developers to refresh their memory with easy to understand analogy.

License

Notifications You must be signed in to change notification settings

ILoveDotNet/ilovedotnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

build-blazor-app

I ❤️ .NET

This is a .NET knowledge sharing platform with live demos crafted by developers for developers with love using .NET. The goal is to make sure this learning platform helps developers to up and run .NET easily in their projects. This platform will cover minimal knowledge, steps, content needed to start with .NET stack.

GitHub Banner

Announcement

This is knowledge sharing platform maintained by Microsoft MVP - Abdul Rahman. I document and write each and every piece of my knowledge in dotnet development which I gained over a decade working in multiple complex projects. Mastering the contents in this blog will transform anyone from zero to hero in dotnet. All you need to do is to invest your time.

Sponsors

If you want to support my project and help me grow it, you can Buy Me A Coffee or become a sponsor on GitHub or just donate on PayPal and your logo will show up here with a link to your website :)

Please help by giving a ⭐

We appreciate your ⭐. It Helps!! That will not only help strengthen our .NET community but also improve development skills for .NET developers in around the world. Thank you very much 👍.

Choosing a project idea could be difficult. We need to ensure stability and maintainability of our projects. Surveys show that GitHub stars count play an important factor when assessing quality.

⭐ Please give this repository a star. It takes seconds and help thousands of developers! ⭐ star-request

Road Map

  1. Blazor WASM IN PROGRESS
  2. LINQ IN PROGRESS
  3. Entity Framework
  4. C#
  5. ML.NET
  6. WEB API IN PROGRESS
  7. DSA
  8. Design Patterns IN PROGRESS
  9. TDD CLOSED
  10. String Builder
  11. Regex IN PROGRESS
  12. OOPS IN PROGRESS
  13. Expression Trees
  14. Swagger
  15. Middlewares CLOSED
  16. JWT
  17. Dependency Injection CLOSED
  18. Minimal API
  19. CLI
  20. HTTP Client CLOSED
  21. Report IN PROGRESS
  22. Concurrency
  23. SOLID CLOSED
  24. Background Services IN PROGRESS
  25. OWASP Secure Coding IN PROGRESS
  26. SignalR CLOSED
  27. MSBuild IN PROGRESS
  28. MAUI IN PROGRESS
  29. Testing IN PROGRESS
  30. AI IN PROGRESS

Please share with the community

As an open-source project without funding, I cannot afford advertising I ❤️ .NET in a typical way. Instead, the project relies on community interactions. Please consider sharing a post about I ❤️ .NET and the value it provides. It really does help!

Our Official Network

Platform Link Status
Website https://ilovedotnet.org Website
YouTube https://youtube.com/@ilovedotnet Youtube Channel
LinkedIn https://linkedin.com/groups/9083706/ LinkedIn Group
Instagram https://instagram.com/ilovedotnet/ Instagram
WhatsApp https://www.whatsapp.com/channel/0029VaAGMV2LtOj5S5MHd23h WhatsApp

Contribution Guidelines

  1. You can contribute for any of the channels mentioned in road map. If the channel you wish to contribute is not available then you can add channel to road map and contribute.
  2. In any channel make sure the topic you wish to cover doesn't exists already. If it exists already please review the content and try to update it.
  3. If the channel is closed and you wish to add new content the please raise an PR with the content and we will review it.
  4. A live working demo would be preferred in all content.
  5. Try to keep content simple and short.
  6. Any ideas to improve content are welcome.

Star History (THANK YOU SO MUCH ❤️)

Star History Chart

Test Coverage

To see test coverage for tests you've written, you can use the default coverlet tool that is included with the XUnit test project template.

dotnet test --collect:"XPlat Code Coverage"

Then use the reportgenerator global tool to generate an HTML report. To install the tool (you only need to do this once):

dotnet tool install --global dotnet-reportgenerator-globaltool

Then run the following command to generate the report:

reportgenerator -reports:".\UITests\TestResults\**\coverage.cobertura.xml" -targetdir:"coverage" -reporttypes:Html

To remove any contents from previous runs, use the following PowerShell command:

gci -include TestResults,coverage -recurse | remove-item -force -recurse

CI/CD Pipeline

Our continuous integration and deployment pipeline automates building, testing, and deploying the ILoveDotNet application. The pipeline is implemented using GitHub Actions and is defined in .github/workflows/build-blazor-app.yml.

Workflow Triggers

The CI/CD pipeline can be triggered in several ways:

  • Push to main: Automatically runs when changes are pushed to the main branch (excluding markdown files)
  • Pull Requests: Runs on pull requests targeting the main branch
  • Weekly Schedule: Runs every Sunday at 17:00 UTC to ensure dependencies are up-to-date
  • Manual Trigger: Can be manually triggered through the GitHub Actions interface

Pipeline Visualization

The following diagram illustrates the complete CI/CD workflow:

flowchart TD
    %% Styling
    classDef trigger fill:#663399,stroke:#333,stroke-width:2px,color:white
    classDef job fill:#4B0082,stroke:#333,stroke-width:2px,color:white
    classDef setup fill:#5D3FD3,stroke:#333,stroke-width:1px,color:white
    classDef build fill:#6A0DAD,stroke:#333,stroke-width:1px,color:white
    classDef test fill:#7851A9,stroke:#333,stroke-width:1px,color:white
    classDef deploy fill:#9370DB,stroke:#333,stroke-width:1px,color:white
    
    %% Triggers
    Triggers([GitHub Action Triggers])
    Push[Push to main]
    PR[Pull Request to main]
    Schedule[Weekly Schedule]
    Manual[Manual Trigger]
    
    %% Jobs
    BlazorAppCICD[Blazor App Build, Test and Deploy]
    
    %% Setup steps
    Checkout[Checkout code]
    SetupDotNet[Setup .NET]
    InstallWASM[Install WASM tools]
    NPMInstall[Restore npm dependencies]
    VulnerabilityCheck[Checking Vulnerable npm Packages]
    RestoreDeps[Restore .NET dependencies]
    
    %% Build steps
    Format[Format code]
    BuildBlazor[Build Blazor project]
    
    %% Test steps
    InstallReportGen[Install Report Generator]
    RunTests[Run UI Tests]
    GenerateTestReport[Generate Test Report]
    UploadTestResults[Upload Test Results]
    
    %% Deploy steps
    PublishBlazor[Publish Blazor project]
    UploadArtifacts[Upload build artifacts]
    DeployToGitHubPages[Deploy to GitHub Pages]
    
    %% Connections
    Triggers --> Push & PR & Schedule & Manual
    Push & PR & Schedule & Manual --> BlazorAppCICD
    
    BlazorAppCICD --> Checkout --> SetupDotNet
    SetupDotNet --> InstallWASM
    Checkout --> NPMInstall --> VulnerabilityCheck
    InstallWASM & VulnerabilityCheck --> RestoreDeps --> Format --> BuildBlazor
    
    BuildBlazor --> InstallReportGen --> RunTests --> GenerateTestReport --> UploadTestResults
    
    UploadTestResults --> PublishBlazor --> UploadArtifacts
    UploadArtifacts --> DeployToGitHubPages
    
    %% Conditional path
    PR -.->|"skipped for pull requests"| DeployToGitHubPages
    
    %% Apply styles
    class Triggers,Push,PR,Schedule,Manual trigger
    class BlazorAppCICD job
    class Checkout,SetupDotNet,InstallWASM,NPMInstall,VulnerabilityCheck,RestoreDeps setup
    class Format,BuildBlazor build
    class InstallReportGen,RunTests,GenerateTestReport,UploadTestResults test
    class PublishBlazor,UploadArtifacts,DeployToGitHubPages deploy
Loading

Workflow Structure

The ILoveDotNet CI/CD pipeline uses a single comprehensive job that handles all aspects of the build, test, and deployment process. This design choice provides several advantages:

  1. Simplified Dependency Management: All steps share the same environment and workspace
  2. Sequential Execution Control: Each phase (setup, build, test, deploy) runs in a controlled order
  3. Consolidated Logging: All related logs appear in a single job context for easier troubleshooting
  4. Resource Efficiency: No duplicate checkout or setup steps required across multiple jobs

The workflow includes conditional deployment logic to ensure GitHub Pages is only updated when appropriate conditions are met:

  • Deployments only occur on pushes to the main branch (not pull requests)
  • Deployments are skipped for automated dependency updates from Dependabot

About

I love to teach dotnet concepts in a simple way with real world examples to people who aspire to to be a dotnet developer. I also help developers to refresh their memory with easy to understand analogy.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •