Skip to content
Learn Reactive Programming for FREE: Introduction to Rx.NET 2nd Edition (2024)

Learn Reactive Programming for FREE: Introduction to Rx.NET 2nd Edition (2024)

Howard van Rooijen

Learn Reactive Programming with our free book, Introduction to Rx.NET 2nd Edition (2024), available in PDF, EPUB, online, and GitHub.
Implementing the OpenChain Specification

Implementing the OpenChain Specification

Charlotte Gayton

After a year of working on implementing the OpenChain specification, this blog takes you through the processes we created to track and manage our open-source licenses
Rx.NET v6.0 Now Available

Rx.NET v6.0 Now Available

Ian Griffiths

For the first time since 2020, a new release of Rx.NET is available, supporting .NET 6 and .NET 7.
Working with JSON in Pyspark

Working with JSON in Pyspark

Charlotte Gayton

This blog shows how to transform a document based format to a tabular format whilst managing all the nested properties
The OpenChain specification explained

The OpenChain specification explained

Charlotte Gayton

When implementing OpenChain, understanding the specification will help guide your organisation to having processes in place to review and manage open-source software
What are the risks with open-source software?

What are the risks with open-source software?

Charlotte Gayton

The key risks associated with open-source software, from whether you use it minimally, to using it throughout all your systems.
What is OpenChain?

What is OpenChain?

Charlotte Gayton

With much of the modern world is built upon software, organisations need to understand and manage the legal and security risks associated with open-source software.
An Overview of the Corvus.Retry Library

An Overview of the Corvus.Retry Library

Liam Mooney

Corvus.Retry is an open source repository that provides functionality for building policies and strategies for handling transient faults. This post provides a spotlight on the repository.
An Overview of the Corvus.Globbing Library

An Overview of the Corvus.Globbing Library

Liam Mooney

Corvus.Globbing is an .NET open source library that provides high performance, zero allocation functionality for working with globs.
An Overview of the Corvus.Extensions Library

An Overview of the Corvus.Extensions Library

Jessica Hill

Corvus.Extensions is an open source repository that provides a collection of useful helper extension methods to .NET types. This post provides a spotlight on the repository.
Installing Mattermost using the Azure CNAB Quickstart Library

Installing Mattermost using the Azure CNAB Quickstart Library

Mike Evans-Larah

Get started with Mattermost on Azure using the Mattermost on AKS quickstart from the Azure CNAB Quickstart Library.
How to use Axios interceptors to poll for long running API calls

How to use Axios interceptors to poll for long running API calls

James Broome

Explore using Axios interceptors to streamline UI logic for async HTTP APIs, addressing long-running operations and client coordination efficiently.
ArrayPool vs MemoryPool—minimizing allocations in AIS.NET

ArrayPool vs MemoryPool—minimizing allocations in AIS.NET

Ian Griffiths

Tracking down unexpected allocations in a high-performance .NET parsing library.
5 tips for an awesome Windows Terminal experience

5 tips for an awesome Windows Terminal experience

Mike Evans-Larah

Improve the already-great Windows Terminal experience by following these tips for customizing the application to work best for you.
Using complex objects in BDD Scenarios with SpecFlow

Using complex objects in BDD Scenarios with SpecFlow

Jonathan George

Explore Behavior Driven Development using SpecFlow. Learn to create complex test data objects in Gherkin feature files with Corvus.NET project.
C# teamwork: share project config with common Nuget Build Asset Packages

C# teamwork: share project config with common Nuget Build Asset Packages

Ian Griffiths

See how to manage consistent default configuration across all your .NET projects by using NuGet build assets.
Introducing Ais.Net - High-Performance Parsing in C#

Introducing Ais.Net - High-Performance Parsing in C#

Ian Griffiths

Explore endjin's high-performance .NET AIS parser, developed for OceanMind, used for tracking commercial ships.
Setting up Porter on Windows

Setting up Porter on Windows

Mike Evans-Larah

Porter: a CNAB-based tool for building, managing, and installing app bundles. Learn to set up Porter on Windows with this guide.
An Overview of the Azure CNAB Quickstarts Library

