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.
See the codeThis 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.
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.
If you want to support my project and help me grow it, you can
or become a sponsor on GitHub or just donate on PayPal and your logo will show up here with a link to your website :)
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! ⭐

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!
| Platform | Link | Status |
|---|---|---|
| Website | https://ilovedotnet.org | |
| YouTube | https://youtube.com/@ilovedotnet | |
| https://linkedin.com/groups/9083706/ | ||
| https://instagram.com/ilovedotnet/ | ||
| https://www.whatsapp.com/channel/0029VaAGMV2LtOj5S5MHd23h |
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
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.
The CI/CD pipeline can be triggered in several ways:
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
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:
The workflow includes conditional deployment logic to ensure GitHub Pages is only updated when appropriate conditions are met:
HTML
89.3%
C#
9.7%
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.
See the codeThis 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.
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.
If you want to support my project and help me grow it, you can
or become a sponsor on GitHub or just donate on PayPal and your logo will show up here with a link to your website :)
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! ⭐

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!
| Platform | Link | Status |
|---|---|---|
| Website | https://ilovedotnet.org | |
| YouTube | https://youtube.com/@ilovedotnet | |
| https://linkedin.com/groups/9083706/ | ||
| https://instagram.com/ilovedotnet/ | ||
| https://www.whatsapp.com/channel/0029VaAGMV2LtOj5S5MHd23h |
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
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.
The CI/CD pipeline can be triggered in several ways:
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
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:
The workflow includes conditional deployment logic to ensure GitHub Pages is only updated when appropriate conditions are met:
HTML
89.3%
C#
9.7%