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.
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! ⭐
- Blazor WASM
- LINQ
- Entity Framework
- C#
- ML.NET
- WEB API
- DSA
- Design Patterns
- TDD
- String Builder
- Regex
- OOPS
- Expression Trees
- Swagger
- Middlewares
- JWT
- Dependency Injection
- Minimal API
- CLI
- HTTP Client
- Report
- Concurrency
- SOLID
- Background Services
- OWASP Secure Coding
- SignalR
- MSBuild
- MAUI
- Testing
- AI
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 |
- 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.
- 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.
- 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.
- A live working demo would be preferred in all content.
- Try to keep content simple and short.
- Any ideas to improve content are welcome.
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:
- 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
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:
- Simplified Dependency Management: All steps share the same environment and workspace
- Sequential Execution Control: Each phase (setup, build, test, deploy) runs in a controlled order
- Consolidated Logging: All related logs appear in a single job context for easier troubleshooting
- 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