An Overview of the Azure CNAB Quickstarts Library

Howard van Rooijen

The Azure CNAB Quickstarts Library helps you get up and running with CNAB and Porter. We've built quickstarts covering solutions like WordPress, Ghost, Mattermost, and data platforms like Apache Airflow, SQL Server AlwaysOn clusters and Kubernetes features like an nginx ingress controller and an Azure AD enabled OAuth2 Proxy. We've condensed all our learnings from the past 9 months of working on the project and turned them into a 10 minute video which explains all the key concepts. We hope this video helps accelerate your own CNAB & Porter epiphanies!
Introducing the Azure CNAB Quickstarts Library

Introducing the Azure CNAB Quickstarts Library

Mike Evans-Larah

In partnership with Microsoft, we have released Azure CNAB Quickstarts Library on GitHub. CNAB (Cloud-Native Application Bundle) is a new specification designed for facilitating the packaging, installation, upgrading and uninstallation of cloud-native solutions in the cloud, on-premise or on the edge. We've created a number of quickstarts covering Apache Airflow, Azure Kubernetes Service, Ghost, Kubeflow, SQL Server Always On and Wordpress to help demonstrate the power of CNAB and Porter.
NDC London Day 1

NDC London Day 1

Ian Griffiths

In this post, Ian describes some of the highlights from the NDC London conference

Survey: Expression Trees use cases in .NET

Howard van Rooijen

Expression Trees are one of .NET's super powers; but they are hugely overlooked and misunderstood. They can be used for on-the-fly code generation; building DSLs, and producing high performance computational algorithms. I'm trying to gather evidence about how you are using them, to make a case for future investments in the Expression Tree subsystem in .NET Core / .NET 5.0
Increasing performance via low memory allocation in C#

Increasing performance via low memory allocation in C#

Carmel Eve

Explore techniques for high-performance, low-allocation code in Azure Functions using C#, including data streaming, list preallocation, and Span<T>.
Using Databricks Notebooks to run an ETL process

Using Databricks Notebooks to run an ETL process

Carmel Eve

Explore data analysis & ETL with Databricks Notebooks on Azure. Utilize Spark's unified analytics engine for big data & ML, and integrate with ADF pipelines.
Endjin is a Snowflake Partner

Endjin is a Snowflake Partner

Howard van Rooijen

Snowflake is a cloud native data warehouse platform, that enabled data engineering, data science, data lakes, data sharing and data warehousing. Endjin are very excited to announce our partnership.
Using Step Argument Tranformations in SpecFlow to pass null values into scenarios

Using Step Argument Tranformations in SpecFlow to pass null values into scenarios

Ed Freeman

Learn to handle null values in Specflow using Step Argument Transformations for comprehensive test suites and edge case validation in this blog post.
A tentative step into the worlds of asymmetric encryption and Blockchain

A tentative step into the worlds of asymmetric encryption and Blockchain

Carmel Eve

Here is a quick dive into encryption and blockchain. This post goes into the ideas behind hashing, and how these translate into encrypted messaging techniques. It also delves blockchain and how signing and versioning allow for consistent and immutable transactions. Definitely worth a read if you're interested in these concepts!
OpenAPI Document Converters for Visual Studio 2017

OpenAPI Document Converters for Visual Studio 2017

Howard van Rooijen

The OpenAPI SDK based OpenAPI document converters extension has been updated to support Visual Studio 2017.
OpenAPI code generators for Visual Studio

OpenAPI code generators for Visual Studio

Howard van Rooijen

Using the recently Open Sourced OpenAPI SDK, we create a Visual Studio extension from converting OpenAPI specificaitons between YAML and JSON formats.
How to use Power BI Embedded with AspNetCore

How to use Power BI Embedded with AspNetCore

Matthew Adams

This post shows how to add a Power BI Embedded report to an ASP.NET Core application.
Microsoft Azure Most Valuable Professional 2016

Microsoft Azure Most Valuable Professional 2016

Howard van Rooijen

