Colleague enjoys tasty glass of maple syrup during presentation by hockey player - Photo by Canadian Internet Registration Authority (CIRA)

2019 – Year Review (200th post on this blog!)

When I started this blog in 2015 as a place to stash my, eh, thoughtful workarounds, I didn’t think I’d ever hit 200 live articles (with another hundred still in draft mode). Or that I’d get half a million people reading them in a year! Man, I didn’t know either one of these things when I was writing my 2018 review, which feels like was just a moment ago. Taking a look a bit further back, year 2017 living, working and traveling in the United…Continue reading 2019 – Year Review (200th post on this blog!)

Obfuscation is the language of Gods.

Obfuscar 2.0 errors with loading types from assembly

I plugged Obfuscar into my build pipeline (the easiest configuration ever, by the way) because I needed to obfuscate a DLL I was going to push as a NuGet package. The DLL was obfuscated without changing any of the public APIs, Classes or Parameters – only internal stuff was scrambled. Simple stuff. Essentially, this is what I was working towards: However, I wasn’t quite having the success I hoped for. Whilst the obfuscation was successful, and I could even reference the obfuscated DLL and use…Continue reading Obfuscar 2.0 errors with loading types from assembly

WordPress updates...

WordPress blog article edit mode: No Tags or Categories visible?

This post describes a couple of useful solutions or workarounds for an awkward situation, where you can’t manage the metadata of your articles on WordPress. This hampers greatly your ability to organize your posts – and if you’re using WordPress like I’m using, also lowers the visibility of your new articles (I’m using the tags as hashtags when sharing to social channels)! We don’t want that. But what’s actually causing it? Description of the issue So you know that little panel on the right hand…Continue reading WordPress blog article edit mode: No Tags or Categories visible?

Azure Active Directory, the advanced logo

Resolving error AADSTS90056

This post details my very simple solution to an extremely unnecessary and kind of a simple error I encountered when logging into SharePoint. However, you could run into the same error after configuring Azure Active Directory authentication to a custom web application. The error message comes in at least 2 variants. These are shown below: AADSTS90056: This endpoint only accepts POST, OPTIONS requests. Received a GET request. The other one I’ve seen doesn’t even mention OPTIONS, just POST: AADSTS900561: The endpoint only accepts POST requests.…Continue reading Resolving error AADSTS90056

SharePoint Localization - You can have your content in different languages for different users.

Classic SharePoint blogs are going away – what next?

So the interesting news are not over – Microsoft recently announced that their personal blogging platform for Office 365, Delve Blogs, is getting retired. Now it turns out Classic SharePoint blogs are also getting cut. This leaves some organizations in a bit of a tough spot – what to use for blogging from now on? In this article, I’m taking a look at what brought us here, and thinking about our next steps from here on forward. Background Okay, then – what brought us here?…Continue reading Classic SharePoint blogs are going away – what next?

ChromeWebDriver version in Azure DevOps build pipeline job's log output

How to find out which WebDriver version is installed on an Azure DevOps build machine using YAML?

Uh, okay, well. So this is where you should just RTFM (that’s along the lines of “check the documentation” for those uninitiated in the world of unnecessary abbreviations). But as we’ve found out before, Microsoft’s documentation on the agent’s installed software isn’t always up-to-date. That’s why I added this simple snippet on my pipeline to figure out which version of the browser AND the webdriver are installed on the machine. The snippets below can be combined with logic to install different versions of Chrome and…Continue reading How to find out which WebDriver version is installed on an Azure DevOps build machine using YAML?

My personal Delve Blog on my test tenant.

How to migrate your Delve Blogs content to Modern SharePoint?

