Browse our archives by topic…
Blog
C# 8.0 nullable references: getting started in an existing codebase
C# 8.0's nullable references feature dramatically changes a fundamental aspect of the language. In this post, Ian explains how to you can soften the impact by enabling gradually across your projects.
How does Azure Key Vault help me secure my data?
Azure Key Vault safeguards encryption keys & secrets for secure data access. It offers isolated storage, AD integration, RBAC, and access policies.
Learning DAX and Power BI – CALCULATE
This is the final blog in a series about DAX and Power BI. This post focuses on the CALCULATE function, which is a unique function in DAX. The CALCULATE function has the ability to alter filter contexts, and therefore can be used to enable extremely powerful and complex processing. This post covers some of the most common scenarios for using CALCULATE, and some of the gotchas in the way in which these different features interact!
Testing Power BI Reports using SpecFlow and .NET
Ensure Power BI report quality by connecting to tabular models, executing scenario-based specs, and validating data, business rules, and security.
Data modelling with Power BI - Loading and shaping data
Explore data modelling in Power BI, including loading, shaping, and enhancing data. Learn key steps and practical examples.
Handling upheaval and navigating uncertain times
I doubt that it's escaped anyone's notice that we have suddenly been thrown into a world which is pretty unrecognisable from that of even a few weeks ago. And I don't think any of us can claim to be managine it well all of the time, but in this post Carmel runs through some of the strategies and coping mechanisms which have helped her adjust.
C# 8.0 nullable references: inferred (non-)nullness
Ian discusses inferred nullness and its significance in C# 8.0's new Nullable References feature.
Learning DAX and Power BI – Related Tables and Relationships
This is the sixth blog in a series about DAX and Power BI. This post focuses on relationships and related tables. These relationships allow us to build up intricate and powerful models using a combination of sources and tables. The use of relationships in DAX powers many of the features around slicing and page filtering of reports.
Recording of Azure Oxford talk on combatting illegal fishing with Azure (for less than £10/month)
Jess and Carmel recently gave a talk at Azure Oxford on Combatting illegal fishing with Machine Learning and Azure - for less than £10 / month. The recording of that talk is now available for viewing!The talk focuses on the recent work we completed with OceanMind. They run through how to construct a cloud-first architecture based on serverless and data analytics technologies and explore the important principles and challenges in designing this kind of solution. Finally, we see how the architecture we designed through this process not only provides all the benefits of the cloud (reliability, scalability, security), but because of the pay-as-you-go compute model, has a compute cost that we could barely believe!
Testing Power BI Dataflows using SpecFlow and the Common Data Model
Ensure reliable insights with endjin's automated quality gates for validating Power BI Dataflows in complex solutions.
Effectively managing mental capacity
We are currently living in extremely uncertain times. As we try to process these changes, many of us have found that we do not have the same mental capacity we once did. Some of that might be due to extra constraints on our time, but a lot of our brain-power is also spent trying to process the huge worldwide changes which are currently taking place. In this blog, Carmel talks about some techniques for managing that mental capacity, and how those apply in an ever-changing world.
C# 8.0 nullable references: embrace the expressiveness
C# 8.0 nullable references detect null-related errors and enhance code expressiveness.
Learning DAX and Power BI – Table Functions
This is the fifth blog in a series on DAX and Power BI. This post focuses on table functions. In DAX, table functions return a table which can then be used for future processing. This can be useful if, for example, you want to perform an operation over a filtered dataset. Table functions, like most functions in DAX, operate under the filter context in which they are applied.
Azure Analysis Services - how to save money with automatic shutdown
Explore Azure Analysis Services for scalable analytics. Control costs via automation with Powershell & Azure DevOps in multi-environment setups.
Building a proximity detection pipeline
Endjin's blog post details their project with OceanMind, using a serverless architecture and machine learning to detect illegal fishing.
Using complex objects in BDD Scenarios with SpecFlow
Explore Behavior Driven Development using SpecFlow. Learn to create complex test data objects in Gherkin feature files with Corvus.NET project.
C# 8.0 nullable references: non-nullable is the new default
Explore C# 8.0's nullable references feature, as Ian discusses its impact on default nullability assumptions in this informative post.
Learning DAX and Power BI - Aggregators
This is the fourth blog in a series about DAX and Power BI. We have so far covered filter and row contexts, and the difference between calculated columns and measures. This post focuses on aggregators. We cover the limitations of the classic aggregators, and demonstrate the power of the iterative versions. We also highlight some of the less intuitive features around how these functions interact with both filter and row contexts.
Power BI Dataflow refresh polling
Discover how to programmatically retrieve Power BI Dataflow refresh history for automated operations, enabling efficient dataset refresh management.
Azure Analysis Services: How to update the expression for a calculated column from .NET
Learn how to update Azure Analysis Services model schemas in .NET apps using AMO SDK for user-driven analysis.
C# teamwork: share project config with common Nuget Build Asset Packages
See how to manage consistent default configuration across all your .NET projects by using NuGet build assets.
Wardley Maps - Explaining how OceanMind use Microsoft Azure & AI to combat Illegal Fishing
Wardley Maps are a fantastic tool to help provide situational awareness, in order to help you make better decisions. We use Wardley Maps to help our customers think about the various benefits and trade-offs that can be made when migrating to the Cloud. In this blog post, Jess Panni demonstrates how we used Wardley Maps to plan the migration of OceanMind to Microsoft Azure, and how the maps highlighted where the core value of their platform was, and how PaaS and Serverless services offered the most value for money for the organisation.
Learning DAX and Power BI – Calculated Columns and Measures
Dive into DAX and Power BI in our blog. Learn about calculated columns, measures, and their use in complex visuals.
Integration Testing Azure Functions with SpecFlow and C#, Part 5 - Using Corvus.SpecFlow.Extensions in a build pipeline
If you use Azure Functions on a regular basis, you'll likely have grappled with the challenge of testing them. Even now, several years after their introduction, the testing story for Functions is not hugely well defined. In the final post in this series, we show how to ensure specs written using Corvus.Testing can run as part of your build pipeline.
Integration Testing Azure Functions with SpecFlow and C#, Part 4 - Controlling your functions with additional configuration
If you use Azure Functions on a regular basis, you'll likely have grappled with the challenge of testing them. Even now, several years after their introduction, the testing story for Functions is not hugely well defined. In the fourth of this series of posts, we look at how configuration can be supplied from your tests to the functions apps being tested.