https://github.com/fredrkl/net-recap
.NET recap. What is new in .net 6 and up
https://github.com/fredrkl/net-recap
Last synced: 5 months ago
JSON representation
.NET recap. What is new in .net 6 and up
- Host: GitHub
- URL: https://github.com/fredrkl/net-recap
- Owner: fredrkl
- License: mit
- Created: 2024-07-10T11:24:27.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-09T00:28:00.000Z (6 months ago)
- Last Synced: 2025-02-15T06:54:54.677Z (5 months ago)
- Language: C#
- Size: 928 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# .NET recap
Also showcases automatic releases using semantic-release, and automatic dependency updates using Renovate.
.NET recap. What is new in .net 6 ,7 and 8
## Renovate
This repo uses the [Renovate](https://docs.renovatebot.com/) bot to keep dependencies up to date. I use Renovate over Dependabot because it is more configurable and has more features.
## Lessons
### Lessons - Records
- In order to run a LSP for .NET 7 or newer we need to use the https://github.com/razzmatazz/csharp-language-server instead of Omnisharp-roslyn which only goes up to version 6.
- In order for the LSP to cross projects we need a solution file. This is because the LSP needs to know about the projects in the solution in order to provide intellisense across projects.
- Use `ReferenceEquals()` to compare wheter two reference types are the same object.
- Use `struct` records for small, immutable data structures that you want to store on the stack. For larger data structures, you will want to use reference type records.
- Renovate need access to create or update workflow in order to create a PR updating gh actions.
- Renovate does not use the full url when spesifying individual repositories### Lessons - WebAPI
- There are mainly two types of ways to create APIs in ASP .NET Core: _minimal APIs_ and _MVC_.
### Lessons - feature-explorer
- Host ConfigureServices does have a method to take in a predefined IServiceCollection.
- ConfigurationBuilder is used to build configuration from different sources, e.g. appsettings.json, appsettings.Development.json, environment variables, command line arguments.
- .NET has a built in _feature toggle_ system that can be used to enable or disable features in your application. It is included in the _Microsoft.FeatureManagement_ packageUse Host.CreateApplicationBuilder if:
- You are working with ASP.NET Core or minimal APIs.
- You want a lightweight and opinionated configuration for modern web applications.
- You are using .NET 7 or newer.Use Host.CreateDefaultBuilder if:
- You need a generic host for non-web applications, such as worker services or console apps.
- You require full flexibility and customization.
- You are targeting .NET 6 or older (or .NET 7+ for non-web apps).## Build and release
This repo uses gitmoij commits and the semantic-release GitHub Action to automatically create releases. This means that you should use the following commit message format defined in the .releaserc file. See the [gitmoij](https://gitmoji.dev/) on how to use gitmoij.