It is with a huge amount of honour to announce that endjin co-founder, Howard van Rooijen, has been awarded an Azure MVP award for his contributions to the Azure ecosystem.
TeamCity MetaRunner for creating Release Annotations in Azure Application Insights

TeamCity MetaRunner for creating Release Annotations in Azure Application Insights

Howard van Rooijen

Meta-Runners allow you to easily create reusable build components for TeamCity, in this post I demonstrate how to create a Meta-Runner to create Azure Application Insights Release Annotations.

Improve your Windows Command Prompt and PowerShell experience with ConEmu

Mike Evans-Larah

Mike Larah shares his tips for how to best customize ConEmu to improve your terminal experience for Windows Command Prompy and PowerShell
An experiment to automatically detect API breaking changes in .NET assemblies and suggest a Semantic Version number

An experiment to automatically detect API breaking changes in .NET assemblies and suggest a Semantic Version number

Howard van Rooijen

Exploring the creation of a tool to detect accidental .NET API changes for accurate SemVer in NuGet packages.
ILMerge Meta-Runner for TeamCity

ILMerge Meta-Runner for TeamCity

Howard van Rooijen

Meta-Runners allow you to easily create reusable build components for TeamCity, in this post I demonstrate how to create a Meta-Runner to wrap ILMerge functionality.
Endjin.Licensing now supports SHA256

Endjin.Licensing now supports SHA256

Howard van Rooijen

Microsoft have added SHA256 support to Signed XML, and Endjin.Licensing has been updating to take advantage of this breaking change.

CucumberJS Visual Studio Test Runner

Matthew Adams

We've built and open-sourced a Visual Studio Extension that provides basic support for discovering and running CucumberJS tests with Node.JS, in the Visual Studio Test Environment.
Reduce Merge Conflicts in .NET Solutions with PowerShell based Git Hooks

Reduce Merge Conflicts in .NET Solutions with PowerShell based Git Hooks

Howard van Rooijen

Git has powerful extensibility points, which you can harness to automate your dev inner loop. In this post we examine how to use Git Hooks to reduce the occurrence of merge conflicts.
25 useful steps missing from SpecFlow

25 useful steps missing from SpecFlow

Howard van Rooijen

We're huge fans of SpecFlow. We harvested 25 reusable steps from our various open source projects into a new extension that you can use to reduce your own boilerplate.
Extending Endjin.Retry with custom Retry Policies

Extending Endjin.Retry with custom Retry Policies

Howard van Rooijen

Endjin.Retry is our simple .NET library for handling transient errors, to make your Cloud applications more resilient and reliable.
Endjin.Licensing - Part 5: Real world usage patterns

Endjin.Licensing - Part 5: Real world usage patterns

Howard van Rooijen

We've open sourced a lightweight .NET based licensing framework we've been using internally over the last couple of years; in this post I'm going to highlight some real world usage scenarios.
Endjin.Licensing - Part 4: How to implement custom validation logic

Endjin.Licensing - Part 4: How to implement custom validation logic

Howard van Rooijen

Endjin.Licensing is our .NET based licensing framework; in this post we highlight its extensibility features, demonstrating how to add custom license validation logic.
Endjin.Licensing - Part 3: How to create and validate a license

Endjin.Licensing - Part 3: How to create and validate a license

Howard van Rooijen

Endjin.Licensing is our .NET based licensing framework; in this post we show how to create and validate a license using C#
Endjin.Licensing - Part 2: Defining the desired behaviour

Endjin.Licensing - Part 2: Defining the desired behaviour

Howard van Rooijen

We've open sourced a lightweight .NET based licensing framework; in this post we flesh out the behaviours we want the framework to support using Gherkin flavoured BDD specifications.
Endjin.Licensing - Part 1: Why build another licensing system?

Endjin.Licensing - Part 1: Why build another licensing system?

Howard van Rooijen

We've open sourced a lightweight .NET based licensing framework we've been using internally over the last couple of years. In this post I explain why we created it in the first place, rather than using existing offerings.
TPL Dataflow by Example code samples for LINQPad

