Browse our archives by topic…
Blog
![C# Design Patterns - Iterator - Language Features](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/07/c-sharp-design-patterns-iterator-part2-blog-header.png)
C# Design Patterns - Iterator - Language Features
This post examines .NET's native support for iterators: IEnumerator<T>, IEnumerable<T>, and IAsyncEnumerable<T>.
![Launchpad to Success: Building and Leading Your Data Team](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/06/header-launchpad-to-success-building-and-leading-your-data-team.png)
Launchpad to Success: Building and Leading Your Data Team
This guide captures the essential points that leaders should consider when setting up a new data team.
![Observe File System Changes with Reactive Extensions for .NET](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/observe-file-system-changes-with-rx-dotnet.png)
Observe File System Changes with Reactive Extensions for .NET
Use Reactive Extensions for .NET to transform FileSystemWatcher events into a powerful and easy-to-use event stream to deal with file system idiosyncrasies.
![Json Schema Patterns in .NET - Mapping input and output values](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-mapping-input-and-output-values.png)
Json Schema Patterns in .NET - Mapping input and output values
Common patterns with C# and JSON Schema - using conversions to map automatically between arbitrary types.
![Json Schema Patterns in .NET - Maps of strings to strongly typed values](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-maps-of-strings-to-strongly-typed-values.png)
Json Schema Patterns in .NET - Maps of strings to strongly typed values
Common patterns with C# and JSON Schema - using unevaluatedProperties to create maps of strings to strongly typed values.
![Json Schema Patterns in .NET - Numeric enumerations and pattern matching](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-numeric-enumerations-and-pattern-matching.png)
Json Schema Patterns in .NET - Numeric enumerations and pattern matching
Common patterns with C# and JSON Schema - using oneOf to create numeric enumerations and dispatch with pattern matching.
![Json Schema Patterns in .NET - Enumerations and pattern matching](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-enumerations-and-pattern-matching.png)
Json Schema Patterns in .NET - Enumerations and pattern matching
Common patterns with C# and JSON Schema - using enum to create enumerations and dispatch with pattern matching.
![Json Schema Patterns in .NET - Polymorphism with discriminator properties](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-polymorphism-with-discriminator-properties.png)
Json Schema Patterns in .NET - Polymorphism with discriminator properties
Common patterns with C# and JSON Schema - using const to create discriminator properties for polymorphic types.
![Json Schema Patterns in .NET - Pattern matching and discriminated unions](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-pattern-matching-and-discriminated-unions.png)
Json Schema Patterns in .NET - Pattern matching and discriminated unions
Common patterns with C# and JSON Schema - using oneOf for discriminated unions and pattern matching.
![Json Schema Patterns in .NET - Interfaces and mix-in types](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-interfaces-and-mix-in-types.png)
Json Schema Patterns in .NET - Interfaces and mix-in types
Common patterns with C# and JSON Schema - composing interface-like mix-in types with allOf.
![Json Schema Patterns in .NET - Creating tuples](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-creating-tuples.png)
Json Schema Patterns in .NET - Creating tuples
Common patterns with C# and JSON Schema - creating tuples with prefixItems and unevaluatedItems.
![Json Schema Patterns in .NET - Working with tensors](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-working-with-tensors.png)
Json Schema Patterns in .NET - Working with tensors
Common patterns with C# and JSON Schema - Working with tensors by converting to and from numeric spans.
![Json Schema Patterns in .NET - Creating an array of higher rank](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-creating-array-of-higher-rank.png)
Json Schema Patterns in .NET - Creating an array of higher rank
Common patterns with C# and JSON Schema - Creating an array of higher rank using nested items array schema, minItems and maxItems.
![Json Schema Patterns in .NET - Creating a strongly typed array](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-creating-strongly-typed-array.png)
Json Schema Patterns in .NET - Creating a strongly typed array
Common patterns with C# and JSON Schema - Creating a strongly typed array with items, minItems and maxItems.
![Json Schema Patterns in .NET - Constraining a base type](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-constraining-a-base-type.png)
Json Schema Patterns in .NET - Constraining a base type
Common patterns with C# and JSON Schema - constraining a base type.
![Json Schema Patterns in .NET - Extending a base type](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-extending-base-type.png)
Json Schema Patterns in .NET - Extending a base type
Common patterns with C# and JSON Schema - extending-a-base-type.
![Json Schema Patterns in .NET - Open vs. Closed Types](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-open-versus-closed-types.png)
Json Schema Patterns in .NET - Open vs. Closed Types
Common patterns with C# and JSON Schema - object extensibility with open versus closed types.
![Json Schema Patterns in .NET - Reusing Common Types](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-reusing-common-types.png)
Json Schema Patterns in .NET - Reusing Common Types
Common patterns with C# and JSON Schema - how to reuse common schema in the definition of a type.
![Json Schema Patterns in .NET - Data Object Validation](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-data-object-validation.png)
Json Schema Patterns in .NET - Data Object Validation
Common patterns with C# and JSON Schema - constraints on a simple data object.
![Json Schema Patterns in .NET - Data Object](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-data-object.png)
Json Schema Patterns in .NET - Data Object
Common patterns with C# and JSON Schema - the simple data object.
![.NET JsonElement and Schema Validation](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/03/header-dot-net-jsonelement-and-schema-validation.png)
.NET JsonElement and Schema Validation
Corvus.JsonSchema enables safe use of the very high performance JSON parsing offered by .NET's System.Text.Json.
![Data is a socio-technical endeavour](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/04/header-data-is-a-socio-technical-endeavour.png)
Data is a socio-technical endeavour
Our experience shows that the the most successful data projects rely heavily on building a multi-disciplinary team.
![ASP.NET Core + Razor + HTMX + Chart.js](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/04/aspnet-core-razor-htmx-chartjs.png)
ASP.NET Core + Razor + HTMX + Chart.js
How to combine ASP.NET Core, Razor, and HTMX to power interactive Chart.js visualisations.
![adr - A .NET Tool for Creating & Managing Architecture Decision Records](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/03/header-a-dotnet-tool-for-creating-and-managing-adrs.png)
adr - A .NET Tool for Creating & Managing Architecture Decision Records
Architectural Decision Records (ADRs) capture context, options, decisions, and consequences. dotnet-adr is a .NET tool for managing ADRs.
![Data and AI Engineering Maturity - Fix our problems before we hit the buffers](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/03/header-data-ai-engineering-maturity.png)
Data and AI Engineering Maturity - Fix our problems before we hit the buffers
As data and AI become the engine of business change, we need to learn the lessons of the past to avoid expensive failures.