Log info with tracepoints – Visual Studio (Windows) | Microsoft Docs
Tracepoints allow you to log information to the Output window under configurable conditions without modifying or stopping your code. This feature is supported for both managed languages (C#, Visual Basic, F#) and native code as well as languages such as JavaScript and Python.
Source: Log info with tracepoints – Visual Studio (Windows) | Microsoft Docs
WebStorm 2020.2: Use Prettier as the Default Formatter
WebStorm 2020.2: Use Prettier as the Default Formatter
Learn Responsive Design
web.dev/learn/design/
Task Async handling cancellation – Cancellation in Managed Threads | Microsoft Docs
How to handle cancellation of x number of running background tasks.
Source: Cancellation in Managed Threads | Microsoft Docs
Code examples: https://docs.microsoft.com/en-us/dotnet/standard/threading/cancellation-in-managed-threads#code-example
SharpLab Online Tool – Reveal what happens during compilation of C#
SharpLab is a .NET code playground that shows intermediate steps and results of code compilation. Some language features are thin wrappers on top of other features — e.g.
using()
becomestry/finally
. SharpLab allows you to see the code as compiler sees it, and get a better understanding of .NET languages.Recent versions include experimental support for running code, with some limitations.
Online tool: SharpLab
Retry and fault handling in C# .NET
Sometimes you need to implement some sort of retry logic if an error occurs in a c# program.
Existing libraries for retry and fault handling:
Polly
http://www.thepollyproject.org/
CircuitBreaker.Net
https://github.com/alexandrnikitin/CircuitBreaker.Net
Read more about the related Circuit Breaker pattern:
CircuitBreaker
http://martinfowler.com/bliki/CircuitBreaker.html
Circuit Breaker Pattern
https://msdn.microsoft.com/en-us/library/dn589784.aspx
Error handling and policies in general:
https://en.wikipedia.org/wiki/Exception_handling#Restarts_separate_mechanism_from_policy
https://docs.microsoft.com/en-us/dotnet/standard/exceptions/
https://stackify.com/csharp-exception-handling-best-practices/
Working with Equals() and GetHashCode() to compare your objects in C#
In general these interfaces and methods are good to implement when working with comparing objects of the same type in C#:
Interfaces:
System.IEquatable<T> – strongly typed implementation
IComparable<T> – strongly typed implementation
Override methods:
An override of Object.Equals(Object).
An override of Object.GetHashCode().
An override of Object.ToString() is usually a good idea.
Operator overloads for operator == and operator !=.
General rule of GetHashCode():
If two objects is equal then their hashvalues should be the same.
E.g.:
If Equals == true then
x.GetHashCode() == y.GetHashCode()
GetHashCode() is frequently used by collections like Dictionary<Key, Value> and HashSet<T>
Links:
Guidelines for Overloading Equals() and Operator == (C# Programming Guide)
https://msdn.microsoft.com/en-us/library/ms173147.aspx
- How to best implement Equals for custom types?
http://stackoverflow.com/questions/567642 - Implement value objects
https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrspatterns/implement-value-objects - C# – Always valid value objects
https://danielwertheim.se/csharp-always-valid-value-objects/ - What is the best algorithm for overriding GetHashCode?
https://stackoverflow.com/questions/263400
RegExr: Learn, Build, & Test RegEx
Regular expression tester with syntax highlighting, PHP / PCRE & JS Support, contextual help, cheat sheet, reference, and searchable community patterns.
How to Check AD Group Membership using cmd/powershell
Active Directory security groups are used to grant users’ permissions to various domain services and resources. Therefore, to understand what permissions are assigned to a specific user in the AD domain, it is enough to look at the groups in which the user account is a member.