Endjin - Home

Development

An Overview of the Azure CNAB Quickstarts Library

by 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!


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.


In this post we show how a combination of Kubernetes, Azure Durable Functions and Azure API Management can be used to make legacy batch processing code available as a RESTful API. This is a great example of how serverless technologies can be used to expose legacy software to the public internet in a controlled way, allowing you to reap some of the benefits of a cloud first approach without fully rewriting and migrating existing software.


Integrating Azure Analysis Services into custom applications means more than just querying the data. By surfacing the metadata in your models, you can build dynamic and customisable UIs and APIs, tailored to the needs of the client application. This post explains how easy it is to query model metadata from .NET, so you can create deeper integrations between your data insights and your custom applications.


One of the first steps in integrating Azure Analysis Services into your applications is creating and opening a connection to the server – just like any other database technology. This post explains the ins and outs of creating Azure Analysis Services connections, including code samples for each of the key scenarios. 


NDC London 2020 – My highlights

by Ed Freeman

Ed attended NDC London 2020, along with many of his endjin colleagues. In this post he summarises and reflects upon his favourite sessions of the conference including; “OWASP Top Ten proactive controls” by Jim Manico, “There’s an Impostor in this room!” by Angharad Edwards, “How to code music?” by Laura Silvanavičiūtė, “ML and the IoT: Living on the Edge” by Brandon Satrom, “Common API Security Pitfalls” by Philippe De Ryck, and “Combatting illegal fishing with Machine Learning and Azure – for less than £10 / month” by Jess Panni & Carmel Eve.


NDC London Day 1

by Ian Griffiths

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


Along with several of my endjin colleagues, I attended NDC London in January this year – here’s a run through of the sessions I attended on Day 3 and my thoughts. This final day was a mixed bag, taking in talks on drumming and AKKA.net, as well as something a bit more close to home – a session from endjin’s own Jess Panni and Carmel Eve on our recent project for OceanMind.


Along with several of my endjin colleagues, I attended NDC London in January this year – here’s a run through of the sessions I attended on Day 2 and my thoughts. This day was UI heavy, with sessions on Vuejs and UI testing, but I also learned more about GraphQL and writing high performance C# code.


A retrospective of my first day at NDC London 2020, taking in sessions on AI and Machine Learning, Capability Mapping, Micro Frontends, Diagnostics and Blazor.


With a variety of integration support through client SDKs, PowerShell cmdlets and REST APIs, it can be hard to know where to start with integrating Azure Analysis Services into your custom applications. This posts walks through the options, and lays out a simple guide to choosing the right framework.


In this blog from the Azure Advent Calendar 2019 we discuss building a secure data solution using Azure Data Lake. Data Lake has many features which enable fine grained security and data separation. It is also built on Azure Storage which enables us to take advantage of all of those features and means that ADLS is still a cost effective storage option!

This post runs through some of the great features of ADLS and runs through an example of how we build our solutions using this technology!


C# 8 Positional Patterns Custom Deconstructor Pitfall

by Ian Griffiths

The ‘positional patterns’ added in C# 8 support types with custom desconstructors. However, the way this works might always be quite what you would expect. This article shows a surprising behaviour, and explains how it arises.


Survey: Expression Trees use cases in .NET

by Howard van Rooijen

I’m of the opinion of that Expression Trees are one of the most powerful, yet under-used features of the .NET Framework. I’m currently doing research for a bit of thought leadership about how Expression Trees can be used and I’m looking for feedback from the community. If you currently are, or have used Expression Trees […]


C#, Span and async

by Ian Griffiths

The addition of ref struct types, most notably Span, opened C# to a range of high performance scenarios that were impractical to tackle with earlier versions of the language. However, they introduce some challenges. For example, they do not mix very well with async methods. This article shows some techniques for mitigating this.


GitHub Actions is GitHub’s new CI/CD platform. It is comparable with Azure Pipelines, which forms part of the Azure DevOps suite. In this post, Mike Larah looks at the similarities and differences in the high-level concepts and terminology between the two platforms.


Long Running Functions in Azure Data Factory

by Jess Panni

Azure Functions are powerful and convenient extension points for your Azure Data Factory pipelines. Put your custom processing logic behind an HTTP triggered Azure Function and you are good to go. Unfortunately many people read the Azure documentation and assume they can merrily run a Function for up to 10 minutes on a consumption plan […]


How Azure DevTestLabs is helping me climb Everest

by Carmel Eve

Remote working allows us to work from anywhere we want. This brings a huge amount of flexibility in freedom, however we do need the help of a working laptop! When Carmel’s laptop gave in just before a trip, she used Azure DevTestLabs to allow her to continue to work using a 10 year old Mac that probably couldn’t wouldn’t have been up to the task alone…


Passwordless SSH from Windows 10 to Raspberry Pi

by Mike Larah

In this post, Mike Larah explains how to enable SSH on the Pi, how to access the Pi via SSH using a Windows 10 development machine, and how to enable passwordless SSH access to the Pi.


We worked on a project recently which required us to build a highly performant system for processing vast quantities of messages in real time. We had made the decision to run this processing using Azure Functions with C#. This post runs through some of the techniques we used for writing highly performant, low allocation code, including data streaming, list preallocation and the relatively new C# feature: Span.