You might’ve heard the news – Delve Blogs are on the way out, leaving your users without a blogging platform on Office 365, and their data homeless. And by homeless, I mean deleted pretty soon. And by pretty soon I mean really soon. Might be a good time to start thinking about storing it somewhere else instead! While we’re all still waiting to see whether Microsoft sticks to their ambitious schedule (partial content freeze in December 2019, total content freeze in January 2020, and finally,…Continue reading How to migrate your Delve Blogs content to Modern SharePoint?

Delve logo

How to export your Delve blogs content?

The news is out – Delve Blogs will be axed, leaving your users without a blogging platform on Office 365, and their data homeless. And by homeless, I mean deleted. Might be a good time to start thinking about storing it somewhere else instead! This post is the second post in my impromptu, Delve Blogs -themed blog series: Part 1: Delve Blogs getting deprecated – what do? Part 2: How to export your Delve blogs content? (this post) Part 3: How to migrate your Delve…Continue reading How to export your Delve blogs content?

Delve logo

Delve Blogs getting deprecated – what do?

Last week, Microsoft sent a surprise email to a number of customers. Delve blogs – the hated & loved self-serve internal blogging platform on Office 365 is getting axed. It doesn’t really come as a surprise at this point – the service was first announced in 2014, launched to some hype and appreciation (especially due to the new CMS – authoring canvas – which was a lot of fun compared to Classic SharePoint!) but has pretty much faded away after that. Microsoft describes the feature…Continue reading Delve Blogs getting deprecated – what do?

SOLVE ALL THE ERRORS!

“Unable to service request” when trying to log into a Microsoft website

Okay – so this one is going to be a simple blog post. I’ll be explaining an apparent fan favorite! Namely, MSDN forums, MSDN subscriber downloads or other Microsoft web properties are not letting you sign in, but rather throw the following error: Unable to service request Why do you get an error like this? How to resolve it? Background

MVP Global Administrator email

Awarded MVP for Office Development

Late Friday night a couple of weeks ago, I got an interesting and a bit of a surprising email from Microsoft. Flabbergasted, I tweeted this right after: Wait, WHAT? First of all, when did #Microsoft learn to write proper Finnish, second of all, HOW DID THIS HAPPEN? :D I’m genuinely at a loss of words. Just… Thanks everyone for sparring and pushing me – I’ll do my best to be worthy of y’alls trust! 🤩 #MVPBuzz #MVP pic.twitter.com/wn3EMKfrvA — Antti K. Koskela #MVPBuzz (@koskila) November…Continue reading Awarded MVP for Office Development

An accurate depiction of a NuGet package factory

Solving: ‘DbContextOptionsBuilder’ does not contain a definition for ‘UseSqlServer’

This is another, kind of a classic and simple solution to a fairly simple problem: How to fix it, when your DbContextOptionsBuilder fails to take in your connection string and complains about UseSqlServer missing or whatever? Okay – let’s take a step back. How did we end up here? So, let’s set the scene. You’re building your DbContext (called ApplicationDbContext in the example below) in a .NET Core application of some sorts. You’ll do this like shown below: using Microsoft.EntityFrameworkCore; using System; namespace YourNamespace {…Continue reading Solving: ‘DbContextOptionsBuilder’ does not contain a definition for ‘UseSqlServer’

Azure Active Directory, the advanced logo

Iterating Group memberships using Claims in .NET Core

Another case, where there’s plenty of documentation, but it just doesn’t seem to be comprehensive enough or just doesn’t apply for any of the cases that I have – for whatever reason. Maybe my cases are wrong, or I’m just bad at googling, but I’ve struggled to find a good page documenting this. Perfect case for another blog post about the topic, then – perhaps someone else will find it useful! This post answers the question: How to get Claims for a user in .NET…Continue reading Iterating Group memberships using Claims in .NET Core

Internet Explorer working like Internet Explorer usually does - not working. But this time it's Blazor's fault!

IE11 fails to load a (server-side) Blazor web app

Welp – this was not a fun issue to run into! While nobody in this day and age should use Internet Explorer for any normal usage (occasional legacy scenarios aside), there are still some luddites who do (or whose IT department makes them to). This means it’s still useful, and sometimes even required, for a web application to work even in Internet Explorer. Description of the issue So, like shown in the article’s image, when trying to access your web application using IE11, the page…Continue reading IE11 fails to load a (server-side) Blazor web app

Entity Framework Core logo

How to instantiate your DbContext outside your Data project?

When you’re in your .NET Core project, it’s always easy: you just register your DbContext in ConfigureServices, and then inject it into whichever Page, View or Controller you might need it in. However, when you have another project or solution you’re working on and you’d still like to use the same DbContext and your entity classes in it, you have to find another way to do it! What should we do, then? Description Let’s first take a look at the use cases and tech stack.…Continue reading How to instantiate your DbContext outside your Data project?

Hacktoberfest 2019 logo

Another year, another Hacktoberfest (2019)!

Like a lot of the more frequent readers of this blog know, I generally work in proprietary – that is, non-open-source – projects. Whenever I do have some time to dabble in OSS, it’s usually for a hobby. This time around, I’ve been really struggling to find the time to contribute to open-source projects. Last year I had just had a baby – so it’s not like I was sleeping anyway. I was able to submit a few useful scripts, bugfixes and documentation improvements during…Continue reading Another year, another Hacktoberfest (2019)!

Always ship Azure DevOps.

How to use the right version of the WebDriver on hosted agents in Azure DevOps?

We were working on getting our Robot Framework tests running during our builds on Azure DevOps. However, using hosted agents, it was quite a struggle to get all of the dependencies on the agent and make sure the tests can access the browser on the build machine. In our case, we were running the tests in Chrome. For this, we needed Robot Framework and some of its dependencies to be installed on the machine. Luckily, that wasn’t too complicated – however, getting the WebDriver that…Continue reading How to use the right version of the WebDriver on hosted agents in Azure DevOps?

Build successful? SHIP IT!

EF Core fails to load hostpolicy.dll when RuntimeIdentifier is win-x86

Ran into another interesting one when working with a .NET Core 3.0 project and Entity Framework Core – this time, RuntimeIdentifier configuration causing trouble. In short, running Update-Database (to apply code-first migrations to your local database) locally would return this, annoying error: Failed to load the dll from [runtimepath]\win-x86\hostpolicy.dll], HRESULT: 0x800700C1 An error occurred while loading required library hostpolicy.dll from [runtimepath]\win-x86\] I suspect this can happen with any x86 runtimeIdentifier, but the one I had specified in my .csproj-file was this: win-x86 This value (or…Continue reading EF Core fails to load hostpolicy.dll when RuntimeIdentifier is win-x86

Blazor blazing away some geeks.

How to fix “The type or namespace name ‘Services’ does not exist in the namespace ‘Microsoft.AspNetCore.Components’ (are you missing an assembly reference?)”

Just resolved a random issue that’s difficult enough to google, that I think it’s worth documenting! These seem to be popping up whenever you work with anything that’s fairly fresh out of oven… This particular case revolves around Visual Studio being incredibly obnoxious, and starting to throw a ton of errors on code that worked five minutes prior. In my case, the error happened after updates to Visual Studio. Always fun. Symptoms The errors started popping up in Visual Studio. Basically, I just started getting…Continue reading How to fix “The type or namespace name ‘Services’ does not exist in the namespace ‘Microsoft.AspNetCore.Components’ (are you missing an assembly reference?)”