TPL Dataflow by Example code samples for LINQPad

Howard van Rooijen

TPL Dataflow, a potent yet lesser-known .NET framework, is ideal for high-performance data processing.
Jasmine MetaRunner for TeamCity

Jasmine MetaRunner for TeamCity

Howard van Rooijen

Meta-Runners allow you to easily create reusable build components for TeamCity, in this post I demonstrate how to create a Meta-Runner to wrap Jasmine BDD Framework test runner.
Guest Blog Post: Work Experience at endjin - Week 1

Guest Blog Post: Work Experience at endjin - Week 1

Howard van Rooijen

Joshua, 15, is spending two weeks at endjin doing work experience. In this post he reflects on his first week.
Introducing endjin composition framework 2.0 : Part 5 - Debugging

Introducing endjin composition framework 2.0 : Part 5 - Debugging

Mike Evans-Larah

Learn how to debug the endjin composition framework.
Introducing endjin composition framework 2.0 : Part 4 - ASP.NET MVC/WebAPI

Introducing endjin composition framework 2.0 : Part 4 - ASP.NET MVC/WebAPI

Mike Evans-Larah

Learn how to use the endjin composition framework inside ASP.NET MVC or Web API
Introducing endjin composition framework 2.0 : Part 3 - Using the content factory

Introducing endjin composition framework 2.0 : Part 3 - Using the content factory

Mike Evans-Larah

Learn how to use the endjin composition framework content factory
Retrying tasks with TPL, async and synchronous code

Retrying tasks with TPL, async and synchronous code

Matthew Adams

Dealing with Transient Faults is absolutely essential when working in The Cloud. We delve into the library we've created for dealing with this situation.
Introducing endjin composition framework 2.0 : Part 2 - Getting Started

Introducing endjin composition framework 2.0 : Part 2 - Getting Started

Mike Evans-Larah

Learn how to use the endjin composition framework for dependency injection.
Introducing endjin composition framework 2.0 : Part 1

Introducing endjin composition framework 2.0 : Part 1

Mike Evans-Larah

Learn why we created the endjin composition framework for dependency injection.
Templify 0.7.0.25 is available.

Templify 0.7.0.25 is available.

Howard van Rooijen

A new version of Templify has been released, which includes a huge performance improvement contributed by the Open Source community.
TeamCity PowerShell

TeamCity PowerShell

Howard van Rooijen

To celebrate joining JetBrains Development Academy Board, we release a PowerShell modules to make working with TeamCity easier.

Dev4Good July 2011

Howard van Rooijen

We attended the two day Dev4Good hackathon in Hammersmith; and worked on digitalizing the paper based application process for the The Goldsmith Craft and Design Council awards.
On .NET Rocks! Talking about Sharp Architecture, Templify and StyleCop

On .NET Rocks! Talking about Sharp Architecture, Templify and StyleCop

Howard van Rooijen

Long time listener, first time guest. I was invited to speak on the .NET Rocks! Podcast, to talk about Sharp Architecture and various other Open Source projects I've been involved with.

StyleCop and StyleCop for ReSharper have merged

Howard van Rooijen

We've decided to combine the StyleCop and StyleCop for ReSharper code bases to make long term maintenance easier.
Where do my Visual States come from in Blend?

Where do my Visual States come from in Blend?

Matthew Adams

How does Expression Blend managed to find the Visual States exposed by the standard controls? How could you do the same with your own code?
Work Smarter with Convention Over Configuration and the Endjin Composition Framework

Work Smarter with Convention Over Configuration and the Endjin Composition Framework

Howard van Rooijen

We've added convention over configuration features to our Dependency Injection library - the endjin composition framework, to help improve your productivity.
Component Discovery and Composition II - Abstracting the container implementation

Component Discovery and Composition II - Abstracting the container implementation

Matthew Adams

Introducing Templify

Introducing Templify

Howard van Rooijen

Templify is a simple tool for tokenising and packaging entire code based solutions. It's designed to unfurl demos / quickstarts / solution templates.